Skip to content

[Feat] Add DRAM pool KV protocol with unified pack/unpack - #1040

Open
yumingyue624 wants to merge 1 commit into
ModelEngine-Group:feature_26h1from
yumingyue624:dram_pool_kv_protocol
Open

[Feat] Add DRAM pool KV protocol with unified pack/unpack#1040
yumingyue624 wants to merge 1 commit into
ModelEngine-Group:feature_26h1from
yumingyue624:dram_pool_kv_protocol

Conversation

@yumingyue624

Copy link
Copy Markdown
Contributor

Purpose

Implement pack/unpack for the DRAM pool KV transport (send + flag buffer), mirroring the ASU architecture.

Modifications

  1. common: shared types, constants, and helpers (PeekOpcode, VerifyHeader, PackHeader, ValidateRequestHeader).
  2. client: KvDumpLoadProtocol/KvLookupProtocol + ProtocolManager for PackRequest and UnpackResponse.
  3. server: KvDumpLoadServerProtocol/KvLookupServerProtocol + ServerProtocolManager for UnpackRequest (with inline validation) and PackResponse.
  4. CMakeLists: drampool_kv_common/client/server lib targets.
  5. Tests: 29 cases covering pack/unpack round-trips, boundary values, multi-entry, opcode validation, and edge cases.

Test

  • drampool.test: 29 gtests passing on x64 (MSVC) and aarch64 (GCC 12.3.1).

Comment thread ucm/transport/kv/drampool/trans/CMakeLists.txt Outdated
@yumingyue624
yumingyue624 force-pushed the dram_pool_kv_protocol branch from 6ba00a7 to ee357e1 Compare June 22, 2026 09:51
Comment thread ucm/transport/kv/drampool/trans/src/kv_protocol_client.h Outdated
@yumingyue624
yumingyue624 force-pushed the dram_pool_kv_protocol branch from 7bec951 to ee357e1 Compare June 24, 2026 02:03
Comment thread ucm/transport/kv/drampool/trans/src/kv_protocol_server.cpp Outdated
@yumingyue624
yumingyue624 force-pushed the dram_pool_kv_protocol branch from 6d5aee6 to 2febc62 Compare June 24, 2026 06:43
## Purpose
Implement pack/unpack for the DRAM pool KV transport (send + flag buffer),
mirroring the ASU architecture.

## Modifications
1. kv_protocol.h: shared types, constants, helpers (PeekOpcode,
   IsAllZeroKey, ProtocolName, PackHeader, ValidateRequestHeader), and a
   unified KvProtocol base class with 5 virtual methods covering both
   client side (PackedSize, PackRequest, UnpackResponse) and server side
   (UnpackRequest, PackResponse). KvDumpLoadProtocol and KvLookupProtocol
   implement all five; ProtocolManager dispatches by opcode.
2. kv_protocol.cpp: implementations for all protocols and the manager.
3. Tests: 29 cases covering pack/unpack round-trips, boundary values,
   multi-entry, opcode validation, and edge cases.

## Test
- dramstore.test: 29 gtests passing.
@yumingyue624
yumingyue624 force-pushed the dram_pool_kv_protocol branch from 2febc62 to f27b8a9 Compare June 24, 2026 06:53
@yumingyue624 yumingyue624 changed the title [Feat] Add DRAM pool KV protocol with client/server split [Feat] Add DRAM pool KV protocol with unified pack/unpack Jun 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants