From 14598503246de9b562ab213c159a79250f55d6ed Mon Sep 17 00:00:00 2001 From: ai-jz Date: Wed, 9 Sep 2026 23:47:47 -0700 Subject: [PATCH 1/5] feat(kv-events): route using reported KV cache groups Signed-off-by: ai-jz --- bindings/golang/internal/proto/common.pb.go | 541 ++++++++++++-- crates/grpc_client/proto/common.proto | 25 + crates/kv_index/src/group_cache.rs | 286 ++++++++ crates/kv_index/src/group_cache_tests.rs | 693 ++++++++++++++++++ crates/kv_index/src/lib.rs | 1 + .../tests/fixtures/vllm-group-cache.json | 1 + crates/mock_worker/src/engine.rs | 1 + grpc_servicer/README.md | 2 + grpc_servicer/docs/images/kv-cache-groups.png | Bin 0 -> 499505 bytes grpc_servicer/docs/vllm-group-events.md | 27 + grpc_servicer/smg_grpc_servicer/kv_events.py | 16 +- .../smg_grpc_servicer/vllm/kv_group_events.py | 102 +++ .../smg_grpc_servicer/vllm/servicer.py | 9 +- .../tests/test_vllm_kv_group_events.py | 396 ++++++++++ model_gateway/src/policies/cache_aware.rs | 112 ++- .../worker/fixtures/vllm-group-events.json | 1 + model_gateway/src/worker/kv_event_monitor.rs | 166 ++++- 17 files changed, 2293 insertions(+), 86 deletions(-) create mode 100644 crates/kv_index/src/group_cache.rs create mode 100644 crates/kv_index/src/group_cache_tests.rs create mode 100644 crates/kv_index/tests/fixtures/vllm-group-cache.json create mode 100644 grpc_servicer/docs/images/kv-cache-groups.png create mode 100644 grpc_servicer/docs/vllm-group-events.md create mode 100644 grpc_servicer/smg_grpc_servicer/vllm/kv_group_events.py create mode 100644 grpc_servicer/tests/test_vllm_kv_group_events.py create mode 100644 model_gateway/src/worker/fixtures/vllm-group-events.json diff --git a/bindings/golang/internal/proto/common.pb.go b/bindings/golang/internal/proto/common.pb.go index ee37c298bd..a172bf310f 100644 --- a/bindings/golang/internal/proto/common.pb.go +++ b/bindings/golang/internal/proto/common.pb.go @@ -21,6 +21,112 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Multimodal input modality, shared across engine protos so the servicers can +// route each request to the matching encoder (image vs video vs audio). +type Modality int32 + +const ( + Modality_MODALITY_UNSPECIFIED Modality = 0 + Modality_IMAGE Modality = 1 + Modality_AUDIO Modality = 2 + Modality_VIDEO Modality = 3 +) + +// Enum value maps for Modality. +var ( + Modality_name = map[int32]string{ + 0: "MODALITY_UNSPECIFIED", + 1: "IMAGE", + 2: "AUDIO", + 3: "VIDEO", + } + Modality_value = map[string]int32{ + "MODALITY_UNSPECIFIED": 0, + "IMAGE": 1, + "AUDIO": 2, + "VIDEO": 3, + } +) + +func (x Modality) Enum() *Modality { + p := new(Modality) + *p = x + return p +} + +func (x Modality) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Modality) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[0].Descriptor() +} + +func (Modality) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[0] +} + +func (x Modality) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Modality.Descriptor instead. +func (Modality) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{0} +} + +type KvGroupEvent_Operation int32 + +const ( + KvGroupEvent_INVALID KvGroupEvent_Operation = 0 + KvGroupEvent_STORE KvGroupEvent_Operation = 1 + KvGroupEvent_REMOVE KvGroupEvent_Operation = 2 + KvGroupEvent_CLEAR KvGroupEvent_Operation = 3 +) + +// Enum value maps for KvGroupEvent_Operation. +var ( + KvGroupEvent_Operation_name = map[int32]string{ + 0: "INVALID", + 1: "STORE", + 2: "REMOVE", + 3: "CLEAR", + } + KvGroupEvent_Operation_value = map[string]int32{ + "INVALID": 0, + "STORE": 1, + "REMOVE": 2, + "CLEAR": 3, + } +) + +func (x KvGroupEvent_Operation) Enum() *KvGroupEvent_Operation { + p := new(KvGroupEvent_Operation) + *p = x + return p +} + +func (x KvGroupEvent_Operation) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (KvGroupEvent_Operation) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[1].Descriptor() +} + +func (KvGroupEvent_Operation) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[1] +} + +func (x KvGroupEvent_Operation) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use KvGroupEvent_Operation.Descriptor instead. +func (KvGroupEvent_Operation) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{4, 0} +} + type GetTokenizerRequest struct { state protoimpl.MessageState `protogen:"open.v1"` unknownFields protoimpl.UnknownFields @@ -160,8 +266,12 @@ type KvEventBatch struct { Timestamp float64 `protobuf:"fixed64,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Events []*KvCacheEvent `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` DpRank *int32 `protobuf:"varint,4,opt,name=dp_rank,json=dpRank,proto3,oneof" json:"dp_rank,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // Group metadata is learned from received events when the engine provides it. + // Legacy events remain unchanged when unset. + GroupEventsEnabled bool `protobuf:"varint,5,opt,name=group_events_enabled,json=groupEventsEnabled,proto3" json:"group_events_enabled,omitempty"` + GroupEvents []*KvGroupEvent `protobuf:"bytes,6,rep,name=group_events,json=groupEvents,proto3" json:"group_events,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *KvEventBatch) Reset() { @@ -222,6 +332,131 @@ func (x *KvEventBatch) GetDpRank() int32 { return 0 } +func (x *KvEventBatch) GetGroupEventsEnabled() bool { + if x != nil { + return x.GroupEventsEnabled + } + return false +} + +func (x *KvEventBatch) GetGroupEvents() []*KvGroupEvent { + if x != nil { + return x.GroupEvents + } + return nil +} + +// GPU-local reports, retaining opaque native keys and the complete token span. +// Sparse stores need not contain one hash per token block; no offsets are guessed. +type KvGroupEvent struct { + state protoimpl.MessageState `protogen:"open.v1"` + Operation KvGroupEvent_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=smg.grpc.common.KvGroupEvent_Operation" json:"operation,omitempty"` + GroupId uint32 `protobuf:"varint,2,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + BlockHashes [][]byte `protobuf:"bytes,3,rep,name=block_hashes,json=blockHashes,proto3" json:"block_hashes,omitempty"` + ParentBlockHash []byte `protobuf:"bytes,4,opt,name=parent_block_hash,json=parentBlockHash,proto3" json:"parent_block_hash,omitempty"` + TokenIds []uint32 `protobuf:"varint,5,rep,packed,name=token_ids,json=tokenIds,proto3" json:"token_ids,omitempty"` + BlockSize uint32 `protobuf:"varint,6,opt,name=block_size,json=blockSize,proto3" json:"block_size,omitempty"` + Kind string `protobuf:"bytes,7,opt,name=kind,proto3" json:"kind,omitempty"` + SlidingWindow uint32 `protobuf:"varint,8,opt,name=sliding_window,json=slidingWindow,proto3" json:"sliding_window,omitempty"` + // False when LoRA or extra hash inputs prevent token-only matching. + TokensMatchable bool `protobuf:"varint,9,opt,name=tokens_matchable,json=tokensMatchable,proto3" json:"tokens_matchable,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *KvGroupEvent) Reset() { + *x = KvGroupEvent{} + mi := &file_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *KvGroupEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KvGroupEvent) ProtoMessage() {} + +func (x *KvGroupEvent) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KvGroupEvent.ProtoReflect.Descriptor instead. +func (*KvGroupEvent) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{4} +} + +func (x *KvGroupEvent) GetOperation() KvGroupEvent_Operation { + if x != nil { + return x.Operation + } + return KvGroupEvent_INVALID +} + +func (x *KvGroupEvent) GetGroupId() uint32 { + if x != nil { + return x.GroupId + } + return 0 +} + +func (x *KvGroupEvent) GetBlockHashes() [][]byte { + if x != nil { + return x.BlockHashes + } + return nil +} + +func (x *KvGroupEvent) GetParentBlockHash() []byte { + if x != nil { + return x.ParentBlockHash + } + return nil +} + +func (x *KvGroupEvent) GetTokenIds() []uint32 { + if x != nil { + return x.TokenIds + } + return nil +} + +func (x *KvGroupEvent) GetBlockSize() uint32 { + if x != nil { + return x.BlockSize + } + return 0 +} + +func (x *KvGroupEvent) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *KvGroupEvent) GetSlidingWindow() uint32 { + if x != nil { + return x.SlidingWindow + } + return 0 +} + +func (x *KvGroupEvent) GetTokensMatchable() bool { + if x != nil { + return x.TokensMatchable + } + return false +} + type KvCacheEvent struct { state protoimpl.MessageState `protogen:"open.v1"` EventId uint64 `protobuf:"varint,1,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` @@ -237,7 +472,7 @@ type KvCacheEvent struct { func (x *KvCacheEvent) Reset() { *x = KvCacheEvent{} - mi := &file_common_proto_msgTypes[4] + mi := &file_common_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -249,7 +484,7 @@ func (x *KvCacheEvent) String() string { func (*KvCacheEvent) ProtoMessage() {} func (x *KvCacheEvent) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[4] + mi := &file_common_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -262,7 +497,7 @@ func (x *KvCacheEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use KvCacheEvent.ProtoReflect.Descriptor instead. func (*KvCacheEvent) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{4} + return file_common_proto_rawDescGZIP(), []int{5} } func (x *KvCacheEvent) GetEventId() uint64 { @@ -338,7 +573,7 @@ type KvBlocksStored struct { func (x *KvBlocksStored) Reset() { *x = KvBlocksStored{} - mi := &file_common_proto_msgTypes[5] + mi := &file_common_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -350,7 +585,7 @@ func (x *KvBlocksStored) String() string { func (*KvBlocksStored) ProtoMessage() {} func (x *KvBlocksStored) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[5] + mi := &file_common_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -363,7 +598,7 @@ func (x *KvBlocksStored) ProtoReflect() protoreflect.Message { // Deprecated: Use KvBlocksStored.ProtoReflect.Descriptor instead. func (*KvBlocksStored) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{5} + return file_common_proto_rawDescGZIP(), []int{6} } func (x *KvBlocksStored) GetBlocks() []*KvBlock { @@ -393,7 +628,7 @@ type KvBlock struct { func (x *KvBlock) Reset() { *x = KvBlock{} - mi := &file_common_proto_msgTypes[6] + mi := &file_common_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -405,7 +640,7 @@ func (x *KvBlock) String() string { func (*KvBlock) ProtoMessage() {} func (x *KvBlock) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[6] + mi := &file_common_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -418,7 +653,7 @@ func (x *KvBlock) ProtoReflect() protoreflect.Message { // Deprecated: Use KvBlock.ProtoReflect.Descriptor instead. func (*KvBlock) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{6} + return file_common_proto_rawDescGZIP(), []int{7} } func (x *KvBlock) GetBlockHash() int64 { @@ -466,7 +701,7 @@ type KvBlocksRemoved struct { func (x *KvBlocksRemoved) Reset() { *x = KvBlocksRemoved{} - mi := &file_common_proto_msgTypes[7] + mi := &file_common_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -478,7 +713,7 @@ func (x *KvBlocksRemoved) String() string { func (*KvBlocksRemoved) ProtoMessage() {} func (x *KvBlocksRemoved) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[7] + mi := &file_common_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -491,7 +726,7 @@ func (x *KvBlocksRemoved) ProtoReflect() protoreflect.Message { // Deprecated: Use KvBlocksRemoved.ProtoReflect.Descriptor instead. func (*KvBlocksRemoved) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{7} + return file_common_proto_rawDescGZIP(), []int{8} } func (x *KvBlocksRemoved) GetBlockHashes() []int64 { @@ -516,7 +751,7 @@ type KvCacheCleared struct { func (x *KvCacheCleared) Reset() { *x = KvCacheCleared{} - mi := &file_common_proto_msgTypes[8] + mi := &file_common_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -528,7 +763,7 @@ func (x *KvCacheCleared) String() string { func (*KvCacheCleared) ProtoMessage() {} func (x *KvCacheCleared) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[8] + mi := &file_common_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -541,7 +776,7 @@ func (x *KvCacheCleared) ProtoReflect() protoreflect.Message { // Deprecated: Use KvCacheCleared.ProtoReflect.Descriptor instead. func (*KvCacheCleared) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{8} + return file_common_proto_rawDescGZIP(), []int{9} } type FlushCacheRequest struct { @@ -555,7 +790,7 @@ type FlushCacheRequest struct { func (x *FlushCacheRequest) Reset() { *x = FlushCacheRequest{} - mi := &file_common_proto_msgTypes[9] + mi := &file_common_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -567,7 +802,7 @@ func (x *FlushCacheRequest) String() string { func (*FlushCacheRequest) ProtoMessage() {} func (x *FlushCacheRequest) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[9] + mi := &file_common_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -580,7 +815,7 @@ func (x *FlushCacheRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FlushCacheRequest.ProtoReflect.Descriptor instead. func (*FlushCacheRequest) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{9} + return file_common_proto_rawDescGZIP(), []int{10} } func (x *FlushCacheRequest) GetTimeoutS() float32 { @@ -600,7 +835,7 @@ type FlushCacheResponse struct { func (x *FlushCacheResponse) Reset() { *x = FlushCacheResponse{} - mi := &file_common_proto_msgTypes[10] + mi := &file_common_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -612,7 +847,7 @@ func (x *FlushCacheResponse) String() string { func (*FlushCacheResponse) ProtoMessage() {} func (x *FlushCacheResponse) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[10] + mi := &file_common_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -625,7 +860,7 @@ func (x *FlushCacheResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FlushCacheResponse.ProtoReflect.Descriptor instead. func (*FlushCacheResponse) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{10} + return file_common_proto_rawDescGZIP(), []int{11} } func (x *FlushCacheResponse) GetSuccess() bool { @@ -661,7 +896,7 @@ type StartProfileRequest struct { func (x *StartProfileRequest) Reset() { *x = StartProfileRequest{} - mi := &file_common_proto_msgTypes[11] + mi := &file_common_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -673,7 +908,7 @@ func (x *StartProfileRequest) String() string { func (*StartProfileRequest) ProtoMessage() {} func (x *StartProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[11] + mi := &file_common_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -686,7 +921,7 @@ func (x *StartProfileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartProfileRequest.ProtoReflect.Descriptor instead. func (*StartProfileRequest) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{11} + return file_common_proto_rawDescGZIP(), []int{12} } func (x *StartProfileRequest) GetOutputDir() string { @@ -746,7 +981,7 @@ type StopProfileRequest struct { func (x *StopProfileRequest) Reset() { *x = StopProfileRequest{} - mi := &file_common_proto_msgTypes[12] + mi := &file_common_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -758,7 +993,7 @@ func (x *StopProfileRequest) String() string { func (*StopProfileRequest) ProtoMessage() {} func (x *StopProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[12] + mi := &file_common_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -771,7 +1006,7 @@ func (x *StopProfileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StopProfileRequest.ProtoReflect.Descriptor instead. func (*StopProfileRequest) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{12} + return file_common_proto_rawDescGZIP(), []int{13} } type ProfileResponse struct { @@ -784,7 +1019,7 @@ type ProfileResponse struct { func (x *ProfileResponse) Reset() { *x = ProfileResponse{} - mi := &file_common_proto_msgTypes[13] + mi := &file_common_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -796,7 +1031,7 @@ func (x *ProfileResponse) String() string { func (*ProfileResponse) ProtoMessage() {} func (x *ProfileResponse) ProtoReflect() protoreflect.Message { - mi := &file_common_proto_msgTypes[13] + mi := &file_common_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -809,7 +1044,7 @@ func (x *ProfileResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ProfileResponse.ProtoReflect.Descriptor instead. func (*ProfileResponse) Descriptor() ([]byte, []int) { - return file_common_proto_rawDescGZIP(), []int{13} + return file_common_proto_rawDescGZIP(), []int{14} } func (x *ProfileResponse) GetSuccess() bool { @@ -826,6 +1061,136 @@ func (x *ProfileResponse) GetMessage() string { return "" } +type ShmHandle struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Offset uint64 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` + Nbytes uint64 `protobuf:"varint,3,opt,name=nbytes,proto3" json:"nbytes,omitempty"` + // Producer/lifetime owner. Used by implementations to coordinate cleanup. + OwnerId string `protobuf:"bytes,4,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ShmHandle) Reset() { + *x = ShmHandle{} + mi := &file_common_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ShmHandle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShmHandle) ProtoMessage() {} + +func (x *ShmHandle) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShmHandle.ProtoReflect.Descriptor instead. +func (*ShmHandle) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{15} +} + +func (x *ShmHandle) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ShmHandle) GetOffset() uint64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ShmHandle) GetNbytes() uint64 { + if x != nil { + return x.Nbytes + } + return 0 +} + +func (x *ShmHandle) GetOwnerId() string { + if x != nil { + return x.OwnerId + } + return "" +} + +type RemoteTensorHandle struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Examples: "nixl", "ucx", "object_store". + Transport string `protobuf:"bytes,1,opt,name=transport,proto3" json:"transport,omitempty"` + Descriptor_ []byte `protobuf:"bytes,2,opt,name=descriptor,proto3" json:"descriptor,omitempty"` + Nbytes uint64 `protobuf:"varint,3,opt,name=nbytes,proto3" json:"nbytes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoteTensorHandle) Reset() { + *x = RemoteTensorHandle{} + mi := &file_common_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoteTensorHandle) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoteTensorHandle) ProtoMessage() {} + +func (x *RemoteTensorHandle) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoteTensorHandle.ProtoReflect.Descriptor instead. +func (*RemoteTensorHandle) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{16} +} + +func (x *RemoteTensorHandle) GetTransport() string { + if x != nil { + return x.Transport + } + return "" +} + +func (x *RemoteTensorHandle) GetDescriptor_() []byte { + if x != nil { + return x.Descriptor_ + } + return nil +} + +func (x *RemoteTensorHandle) GetNbytes() uint64 { + if x != nil { + return x.Nbytes + } + return 0 +} + var File_common_proto protoreflect.FileDescriptor const file_common_proto_rawDesc = "" + @@ -836,14 +1201,33 @@ const file_common_proto_rawDesc = "" + "\x04data\x18\x01 \x01(\fR\x04data\x12\x16\n" + "\x06sha256\x18\x02 \x01(\tR\x06sha256\"N\n" + "\x18SubscribeKvEventsRequest\x122\n" + - "\x15start_sequence_number\x18\x01 \x01(\x04R\x13startSequenceNumber\"\xb6\x01\n" + + "\x15start_sequence_number\x18\x01 \x01(\x04R\x13startSequenceNumber\"\xaa\x02\n" + "\fKvEventBatch\x12'\n" + "\x0fsequence_number\x18\x01 \x01(\x04R\x0esequenceNumber\x12\x1c\n" + "\ttimestamp\x18\x02 \x01(\x01R\ttimestamp\x125\n" + "\x06events\x18\x03 \x03(\v2\x1d.smg.grpc.common.KvCacheEventR\x06events\x12\x1c\n" + - "\adp_rank\x18\x04 \x01(\x05H\x00R\x06dpRank\x88\x01\x01B\n" + + "\adp_rank\x18\x04 \x01(\x05H\x00R\x06dpRank\x88\x01\x01\x120\n" + + "\x14group_events_enabled\x18\x05 \x01(\bR\x12groupEventsEnabled\x12@\n" + + "\fgroup_events\x18\x06 \x03(\v2\x1d.smg.grpc.common.KvGroupEventR\vgroupEventsB\n" + + "\n" + + "\b_dp_rank\"\x9d\x03\n" + + "\fKvGroupEvent\x12E\n" + + "\toperation\x18\x01 \x01(\x0e2'.smg.grpc.common.KvGroupEvent.OperationR\toperation\x12\x19\n" + + "\bgroup_id\x18\x02 \x01(\rR\agroupId\x12!\n" + + "\fblock_hashes\x18\x03 \x03(\fR\vblockHashes\x12*\n" + + "\x11parent_block_hash\x18\x04 \x01(\fR\x0fparentBlockHash\x12\x1b\n" + + "\ttoken_ids\x18\x05 \x03(\rR\btokenIds\x12\x1d\n" + "\n" + - "\b_dp_rank\"\xe7\x01\n" + + "block_size\x18\x06 \x01(\rR\tblockSize\x12\x12\n" + + "\x04kind\x18\a \x01(\tR\x04kind\x12%\n" + + "\x0esliding_window\x18\b \x01(\rR\rslidingWindow\x12)\n" + + "\x10tokens_matchable\x18\t \x01(\bR\x0ftokensMatchable\":\n" + + "\tOperation\x12\v\n" + + "\aINVALID\x10\x00\x12\t\n" + + "\x05STORE\x10\x01\x12\n" + + "\n" + + "\x06REMOVE\x10\x02\x12\t\n" + + "\x05CLEAR\x10\x03\"\xe7\x01\n" + "\fKvCacheEvent\x12\x19\n" + "\bevent_id\x18\x01 \x01(\x04R\aeventId\x129\n" + "\x06stored\x18\x02 \x01(\v2\x1f.smg.grpc.common.KvBlocksStoredH\x00R\x06stored\x12<\n" + @@ -899,7 +1283,23 @@ const file_common_proto_rawDesc = "" + "\x12StopProfileRequest\"E\n" + "\x0fProfileResponse\x12\x18\n" + "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessageb\x06proto3" + "\amessage\x18\x02 \x01(\tR\amessage\"j\n" + + "\tShmHandle\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" + + "\x06offset\x18\x02 \x01(\x04R\x06offset\x12\x16\n" + + "\x06nbytes\x18\x03 \x01(\x04R\x06nbytes\x12\x19\n" + + "\bowner_id\x18\x04 \x01(\tR\aownerId\"j\n" + + "\x12RemoteTensorHandle\x12\x1c\n" + + "\ttransport\x18\x01 \x01(\tR\ttransport\x12\x1e\n" + + "\n" + + "descriptor\x18\x02 \x01(\fR\n" + + "descriptor\x12\x16\n" + + "\x06nbytes\x18\x03 \x01(\x04R\x06nbytes*E\n" + + "\bModality\x12\x18\n" + + "\x14MODALITY_UNSPECIFIED\x10\x00\x12\t\n" + + "\x05IMAGE\x10\x01\x12\t\n" + + "\x05AUDIO\x10\x02\x12\t\n" + + "\x05VIDEO\x10\x03b\x06proto3" var ( file_common_proto_rawDescOnce sync.Once @@ -913,34 +1313,42 @@ func file_common_proto_rawDescGZIP() []byte { return file_common_proto_rawDescData } -var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_common_proto_goTypes = []any{ - (*GetTokenizerRequest)(nil), // 0: smg.grpc.common.GetTokenizerRequest - (*GetTokenizerChunk)(nil), // 1: smg.grpc.common.GetTokenizerChunk - (*SubscribeKvEventsRequest)(nil), // 2: smg.grpc.common.SubscribeKvEventsRequest - (*KvEventBatch)(nil), // 3: smg.grpc.common.KvEventBatch - (*KvCacheEvent)(nil), // 4: smg.grpc.common.KvCacheEvent - (*KvBlocksStored)(nil), // 5: smg.grpc.common.KvBlocksStored - (*KvBlock)(nil), // 6: smg.grpc.common.KvBlock - (*KvBlocksRemoved)(nil), // 7: smg.grpc.common.KvBlocksRemoved - (*KvCacheCleared)(nil), // 8: smg.grpc.common.KvCacheCleared - (*FlushCacheRequest)(nil), // 9: smg.grpc.common.FlushCacheRequest - (*FlushCacheResponse)(nil), // 10: smg.grpc.common.FlushCacheResponse - (*StartProfileRequest)(nil), // 11: smg.grpc.common.StartProfileRequest - (*StopProfileRequest)(nil), // 12: smg.grpc.common.StopProfileRequest - (*ProfileResponse)(nil), // 13: smg.grpc.common.ProfileResponse + (Modality)(0), // 0: smg.grpc.common.Modality + (KvGroupEvent_Operation)(0), // 1: smg.grpc.common.KvGroupEvent.Operation + (*GetTokenizerRequest)(nil), // 2: smg.grpc.common.GetTokenizerRequest + (*GetTokenizerChunk)(nil), // 3: smg.grpc.common.GetTokenizerChunk + (*SubscribeKvEventsRequest)(nil), // 4: smg.grpc.common.SubscribeKvEventsRequest + (*KvEventBatch)(nil), // 5: smg.grpc.common.KvEventBatch + (*KvGroupEvent)(nil), // 6: smg.grpc.common.KvGroupEvent + (*KvCacheEvent)(nil), // 7: smg.grpc.common.KvCacheEvent + (*KvBlocksStored)(nil), // 8: smg.grpc.common.KvBlocksStored + (*KvBlock)(nil), // 9: smg.grpc.common.KvBlock + (*KvBlocksRemoved)(nil), // 10: smg.grpc.common.KvBlocksRemoved + (*KvCacheCleared)(nil), // 11: smg.grpc.common.KvCacheCleared + (*FlushCacheRequest)(nil), // 12: smg.grpc.common.FlushCacheRequest + (*FlushCacheResponse)(nil), // 13: smg.grpc.common.FlushCacheResponse + (*StartProfileRequest)(nil), // 14: smg.grpc.common.StartProfileRequest + (*StopProfileRequest)(nil), // 15: smg.grpc.common.StopProfileRequest + (*ProfileResponse)(nil), // 16: smg.grpc.common.ProfileResponse + (*ShmHandle)(nil), // 17: smg.grpc.common.ShmHandle + (*RemoteTensorHandle)(nil), // 18: smg.grpc.common.RemoteTensorHandle } var file_common_proto_depIdxs = []int32{ - 4, // 0: smg.grpc.common.KvEventBatch.events:type_name -> smg.grpc.common.KvCacheEvent - 5, // 1: smg.grpc.common.KvCacheEvent.stored:type_name -> smg.grpc.common.KvBlocksStored - 7, // 2: smg.grpc.common.KvCacheEvent.removed:type_name -> smg.grpc.common.KvBlocksRemoved - 8, // 3: smg.grpc.common.KvCacheEvent.cleared:type_name -> smg.grpc.common.KvCacheCleared - 6, // 4: smg.grpc.common.KvBlocksStored.blocks:type_name -> smg.grpc.common.KvBlock - 5, // [5:5] is the sub-list for method output_type - 5, // [5:5] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 7, // 0: smg.grpc.common.KvEventBatch.events:type_name -> smg.grpc.common.KvCacheEvent + 6, // 1: smg.grpc.common.KvEventBatch.group_events:type_name -> smg.grpc.common.KvGroupEvent + 1, // 2: smg.grpc.common.KvGroupEvent.operation:type_name -> smg.grpc.common.KvGroupEvent.Operation + 8, // 3: smg.grpc.common.KvCacheEvent.stored:type_name -> smg.grpc.common.KvBlocksStored + 10, // 4: smg.grpc.common.KvCacheEvent.removed:type_name -> smg.grpc.common.KvBlocksRemoved + 11, // 5: smg.grpc.common.KvCacheEvent.cleared:type_name -> smg.grpc.common.KvCacheCleared + 9, // 6: smg.grpc.common.KvBlocksStored.blocks:type_name -> smg.grpc.common.KvBlock + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_common_proto_init() } @@ -949,27 +1357,28 @@ func file_common_proto_init() { return } file_common_proto_msgTypes[3].OneofWrappers = []any{} - file_common_proto_msgTypes[4].OneofWrappers = []any{ + file_common_proto_msgTypes[5].OneofWrappers = []any{ (*KvCacheEvent_Stored)(nil), (*KvCacheEvent_Removed)(nil), (*KvCacheEvent_Cleared)(nil), } - file_common_proto_msgTypes[5].OneofWrappers = []any{} file_common_proto_msgTypes[6].OneofWrappers = []any{} file_common_proto_msgTypes[7].OneofWrappers = []any{} - file_common_proto_msgTypes[11].OneofWrappers = []any{} + file_common_proto_msgTypes[8].OneofWrappers = []any{} + file_common_proto_msgTypes[12].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_common_proto_rawDesc), len(file_common_proto_rawDesc)), - NumEnums: 0, - NumMessages: 14, + NumEnums: 2, + NumMessages: 17, NumExtensions: 0, NumServices: 0, }, GoTypes: file_common_proto_goTypes, DependencyIndexes: file_common_proto_depIdxs, + EnumInfos: file_common_proto_enumTypes, MessageInfos: file_common_proto_msgTypes, }.Build() File_common_proto = out.File diff --git a/crates/grpc_client/proto/common.proto b/crates/grpc_client/proto/common.proto index 1c01886f05..f53183591f 100644 --- a/crates/grpc_client/proto/common.proto +++ b/crates/grpc_client/proto/common.proto @@ -26,6 +26,31 @@ message KvEventBatch { double timestamp = 2; repeated KvCacheEvent events = 3; optional int32 dp_rank = 4; + // Group metadata is learned from received events when the engine provides it. + // Legacy events remain unchanged when unset. + bool group_events_enabled = 5; + repeated KvGroupEvent group_events = 6; +} + +// GPU-local reports, retaining opaque native keys and the complete token span. +// Sparse stores need not contain one hash per token block; no offsets are guessed. +message KvGroupEvent { + enum Operation { + INVALID = 0; + STORE = 1; + REMOVE = 2; + CLEAR = 3; + } + Operation operation = 1; + uint32 group_id = 2; + repeated bytes block_hashes = 3; + bytes parent_block_hash = 4; + repeated uint32 token_ids = 5; + uint32 block_size = 6; + string kind = 7; + uint32 sliding_window = 8; + // False when LoRA or extra hash inputs prevent token-only matching. + bool tokens_matchable = 9; } message KvCacheEvent { diff --git a/crates/kv_index/src/group_cache.rs b/crates/kv_index/src/group_cache.rs new file mode 100644 index 0000000000..e1ad8672a2 --- /dev/null +++ b/crates/kv_index/src/group_cache.rs @@ -0,0 +1,286 @@ +//! Cache evidence reconstructed from received group events, not an engine snapshot. + +use rustc_hash::FxHashMap; + +pub type CacheKey = Vec; + +#[derive(Clone, Debug)] +pub enum GroupEvent { + Store { + group_id: u32, + kind: String, + window: usize, + keys: Vec, + parent: Option, + tokens: Vec, + block_size: usize, + tokens_matchable: bool, + }, + Remove { + group_id: u32, + keys: Vec, + }, + Clear, + Invalid, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +struct Position { + end: usize, + prefix: u128, +} + +#[derive(Default)] +struct Group { + metadata: Option<(String, usize)>, + reported: FxHashMap, +} + +/// One worker's observation session. Context survives removals: a later child +/// can still refer to an evicted parent. Discontinuity discards the view. +#[derive(Default)] +pub struct GroupCache { + groups: FxHashMap, + positions: FxHashMap, + by_prefix: FxHashMap>, + pending: FxHashMap>>, + last_sequence: Option, +} + +// Bound retained historical context as well as live membership. Overflow only +// discards routing evidence; it does not change engine cache or reject requests. +const MAX_ENTRIES: usize = 100_000; + +fn extend_prefix(prefix: u128, token: u32) -> u128 { + let mut bytes = [0u8; 20]; + bytes[..16].copy_from_slice(&prefix.to_le_bytes()); + bytes[16..].copy_from_slice(&token.to_le_bytes()); + xxhash_rust::xxh3::xxh3_128(&bytes) +} + +impl GroupCache { + pub fn invalidate(&mut self) { + *self = Self::default(); + } + + pub fn apply_batch( + &mut self, + sequence: u64, + events: &[GroupEvent], + ) -> Result<(), &'static str> { + if let Some(previous) = self.last_sequence { + if sequence <= previous { + return Ok(()); + } + if previous.checked_add(1) != Some(sequence) { + self.invalidate(); + } + } + for event in events { + if let Err(reason) = self.apply(event) { + self.invalidate(); + return Err(reason); + } + } + self.last_sequence = Some(sequence); + Ok(()) + } + + fn apply(&mut self, event: &GroupEvent) -> Result<(), &'static str> { + match event { + GroupEvent::Clear => { + // Clearing blocks does not retract the groups already reported. + for group in self.groups.values_mut() { + group.reported.clear(); + } + } + GroupEvent::Invalid => return Err("invalid group event"), + GroupEvent::Remove { group_id, keys } => { + let group = self.groups.entry(*group_id).or_default(); + for key in keys { + // A repeated STORE is not proof of another physical copy. + group.reported.remove(key); + } + } + GroupEvent::Store { + group_id, + kind, + window, + keys, + parent, + tokens, + block_size, + tokens_matchable, + } => { + if *block_size == 0 || keys.iter().any(Vec::is_empty) { + return Err("invalid group block identity or span"); + } + let group = self.groups.entry(*group_id).or_default(); + if let Some((old_kind, old_window)) = &group.metadata { + if old_kind != kind || old_window != window { + return Err("group metadata changed within one stream"); + } + } else { + group.metadata = Some((kind.clone(), *window)); + } + for key in keys { + group + .reported + .entry(key.clone()) + .and_modify(|span| *span = (*span).max(*block_size)) + .or_insert(*block_size); + } + // Sparse reports retain the entire token span but omit some + // hashes. Their positions can only come from other reports. + if *tokens_matchable && keys.len().checked_mul(*block_size) == Some(tokens.len()) { + let mut parent = parent.clone(); + for (key, chunk) in keys.iter().zip(tokens.chunks(*block_size)) { + self.learn(key.clone(), parent, chunk.to_vec())?; + parent = Some(key.clone()); + } + } + } + } + let pending = self.pending.values().map(FxHashMap::len).sum::(); + let reported = self + .groups + .values() + .map(|g| g.reported.len()) + .sum::(); + if self.positions.len() + pending > MAX_ENTRIES || reported > MAX_ENTRIES { + return Err("group event index capacity reached"); + } + Ok(()) + } + + fn learn( + &mut self, + key: CacheKey, + parent: Option, + tokens: Vec, + ) -> Result<(), &'static str> { + let mut ready = vec![(key, parent, tokens)]; + while let Some((key, parent, tokens)) = ready.pop() { + let base = match parent { + None => Position { end: 0, prefix: 0 }, + Some(parent) => match self.positions.get(&parent).copied() { + Some(position) => position, + None => { + if self.positions.contains_key(&key) { + continue; + } + // Different groups can describe the same endpoint via + // different parent/span pairs. Resolve either path. + let children = self.pending.entry(parent).or_default(); + if children.get(&key).is_some_and(|old| *old != tokens) { + return Err("conflicting tokens for one parent and child"); + } + children.insert(key, tokens); + continue; + } + }, + }; + let position = Position { + end: base + .end + .checked_add(tokens.len()) + .ok_or("prefix length overflow")?, + prefix: tokens + .iter() + .fold(base.prefix, |hash, &t| extend_prefix(hash, t)), + }; + if let Some(old) = self.positions.get(&key) { + if *old != position { + return Err("conflicting native hash identity"); + } + continue; + } + self.positions.insert(key.clone(), position); + self.by_prefix + .entry(position) + .or_default() + .push(key.clone()); + if let Some(children) = self.pending.remove(&key) { + ready.extend( + children + .into_iter() + .map(|(child, tokens)| (child, Some(key.clone()), tokens)), + ); + } + } + Ok(()) + } + + /// A common boundary supported by resolved reports for the observed groups. + /// Unresolved histories may hide additional matches. Native scheduling may + /// impose other constraints; this is neither a cache reservation nor its + /// exact current reusable-token count. + pub fn reusable_tokens(&self, tokens: &[u32]) -> Option { + if self.groups.is_empty() { + return None; + } + let limit = tokens.len().saturating_sub(1); + let mut prefix = 0; + let mut matching = Vec::new(); + for (i, &token) in tokens.iter().enumerate() { + prefix = extend_prefix(prefix, token); + if let Some(keys) = self.by_prefix.get(&Position { end: i + 1, prefix }) { + matching.extend(keys.iter().map(|key| (key, i + 1))); + } + } + let mut views = Vec::new(); + let mut candidates = vec![0]; + for group in self.groups.values() { + let (kind, window) = group.metadata.as_ref()?; + if !matches!(kind.as_str(), "full_attention" | "sliding_window" | "mamba") + || (kind == "sliding_window" && *window == 0) + { + return None; + } + let mut intervals: Vec<_> = matching + .iter() + .filter_map(|(key, end)| { + let span = group.reported.get(*key)?; + end.checked_sub(*span).map(|start| (start, *end)) + }) + .collect(); + intervals.sort_unstable(); + candidates.extend( + intervals + .iter() + .map(|&(_, end)| end) + .filter(|&end| end <= limit), + ); + views.push((kind.as_str(), *window, intervals)); + } + candidates.sort_unstable(); + candidates.dedup(); + candidates.into_iter().rev().find(|&position| { + position == 0 + || views.iter().all(|(kind, window, intervals)| { + if *kind == "mamba" { + return intervals.iter().any(|&(_, end)| end == position); + } + let mut covered = if *kind == "sliding_window" { + position.saturating_sub(window.saturating_sub(1).max(1)) + } else { + 0 + }; + for &(start, end) in intervals { + if start > covered { + break; + } + covered = covered.max(end); + if covered >= position { + return true; + } + } + false + }) + }) + } +} + +#[cfg(test)] +#[path = "group_cache_tests.rs"] +mod tests; diff --git a/crates/kv_index/src/group_cache_tests.rs b/crates/kv_index/src/group_cache_tests.rs new file mode 100644 index 0000000000..4fb7c15a85 --- /dev/null +++ b/crates/kv_index/src/group_cache_tests.rs @@ -0,0 +1,693 @@ +use std::collections::BTreeSet; + +use serde_json::Value; + +use super::*; + +fn fixtures() -> Value { + serde_json::from_str(include_str!("../tests/fixtures/vllm-group-cache.json")).unwrap() +} + +fn number(value: &Value) -> usize { + value.as_u64().unwrap() as usize +} + +fn key(hex: &str) -> CacheKey { + assert!(hex.len().is_multiple_of(2)); + (0..hex.len()) + .step_by(2) + .map(|i| u8::from_str_radix(&hex[i..i + 2], 16).unwrap()) + .collect() +} + +fn opaque(end: usize) -> CacheKey { + (end as u64).to_be_bytes().to_vec() +} + +fn tokens(end: usize) -> Vec { + (1..=end as u32).collect() +} + +fn store( + group_id: u32, + kind: &str, + window: usize, + block_size: usize, + keys: Vec, + parent: Option, + tokens: Vec, +) -> GroupEvent { + GroupEvent::Store { + group_id, + kind: kind.to_owned(), + window, + keys, + parent, + tokens, + block_size, + tokens_matchable: true, + } +} + +fn root_report( + group_id: u32, + kind: &str, + window: usize, + span: usize, + ends: &[usize], + through: usize, +) -> GroupEvent { + store( + group_id, + kind, + window, + span, + ends.iter().map(|&end| opaque(end)).collect(), + None, + tokens(through), + ) +} + +fn apply(cache: &mut GroupCache, sequence: u64, events: &[GroupEvent]) { + cache.apply_batch(sequence, events).unwrap(); +} + +fn child_report(group_id: u32, kind: &str, window: usize, start: usize, end: usize) -> GroupEvent { + store( + group_id, + kind, + window, + end - start, + vec![opaque(end)], + (start > 0).then(|| opaque(start)), + ((start + 1) as u32..=end as u32).collect(), + ) +} + +fn remove(group_id: u32, ends: &[usize]) -> GroupEvent { + GroupEvent::Remove { + group_id, + keys: ends.iter().map(|&end| opaque(end)).collect(), + } +} + +// The snapshot adapter below explicitly seeds complete prefix history. Compute +// expectations from its declared cached endpoints using per-token coverage, +// independently of the SUT's hashes, interval sweep and event reconstruction. +fn fixture_expected(case: &Value) -> Option { + let request_len = number(&case["request_tokens"]); + let unit = number(&case["hash_block_size"]); + let mut candidates = BTreeSet::from([0]); + let mut requirements = Vec::new(); + for group in case["groups"].as_array().unwrap() { + let kind = group["kind"].as_str().unwrap(); + let window = group["window"].as_u64().unwrap_or(0) as usize; + if !matches!(kind, "full" | "swa" | "mamba") || (kind == "swa" && window == 0) { + return None; + } + let physical = number(&group["block_size"]); + let mut covered = vec![false; request_len]; + let mut checkpoints = BTreeSet::new(); + for end in group["cached"].as_array().unwrap().iter().map(number) { + let span = if end.is_multiple_of(physical) { + physical + } else { + unit + }; + if span > end || end > request_len { + continue; + } + covered[end - span..end].fill(true); + checkpoints.insert(end); + if end < request_len { + candidates.insert(end); + } + } + requirements.push((kind, window, covered, checkpoints)); + } + if requirements.is_empty() { + return None; + } + candidates.into_iter().rev().find(|&end| { + end == 0 + || requirements + .iter() + .all(|(kind, window, covered, checkpoints)| { + if *kind == "mamba" { + checkpoints.contains(&end) + } else { + let start = if *kind == "swa" { + end.saturating_sub(window.saturating_sub(1).max(1)) + } else { + 0 + }; + covered[start..end].iter().all(|&present| present) + } + }) + }) +} + +fn fixture_key(case: &Value, end: usize) -> CacheKey { + let unit = number(&case["hash_block_size"]); + assert_eq!(end % unit, 0); + if let Some(hash) = case["request_hashes"] + .as_array() + .unwrap() + .get(end / unit - 1) + { + key(hash.as_str().unwrap()) + } else { + // The fixture exports no native hash beyond its request. Preserve such + // history with a clearly synthetic opaque identity, not a forged digest. + let mut synthetic = b"fixture-history:".to_vec(); + synthetic.extend_from_slice(&(end as u64).to_be_bytes()); + synthetic + } +} + +// Old snapshots contain privileged endpoints. Make that context explicit in a +// synthetic received history: learn dense context, remove that membership, then +// report the desired entries. No endpoints, native alignment or spec equality +// are supplied directly to the SUT. This is not an original engine event trace. +fn fixture_events(case: &Value) -> Vec { + let unit = number(&case["hash_block_size"]); + let groups = case["groups"].as_array().unwrap(); + let through = groups + .iter() + .flat_map(|g| g["cached"].as_array().unwrap()) + .map(number) + .max() + .unwrap_or(0) + .max(number(&case["request_tokens"]) / unit * unit); + let context_keys: Vec<_> = (unit..=through) + .step_by(unit) + .map(|end| fixture_key(case, end)) + .collect(); + let mut events = Vec::new(); + for (id, group) in groups.iter().enumerate() { + let kind = match group["kind"].as_str().unwrap() { + "full" => "full_attention", + "swa" => "sliding_window", + other => other, + }; + let window = group["window"].as_u64().unwrap_or(0) as usize; + events.push(store( + id as u32, + kind, + window, + unit, + context_keys.clone(), + None, + tokens(through), + )); + events.push(GroupEvent::Remove { + group_id: id as u32, + keys: context_keys.clone(), + }); + let physical = number(&group["block_size"]); + for cached in group["cached"].as_array().unwrap() { + let end = number(cached); + let span = if end.is_multiple_of(physical) { + physical + } else { + unit + }; + let start = end - span; + events.push(store( + id as u32, + kind, + window, + span, + vec![fixture_key(case, end)], + (start > 0).then(|| fixture_key(case, start)), + ((start + 1) as u32..=end as u32).collect(), + )); + } + } + events +} + +fn classification(case: &Value) -> &'static str { + let groups = case["groups"].as_array().unwrap(); + if groups + .iter() + .any(|g| g["cacheable"] == false || g["kind"] == "noncacheable") + { + "unavailable prefix-cacheability and global alignment" + } else if case["partial_hash_hits"] == true { + "unavailable partial gate, physical extent, or exact spec equality" + } else if groups + .iter() + .map(|g| number(&g["block_size"])) + .collect::>() + .len() + > 1 + { + "unavailable native global alignment or partial gate" + } else { + "native expectation retained with explicit observed context" + } +} + +#[test] +fn received_state_fixture_scenarios_with_explicit_native_subset() { + let data = fixtures(); + let (mut total, mut native_subset) = (0, 0); + for collection in [ + "fixtures", + "randomized_fixtures", + "boundary_lookup_fixtures", + ] { + for case in data[collection].as_array().unwrap() { + let events = fixture_events(case); + let request = tokens(number(&case["request_tokens"])); + let expected = fixture_expected(case); + let mut cache = GroupCache::default(); + apply(&mut cache, 0, &events); + assert_eq!( + cache.reusable_tokens(&request), + expected, + "{}: {}", + case["name"], + classification(case) + ); + if classification(case) == "native expectation retained with explicit observed context" + { + assert_eq!( + expected, + Some(number(&case["expected_hit_tokens"])), + "native subset: {}", + case["name"] + ); + native_subset += 1; + } + total += 1; + } + } + assert_eq!((total, native_subset), (159, 63)); +} + +#[test] +fn nine_native_hash_vectors_are_opaque_identities_not_recomputed_hashes() { + let data = fixtures(); + let vectors = data["hash_vectors"].as_array().unwrap(); + assert_eq!(vectors.len(), 9); + for vector in vectors { + let block: Vec = serde_json::from_value(vector["token_ids"].clone()).unwrap(); + let first = key(vector["hash"].as_str().unwrap()); + let second = key(vector["next_hash"].as_str().unwrap()); + let mut request = [block.clone(), block.clone()].concat(); + request.push(42); + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[ + store( + 0, + "full_attention", + 0, + block.len(), + vec![first.clone()], + None, + block.clone(), + ), + store( + 0, + "full_attention", + 0, + block.len(), + vec![second], + Some(first.clone()), + block.clone(), + ), + ], + ); + assert_eq!(cache.reusable_tokens(&request), Some(2 * block.len())); + apply( + &mut cache, + 1, + &[GroupEvent::Remove { + group_id: 0, + keys: vec![first], + }], + ); + assert_eq!(cache.reusable_tokens(&request), Some(0)); + } +} + +#[test] +fn newly_observed_group_joins_without_a_roster_or_contiguous_group_ids() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 17, + &[ + root_report(3, "full_attention", 0, 2, &[2, 4, 6, 8], 8), + root_report(9, "full_attention", 0, 2, &[2, 4, 6, 8], 8), + ], + ); + assert_eq!(cache.reusable_tokens(&tokens(11)), Some(8)); + apply(&mut cache, 18, &[root_report(27, "mamba", 0, 2, &[6], 6)]); + assert_eq!(cache.reusable_tokens(&tokens(11)), Some(6)); + apply(&mut cache, 19, &[remove(27, &[6])]); + assert_eq!(cache.reusable_tokens(&tokens(11)), Some(0)); +} + +#[test] +fn sparse_joint_resume_is_24_even_though_independent_maxima_are_32_and_40() { + let mut cache = GroupCache::default(); + let all: Vec<_> = (4..=40).step_by(4).collect(); + apply( + &mut cache, + 0, + &[ + root_report(0, "full_attention", 0, 4, &all, 40), + remove(0, &[36, 40]), + ], + ); + assert_eq!(cache.reusable_tokens(&tokens(41)), Some(32)); + apply( + &mut cache, + 1, + &[root_report(1, "mamba", 0, 4, &[24, 40], 40)], + ); + assert_eq!(cache.reusable_tokens(&tokens(41)), Some(24)); + assert_ne!(cache.reusable_tokens(&tokens(41)), Some(32)); +} + +#[test] +fn sparse_hashes_are_not_ordinal_zipped_and_cross_group_context_resolves_them() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[root_report(1, "mamba", 0, 2, &[4, 8, 10, 12], 12)], + ); + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(0)); + apply( + &mut cache, + 1, + &[root_report( + 0, + "full_attention", + 0, + 2, + &[2, 4, 6, 8, 10, 12], + 12, + )], + ); + assert_eq!(cache.reusable_tokens(&tokens(7)), Some(4)); + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(8)); + assert_eq!(cache.reusable_tokens(&tokens(13)), Some(12)); +} + +#[test] +fn unknown_parent_is_pending_and_eviction_keeps_prefix_context() { + let mut cache = GroupCache::default(); + apply(&mut cache, 0, &[child_report(0, "mamba", 0, 2, 4)]); + assert_eq!(cache.reusable_tokens(&[3, 4, 5]), Some(0)); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(0)); + apply(&mut cache, 1, &[root_report(0, "mamba", 0, 2, &[2], 2)]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); + apply(&mut cache, 2, &[remove(0, &[2, 4])]); + assert_eq!(cache.reusable_tokens(&tokens(7)), Some(0)); + apply(&mut cache, 3, &[child_report(0, "mamba", 0, 4, 6)]); + assert_eq!(cache.reusable_tokens(&tokens(7)), Some(6)); +} + +#[test] +fn repeated_reports_are_idempotent_and_one_remove_withdraws_the_key() { + let mut cache = GroupCache::default(); + let report = root_report(0, "full_attention", 0, 2, &[2, 4], 4); + apply(&mut cache, 0, std::slice::from_ref(&report)); + apply(&mut cache, 0, &[GroupEvent::Invalid]); + apply(&mut cache, 1, &[report]); + apply(&mut cache, 2, &[remove(0, &[4])]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(2)); + apply(&mut cache, 3, &[remove(0, &[4])]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(2)); + apply(&mut cache, 4, &[child_report(0, "full_attention", 0, 2, 4)]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); +} + +#[test] +fn clear_keeps_groups_but_gap_and_disconnect_start_new_observations() { + let mut cache = GroupCache::default(); + let a = root_report(0, "full_attention", 0, 2, &[2, 4], 4); + let b = root_report(1, "mamba", 0, 2, &[4], 4); + apply(&mut cache, 0, &[a.clone(), b.clone()]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); + apply(&mut cache, 1, &[GroupEvent::Clear, a.clone()]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(0)); + apply(&mut cache, 2, &[b]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); + apply(&mut cache, 4, std::slice::from_ref(&a)); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); + apply(&mut cache, 3, &[GroupEvent::Invalid]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); + cache.invalidate(); + assert_eq!(cache.reusable_tokens(&tokens(5)), None); + apply(&mut cache, 31, &[a]); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); +} + +#[test] +fn partial_report_span_is_not_physical_group_size_or_global_alignment() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[root_report(0, "full_attention", 0, 8, &[8], 8)], + ); + apply(&mut cache, 1, &[child_report(1, "mamba", 0, 4, 6)]); + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(0)); + apply( + &mut cache, + 2, + &[root_report(0, "full_attention", 0, 4, &[4], 4)], + ); + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(6)); + apply(&mut cache, 3, &[root_report(1, "mamba", 0, 8, &[8], 8)]); + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(8)); +} + +#[test] +fn raw_key_width_and_leading_bytes_are_identity() { + let keys = [vec![7], vec![0, 7], vec![7; 8], { + let mut wide = vec![0; 24]; + wide.extend_from_slice(&[7; 8]); + wide + }]; + let mut cache = GroupCache::default(); + for (i, key) in keys.iter().enumerate() { + let end = (i + 1) * 2; + apply( + &mut cache, + i as u64, + &[store( + 0, + "mamba", + 0, + end, + vec![key.clone()], + None, + tokens(end), + )], + ); + } + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(8)); + for (sequence, i) in (0..keys.len()).rev().enumerate() { + apply( + &mut cache, + (sequence + 4) as u64, + &[GroupEvent::Remove { + group_id: 0, + keys: vec![keys[i].clone()], + }], + ); + assert_eq!(cache.reusable_tokens(&tokens(9)), Some(i * 2)); + } +} + +#[test] +fn group_and_worker_identity_are_independent() { + let mut first = GroupCache::default(); + let second = GroupCache::default(); + apply( + &mut first, + 0, + &[ + root_report(0, "full_attention", 0, 2, &[2], 2), + root_report(1, "mamba", 0, 2, &[2], 2), + ], + ); + apply(&mut first, 1, &[remove(0, &[2])]); + assert_eq!(first.reusable_tokens(&tokens(3)), Some(0)); + assert_eq!(second.reusable_tokens(&tokens(3)), None); + assert!(first.groups[&1].reported.contains_key(&opaque(2))); +} + +#[test] +fn matching_tail_content_does_not_match_a_different_prefix() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[root_report(0, "mamba", 0, 2, &[2, 4], 4), remove(0, &[2])], + ); + assert_eq!(cache.reusable_tokens(&tokens(5)), Some(4)); + assert_eq!(cache.reusable_tokens(&[9, 9, 3, 4, 5]), Some(0)); +} + +#[test] +fn only_reported_endpoints_below_request_length_are_candidates() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[root_report(0, "full_attention", 0, 4, &[4, 8], 8)], + ); + assert_eq!(cache.reusable_tokens(&tokens(10)), Some(8)); + assert_eq!(cache.reusable_tokens(&tokens(8)), Some(4)); + assert_eq!(cache.reusable_tokens(&tokens(7)), Some(4)); + assert_eq!(cache.reusable_tokens(&[]), Some(0)); +} + +#[test] +fn unsupported_or_missing_group_metadata_is_unavailable() { + for kind in ["", "unknown", "mla_attention", "chunked_local_attention"] { + let mut cache = GroupCache::default(); + apply(&mut cache, 0, &[root_report(0, kind, 0, 2, &[2], 2)]); + assert_eq!(cache.reusable_tokens(&tokens(3)), None); + } + let mut cache = GroupCache::default(); + apply(&mut cache, 0, &[remove(7, &[2])]); + assert_eq!(cache.reusable_tokens(&tokens(3)), None); + apply(&mut cache, 1, &[root_report(7, "mamba", 0, 2, &[2], 2)]); + assert_eq!(cache.reusable_tokens(&tokens(3)), Some(2)); + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[root_report(0, "sliding_window", 0, 2, &[2], 2)], + ); + assert_eq!(cache.reusable_tokens(&tokens(3)), None); +} + +#[test] +fn unmatchable_payload_does_not_invent_prefix_context() { + let mut report = root_report(0, "mamba", 0, 2, &[2], 2); + if let GroupEvent::Store { + tokens_matchable, .. + } = &mut report + { + *tokens_matchable = false; + } + let mut cache = GroupCache::default(); + apply(&mut cache, 0, &[report]); + assert_eq!(cache.reusable_tokens(&tokens(3)), Some(0)); + assert!(cache.groups[&0].reported.contains_key(&opaque(2))); +} + +#[test] +fn malformed_or_conflicting_identity_discards_evidence() { + for invalid in [ + GroupEvent::Invalid, + store(0, "full_attention", 0, 0, vec![opaque(2)], None, tokens(2)), + store(0, "full_attention", 0, 2, vec![Vec::new()], None, tokens(2)), + ] { + let mut cache = GroupCache::default(); + assert!(cache.apply_batch(0, &[invalid]).is_err()); + assert_eq!(cache.reusable_tokens(&tokens(3)), None); + } + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[root_report(0, "full_attention", 0, 2, &[2], 2)], + ); + assert!(cache + .apply_batch( + 1, + &[store( + 0, + "full_attention", + 0, + 2, + vec![opaque(2)], + None, + vec![9, 9] + )] + ) + .is_err()); + assert_eq!(cache.reusable_tokens(&tokens(3)), None); + apply( + &mut cache, + 2, + &[root_report(0, "full_attention", 0, 2, &[2], 2)], + ); + assert!(cache + .apply_batch(3, &[root_report(0, "mamba", 0, 2, &[2], 2)]) + .is_err()); + assert_eq!(cache.reusable_tokens(&tokens(3)), None); +} + +#[test] +fn same_known_endpoint_accepts_full_and_partial_reports_with_unknown_parents() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[ + root_report(0, "full_attention", 0, 16, &[16], 16), + child_report(1, "sliding_window", 9, 8, 16), + child_report(2, "mamba", 0, 14, 16), + ], + ); + assert_eq!(cache.reusable_tokens(&tokens(17)), Some(16)); +} + +#[test] +fn either_unknown_parent_can_resolve_the_same_checkpoint() { + for first_parent in [8, 14] { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[ + child_report(0, "mamba", 0, 8, 16), + child_report(1, "mamba", 0, 14, 16), + ], + ); + assert_eq!(cache.reusable_tokens(&tokens(17)), Some(0)); + apply( + &mut cache, + 1, + &[child_report(0, "mamba", 0, 0, first_parent)], + ); + assert_eq!(cache.reusable_tokens(&tokens(17)), Some(16)); + + let other_parent = if first_parent == 8 { 14 } else { 8 }; + apply( + &mut cache, + 2, + &[child_report(0, "mamba", 0, 0, other_parent)], + ); + assert_eq!(cache.reusable_tokens(&tokens(17)), Some(16)); + } +} + +#[test] +fn reported_span_longer_than_resolved_prefix_cannot_supply_coverage() { + let mut cache = GroupCache::default(); + apply( + &mut cache, + 0, + &[ + root_report(0, "mamba", 0, 2, &[2], 2), + root_report(1, "full_attention", 0, 8, &[2], 2), + ], + ); + assert_eq!(cache.reusable_tokens(&tokens(3)), Some(0)); +} diff --git a/crates/kv_index/src/lib.rs b/crates/kv_index/src/lib.rs index fe62909c74..f8f0c781e3 100644 --- a/crates/kv_index/src/lib.rs +++ b/crates/kv_index/src/lib.rs @@ -13,6 +13,7 @@ mod common; mod event_tree; +pub mod group_cache; mod path_hash; pub mod snapshot; mod string_tree; diff --git a/crates/kv_index/tests/fixtures/vllm-group-cache.json b/crates/kv_index/tests/fixtures/vllm-group-cache.json new file mode 100644 index 0000000000..1959e59c3a --- /dev/null +++ b/crates/kv_index/tests/fixtures/vllm-group-cache.json @@ -0,0 +1 @@ +{"vllm_revision":"56d001faf0f53c72fcedbbdd77e5418f68fe7494","hash_algorithm":"sha256_cbor","none_hash_hex":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","none_hash_seed":"vllm-none-hash","source_provenance":[{"file":"vllm/utils/hashing.py","symbol":"sha256_cbor","line":43,"sha256":"1d39d867495a21a96402ff0fdec7c5b887742100d2f4a46b4e5772457c6af30a"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"make_block_hash_with_group_id","line":62,"sha256":"ecc4c9e962848582f7bf5e2eebe3fca28ec3339a99899002d1b9296e68000fc7"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"get_block_hash","line":74,"sha256":"fb7b6b524e3c44af2bee0c8a04cc42dff0e45ddcb330f76b4b3af0ee8d572479"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"get_group_id","line":79,"sha256":"b32c3b3ff8e736cafc9983411a2b2aac06eae3c92432024394a5fd96656d38da"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"maybe_convert_block_hash","line":84,"sha256":"6f3b4b938a71fe293eaa188a886de6cfaa3a257c7c57283d7e5ba8cf64b170e9"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"hash_block_tokens","line":622,"sha256":"df9adb42b0e989aab8bdb69cc489fbafe2318201dd040ce1eba991c0dbf3d6ef"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"KVCacheBlock","line":164,"sha256":"8512127d2bffb5af9d481df80bc23d077af6154bcd540f434aaf96a9c24bf4db"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"BlockHashListWithBlockSize","line":2677,"sha256":"ca62f828f1a69d7ffa0842ddf90ac8c24482e281edf63349072a65f72472900f"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"resolve_block_hashes","line":2753,"sha256":"2388374b3241a9d1b633780446234b2efd22b03f1d76ddb26a555d30e20ba74e"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockHashToBlockMap","line":33,"sha256":"fa14d01ccef50c0d8798a973031aff34dcd901fffc0115e53263ee79108a8341"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool.get_cached_block","line":198,"sha256":"bd5a249a4470f28d324ba432d09eff0276e55e96d7a3142b9555a52a34d74eb1"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool.cache_full_blocks","line":225,"sha256":"a79bd81bdf4430b4568cd63588c5026549b044fbd3d4fd2466c69fead52810d0"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool._build_block_stored_event","line":344,"sha256":"16ce86ea94882d3755da116eebcf5e03a9582189a4722fe1fc149301a70986c3"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool.emit_cached_block_events","line":374,"sha256":"25444882887cceb44ef70c93ca9222752af2fb2929953b3bad2e2de80a214ef8"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool.cache_partial_block","line":446,"sha256":"8745e75cc082751a49578c403a2fcf5dae65030ef0c8012194ecee3e29f58d88"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool._get_partial_block_hash","line":557,"sha256":"c34ca75eec3b2e508b0fe4bea037a1155cb5c168376f4b54d8dd5cda1eb90d32"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool._get_partial_block_parent_hash_and_start","line":570,"sha256":"61192232eb034f584e87e7bfc99d565d6a234ef826f5ce4f4f83de6162cc9303"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool._remove_cached_block_hashes","line":582,"sha256":"43f8931396e8bd144428603db00fbfdeb77c1efba7677c347fce256ae0028898"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool._emit_block_removed_events","line":603,"sha256":"ca6089594c28c996521615fd332ad71d5fa603d312790918c2ce11ab762eeb12"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool._insert_block_hash","line":618,"sha256":"0689c203db7e7a00412983239ee035ff86a9e3cb0a4e924ac628d6b756c14f85"},{"file":"vllm/v1/core/block_pool.py","symbol":"BlockPool.move_block_hashes","line":640,"sha256":"879b66d9fa63767570e3610aa73cfe8ee85480990fb26ce003cf149aa829534b"},{"file":"vllm/v1/core/single_type_kv_cache_manager.py","symbol":"FullAttentionManager.capability_constant","line":715,"sha256":"13f4c39f6ff5f487f488c0dd466d58ada8b354be17158768e1f5965e2e1687e9"},{"file":"vllm/v1/core/single_type_kv_cache_manager.py","symbol":"FullAttentionManager.find_longest_cache_hit","line":718,"sha256":"ef236ccf8ff85c5c8b6876f2ba70ecadf00115fb07ff4f0b5e1faac1266c7aaf"},{"file":"vllm/v1/core/single_type_kv_cache_manager.py","symbol":"SlidingWindowManager._contiguous_blocks_for_hit","line":931,"sha256":"eed05ad43364a1701739d04a66d681dbafae2e88091b94785d029cae54c079df"},{"file":"vllm/v1/core/single_type_kv_cache_manager.py","symbol":"SlidingWindowManager.find_longest_cache_hit","line":944,"sha256":"3bd5f6c12e3ba63e3ff611d30d0f1614fdc2ea7960389ccb661a76c81e5e1103"},{"file":"vllm/v1/core/single_type_kv_cache_manager.py","symbol":"MambaManager.capability_constant","line":1422,"sha256":"13f4c39f6ff5f487f488c0dd466d58ada8b354be17158768e1f5965e2e1687e9"},{"file":"vllm/v1/core/single_type_kv_cache_manager.py","symbol":"MambaManager.find_longest_cache_hit","line":1457,"sha256":"447d591729cfb8fe8ece0dd613a54707be53903262fba52d0b3559b959cfe491"},{"file":"vllm/v1/kv_cache_interface.py","symbol":"iter_layer_specs","line":1158,"sha256":"447b540899bbbad2b1a52c18602d15cbb3001eb4afc2ce9d200befbe979ed7c9"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"resolve_dcp_kv_block_size","line":652,"sha256":"d88adc85072b472982ebb7047e19af2b710f87c0b86b64e399f3ee1a0727cbf6"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"dcp_world_size_for_kv_cache_spec","line":679,"sha256":"536377e705ceae50be9098ef3f0bb98f3fe5eabe3e69d38dc37c5b8e371f72f9"},{"file":"vllm/v1/core/kv_cache_utils.py","symbol":"resolve_kv_cache_block_sizes","line":701,"sha256":"3bda1c63a816f5cec902c1d00640e4e92a6e0754852e54c2a56531c233c4de6f"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"_validate_prefix_cache_retention_interval","line":34,"sha256":"19dbca4dff3aab4dd6624663317206702531e5d8af22388809a737e9ce8ce3e6"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"KVCacheCoordinator.capability_constant","line":71,"sha256":"af4f05bee0088af8a1302ded6a467e4bfbc5d5754f5b95fdce97d1d14e12e700"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"KVCacheCoordinator.__init__","line":73,"sha256":"bb370c55c4d714b93ec33da2eb733786b86cce1865f1438f80474859e62eb9d0"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"UnitaryKVCacheCoordinator.__init__","line":510,"sha256":"bf21b7dccdbd53aaa05f400a5b2d8d3af5741e2cdb3635c31fe8734a8c71e081"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"UnitaryKVCacheCoordinator.find_longest_cache_hit","line":554,"sha256":"cffe1f266d6c60b9420eaf41b5150ceba9c26615cd318e65af657da468476ac1"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"get_kv_cache_coordinator","line":978,"sha256":"56a94d4eac9e998dcbbf5d9c73625a89e94d2e0f7b698dac6a622b768f70fd3a"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"HybridKVCacheCoordinator.__init__","line":595,"sha256":"8866a7790d96ba3066f13185c84c8bf04d5e6c4f6fb3af7d17cd26d5986f3847"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"HybridKVCacheCoordinator._cache_hit_alignment_tokens","line":697,"sha256":"637cc838e720698057d51a7812534dc3529610ba2aa0fa0a34f3211dfa87d3a0"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"HybridKVCacheCoordinator.verify_and_split_kv_cache_groups","line":706,"sha256":"232274fca8ddf9db78821eb1d45ad8efeee084733ce2de6f8379f88c367d52dc"},{"file":"vllm/v1/core/kv_cache_coordinator.py","symbol":"HybridKVCacheCoordinator.find_longest_cache_hit","line":808,"sha256":"886b951ad90e0d074c4aabcfaf4c5ed03aa86cdace443c0e166fad1a3f6a7821"},{"file":"vllm/v1/core/kv_cache_manager.py","symbol":"KVCacheManager.get_computed_blocks","line":245,"sha256":"1de846a305f6c57aafbcf100ffd0abd932331158e2bb382275231c6854e0e409"}],"fixtures":[{"name":"full_contiguous","request_tokens":17,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16],"id":0}],"hash_block_size":4,"expected_hit_tokens":16,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"full_leading_gap","request_tokens":17,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[8,12,16],"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"full_interior_gap","request_tokens":17,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,12,16],"id":0}],"hash_block_size":4,"expected_hit_tokens":4,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"request_minus_one","request_tokens":16,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16],"id":0}],"hash_block_size":4,"expected_hit_tokens":12,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"same_hash_two_groups_missing_required","request_tokens":17,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16],"id":0},{"kind":"full","block_size":4,"cached":[],"id":1}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a"],"shared_prefix_boundary":0,"lookup_groups":[[0,1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"same_hash_two_groups_intersection","request_tokens":17,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16],"id":0},{"kind":"full","block_size":4,"cached":[4,8],"id":1}],"hash_block_size":4,"expected_hit_tokens":8,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a"],"shared_prefix_boundary":0,"lookup_groups":[[0,1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_window_one_no_entries","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[],"window":1,"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_window_one_one_entry","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[32],"window":1,"id":0}],"hash_block_size":4,"expected_hit_tokens":32,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_old_prefix_absent","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[24,28,32],"window":9,"id":0}],"hash_block_size":4,"expected_hit_tokens":32,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_short_tail","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[32],"window":9,"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_broken_tail","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[24,32],"window":9,"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_short_initial_prefix","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[4,8],"window":17,"id":0}],"hash_block_size":4,"expected_hit_tokens":8,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"swa_multiple_candidates","request_tokens":33,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[8,12,16,28],"window":9,"id":0}],"hash_block_size":4,"expected_hit_tokens":16,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"mamba_sparse","request_tokens":41,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[24,40],"id":0}],"hash_block_size":4,"expected_hit_tokens":40,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"mamba_later_cannot_restore_earlier","request_tokens":33,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[40],"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"joint_8k_6k_10k_scaled","request_tokens":41,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16,20,24,28,32],"id":0},{"kind":"mamba","block_size":4,"cached":[24,40],"id":1}],"hash_block_size":4,"expected_hit_tokens":24,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107"],"shared_prefix_boundary":32,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"mamba_request_boundary","request_tokens":40,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[24,40],"id":0}],"hash_block_size":4,"expected_hit_tokens":24,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"three_group_fixed_point","request_tokens":41,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16,20,24,28,32,36,40],"id":0},{"kind":"swa","block_size":4,"cached":[12,16,28,32],"window":9,"id":1},{"kind":"mamba","block_size":4,"cached":[16,24,40],"id":2}],"hash_block_size":4,"expected_hit_tokens":16,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107"],"shared_prefix_boundary":40,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"mixed_blocks_alignment","request_tokens":49,"hash_unit":4,"groups":[{"kind":"full","block_size":8,"cached":[8,16,24,32,40,48],"id":0},{"kind":"swa","block_size":12,"cached":[12,24,36],"window":13,"id":1}],"hash_block_size":4,"expected_hit_tokens":24,"alignment_tokens":24,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956"],"shared_prefix_boundary":48,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":24,"profile_reachability":"native_resolver_and_factory"},{"name":"partial_full_extension","request_tokens":15,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,12],"id":0},{"kind":"mamba","block_size":8,"cached":[12],"id":1}],"hash_block_size":2,"expected_hit_tokens":12,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"partial_sparse_mamba","request_tokens":15,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,12],"id":0},{"kind":"mamba","block_size":8,"cached":[6,10],"id":1}],"hash_block_size":2,"expected_hit_tokens":10,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":12,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"full_downward_closed_no_partial_alias","request_tokens":9,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8],"id":0},{"kind":"mamba","block_size":8,"cached":[6],"id":1}],"hash_block_size":2,"expected_hit_tokens":6,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"short_request_cannot_use_later_full_block","request_tokens":7,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8],"id":0},{"kind":"mamba","block_size":8,"cached":[6],"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"partial_gate_swa_large_block","request_tokens":17,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,14],"id":0},{"kind":"swa","block_size":4,"cached":[4,8,12,16],"window":5,"id":1},{"kind":"mamba","block_size":8,"cached":[14],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"partial_gate_swa_hash_block","request_tokens":17,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,14],"id":0},{"kind":"swa","block_size":2,"cached":[10,12,14],"window":5,"id":1},{"kind":"mamba","block_size":8,"cached":[14],"id":2}],"hash_block_size":2,"expected_hit_tokens":14,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"equal_full_specs_different_partial_aliases","request_tokens":9,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[6],"id":0},{"kind":"full","block_size":8,"cached":[4],"id":1},{"kind":"mamba","block_size":8,"cached":[4],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5"],"shared_prefix_boundary":0,"lookup_groups":[[0,1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"different_full_specs_sequential_bound","request_tokens":9,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[6],"id":0},{"kind":"full","block_size":8,"cached":[8],"num_kv_heads":2,"id":1},{"kind":"mamba","block_size":8,"cached":[6],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5"],"shared_prefix_boundary":6,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"different_full_specs_different_partial_aliases","request_tokens":9,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[6],"id":0},{"kind":"full","block_size":8,"cached":[4],"num_kv_heads":2,"id":1},{"kind":"mamba","block_size":8,"cached":[4],"id":2}],"hash_block_size":2,"expected_hit_tokens":4,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5"],"shared_prefix_boundary":6,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"partial_mamba_request_minus_one","request_tokens":14,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,12],"id":0},{"kind":"mamba","block_size":8,"cached":[12,14],"id":1}],"hash_block_size":2,"expected_hit_tokens":12,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"}],"randomized_fixtures":[{"name":"random_000","request_tokens":12,"hash_unit":8,"groups":[{"kind":"full","block_size":8,"cached":[8,16,48,64],"num_kv_heads":1,"id":0}],"hash_block_size":8,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_001","request_tokens":5,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[4,10,12,14,16,22,24,34,38,46,48,50,52,56,62],"num_kv_heads":1,"id":0},{"kind":"mamba","block_size":4,"cached":[2,10,14,18,22,26,30,32,34,42,44,64],"id":1}],"hash_block_size":2,"expected_hit_tokens":2,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286"],"shared_prefix_boundary":4,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_002","request_tokens":60,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[8,32,40,56,64],"window":9,"id":0},{"kind":"swa","block_size":2,"cached":[4,6,12,14,16,22,24,26,34,40,42,46,48,52,54,56,58,62,64],"window":3,"id":1}],"hash_block_size":2,"expected_hit_tokens":56,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_003","request_tokens":2,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[16,32,36,40,44,48,60],"window":5,"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":[],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_004","request_tokens":14,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,8,12,16,20,36,40,48,56],"window":9,"id":0},{"kind":"swa","block_size":8,"cached":[24,32,40,48,64],"window":9,"id":1},{"kind":"mamba","block_size":8,"cached":[4,8,10,14,16,18,22,24,26,30,34,46,54,56,58,60],"id":2},{"kind":"full","block_size":2,"cached":[2,10,18,20,38,40,42,44,52,56,60,64],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[3],[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_005","request_tokens":63,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[2,6,12,18,20,22,24,28,32,34,40,46,50,52,56],"id":0},{"kind":"mamba","block_size":4,"cached":[4,6,8,10,24,32,38,40,46,48,54,56,62],"id":1}],"hash_block_size":2,"expected_hit_tokens":56,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470","1cf05c84f2f3de1ad9ef078c593af4bc82889f63797b6109ac23bf393dea67ff"],"shared_prefix_boundary":0,"lookup_groups":[[0,1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_006","request_tokens":45,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,12,16,20,24,40,44,48,52,56],"num_kv_heads":1,"id":0}],"hash_block_size":4,"expected_hit_tokens":4,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_007","request_tokens":4,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[4,10,12,20,22,26,28,30,34,38,46,48,50,56],"num_kv_heads":2,"id":0},{"kind":"swa","block_size":8,"cached":[16,24,48,56,64],"window":9,"id":1},{"kind":"full","block_size":2,"cached":[4,12,16,24,28,30,34,38,40,42,50,54,62,64],"num_kv_heads":2,"id":2},{"kind":"mamba","block_size":4,"cached":[8,10,20,22,24,28,40,44,54,56,58],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286"],"shared_prefix_boundary":0,"lookup_groups":[[0,2],[1],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_008","request_tokens":60,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[8,12,16,20,24,40,52,56,60,64],"id":0}],"hash_block_size":4,"expected_hit_tokens":56,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956","06d8ef619df21f90575db42dfcf041b9a9a9fd16e011deff192f869ab3a274d1","341c17cf06cee09d1011898aedd917e82d1c7ee3b46e5802bd55567e057e0fca","b114e930465d33ba5c6edc8c9da04fba1036925a7486beecfbf49767fb32fba1"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_009","request_tokens":32,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[2,4,6,8,10,26,30,36,38,44,50,56,60,64],"num_kv_heads":2,"id":0},{"kind":"swa","block_size":2,"cached":[4,8,16,18,20,22,24,26,28,32,36,38,42,44,46,48,50,58,62,64],"window":17,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_010","request_tokens":24,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[4,8,12,14,20,22,26,28,30,34,38,40,42,44,50,58,60,62],"window":1,"id":0},{"kind":"full","block_size":2,"cached":[2,6,14,16,20,30,32,34,42,46,48,50,52,54,62,64],"num_kv_heads":1,"id":1},{"kind":"swa","block_size":4,"cached":[12,16,20,28,32,40,48],"window":17,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7"],"shared_prefix_boundary":0,"lookup_groups":[[1],[0],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_011","request_tokens":22,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[12,20,24,28,44,52,60,64],"id":0}],"hash_block_size":4,"expected_hit_tokens":20,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_012","request_tokens":2,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[12,20,48,60,64],"window":17,"id":0},{"kind":"full","block_size":8,"cached":[2,4,6,10,16,32,36,40,44,58,64],"num_kv_heads":1,"id":1},{"kind":"full","block_size":2,"cached":[6,8,12,16,18,32,40,44,46,62],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"shared_prefix_boundary":0,"lookup_groups":[[1],[2],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_013","request_tokens":64,"hash_unit":8,"groups":[{"kind":"mamba","block_size":8,"cached":[16,24,40,56,64],"id":0}],"hash_block_size":8,"expected_hit_tokens":56,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691","cbf7fca722f0af38adcaceb1b7ffa0c70454d6a7cffe42605e278b4e096eb168","4d4d615e6fa07a99264f288898152a1c1f0be17da909666cb5a6cebff68fbeb8","42ef76cddf654368f14661c018580d32791ae8fba354871ea191d32a7b155da4","b7768f8dca59a77cbffc240d4e054e6749299c980265849385700573f9a37364"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_014","request_tokens":25,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[4,10,14,16,18,20,26,36,42,46,50,52,54,56,58,62,64],"num_kv_heads":1,"id":0},{"kind":"swa","block_size":2,"cached":[6,8,12,14,16,20,28,30,34,38,40,44,46,48,52,54,60],"window":5,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_015","request_tokens":60,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[4,8,10,26,28,34,36,46,52,58,60,62,64],"num_kv_heads":1,"id":0},{"kind":"mamba","block_size":2,"cached":[2,4,6,14,16,22,28,30,32,36,38,40,42,44,46,48,50,58,60],"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_016","request_tokens":29,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[4,20,22,24,26,28,30,32,36,38,40,44,54],"id":0},{"kind":"full","block_size":8,"cached":[4,8,10,12,14,18,20,24,28,30,34,38,40,50,52,56,64],"num_kv_heads":2,"id":1},{"kind":"swa","block_size":4,"cached":[4,8,12,24,28,40,52,56,60,64],"window":5,"id":2},{"kind":"full","block_size":2,"cached":[4,12,26,28,30,32,34,44,56],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee"],"shared_prefix_boundary":8,"lookup_groups":[[1],[3],[0],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_017","request_tokens":15,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[4,6,8,10,24,32,38,40,44,60,64],"id":0},{"kind":"full","block_size":2,"cached":[2,4,6,16,18,20,32,54,56,64],"num_kv_heads":2,"id":1},{"kind":"full","block_size":2,"cached":[2,6,8,12,14,16,18,20,22,24,26,28,38,52,56,58,62],"num_kv_heads":2,"id":2},{"kind":"swa","block_size":8,"cached":[16,56,64],"window":17,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[1,2],[0],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_018","request_tokens":45,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[4,8,12,20,24,26,28,34,36,46,48,54,60,62,64],"id":0},{"kind":"full","block_size":2,"cached":[4,6,8,14,18,20,24,26,30,36,38,40,44,50,54,56,58],"num_kv_heads":1,"id":1},{"kind":"full","block_size":8,"cached":[2,16,20,22,24,26,30,34,36,42,50,52,54,58,62,64],"num_kv_heads":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6"],"shared_prefix_boundary":0,"lookup_groups":[[1],[2],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_019","request_tokens":30,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[8,12,16,26,38,40,42,44,48,50,52,62,64],"num_kv_heads":1,"id":0},{"kind":"full","block_size":4,"cached":[2,4,6,8,10,14,16,20,22,36,42,44,50,52,54,56,58,62],"num_kv_heads":2,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_020","request_tokens":36,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[2,6,8,12,14,24,26,30,32,38,42,44,50,52,56,62,64],"id":0},{"kind":"mamba","block_size":2,"cached":[4,6,14,20,28,32,34,50,54,60,64],"id":1}],"hash_block_size":2,"expected_hit_tokens":32,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_021","request_tokens":58,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[4,24,32,64],"window":3,"id":0}],"hash_block_size":4,"expected_hit_tokens":32,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956","06d8ef619df21f90575db42dfcf041b9a9a9fd16e011deff192f869ab3a274d1","341c17cf06cee09d1011898aedd917e82d1c7ee3b46e5802bd55567e057e0fca"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_022","request_tokens":7,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[8,16,24,56,64],"window":17,"id":0},{"kind":"full","block_size":4,"cached":[6,10,14,16,20,22,30,32,38,42,48,52,54,56,60,64],"num_kv_heads":1,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc"],"shared_prefix_boundary":0,"lookup_groups":[[1],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_023","request_tokens":38,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[4,10,14,18,20,22,26,28,38,46,50,58,64],"num_kv_heads":1,"id":0},{"kind":"full","block_size":4,"cached":[2,4,10,12,28,30,34,44,48,50,52,56,58,60,62],"num_kv_heads":2,"id":1},{"kind":"full","block_size":8,"cached":[2,6,8,10,14,24,30,32,42,46,50,56,60],"num_kv_heads":1,"id":2},{"kind":"full","block_size":8,"cached":[12,26,32,42,44,50,58,60],"num_kv_heads":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2,3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_024","request_tokens":27,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[2,4,6,14,16,18,20,26,30,32,36,40,52,54,56],"id":0},{"kind":"full","block_size":4,"cached":[10,16,18,22,26,28,30,34,36,40,42,44,46,48,54,58,64],"num_kv_heads":1,"id":1},{"kind":"swa","block_size":4,"cached":[4,12,20,28,32,52,56,60,64],"window":17,"id":2},{"kind":"full","block_size":4,"cached":[2,6,10,18,24,26,32,36,38,40,44,52,54,56,60,64],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027"],"shared_prefix_boundary":0,"lookup_groups":[[1],[3],[0],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_025","request_tokens":19,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[8,10,16,18,20,28,30,32,34,36,38,40,44,48,54,60],"id":0},{"kind":"swa","block_size":8,"cached":[16,32,40,64],"window":3,"id":1},{"kind":"mamba","block_size":8,"cached":[2,8,20,22,26,30,46,60,64],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9"],"shared_prefix_boundary":16,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_026","request_tokens":34,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[2,4,6,12,14,22,24,30,32,34,38,40,44,46,48,52,60],"num_kv_heads":2,"id":0}],"hash_block_size":2,"expected_hit_tokens":6,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_027","request_tokens":47,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[24,56],"window":9,"id":0},{"kind":"mamba","block_size":2,"cached":[4,8,20,30,32,38,42,52,54],"id":1},{"kind":"mamba","block_size":8,"cached":[4,6,14,16,22,28,30,42,44,46,48,52,60],"id":2},{"kind":"mamba","block_size":2,"cached":[2,6,12,20,24,26,28,30,40,42,44,46,50,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4"],"shared_prefix_boundary":24,"lookup_groups":[[0],[1,3],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_028","request_tokens":22,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[4,8,16,20,24,32,40,56,64],"window":1,"id":0}],"hash_block_size":4,"expected_hit_tokens":20,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_029","request_tokens":42,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[4,12,32,36,44,52,60],"id":0}],"hash_block_size":4,"expected_hit_tokens":36,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_030","request_tokens":17,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[10,14,18,22,26,28,36,38,42,46,48,50,52,54,58,60,64],"window":1,"id":0},{"kind":"swa","block_size":4,"cached":[20,24,28,36,60],"window":9,"id":1},{"kind":"mamba","block_size":2,"cached":[6,8,14,18,24,30,38,46,50,52,54,60],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_031","request_tokens":49,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[2,10,12,16,18,20,24,26,28,34,38,40,44,48,50,54,60,64],"window":17,"id":0},{"kind":"full","block_size":4,"cached":[4,16,20,22,26,28,36,38,42,46,56,60],"num_kv_heads":1,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10"],"shared_prefix_boundary":4,"lookup_groups":[[1],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_032","request_tokens":11,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[2,10,16,18,20,24,36,38,42,44,50,64],"num_kv_heads":1,"id":0}],"hash_block_size":2,"expected_hit_tokens":2,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_033","request_tokens":39,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[6,8,10,24,26,32,34,36,42,52,56,60,62],"num_kv_heads":1,"id":0},{"kind":"full","block_size":8,"cached":[4,6,10,16,22,28,32,36,38,42,44,50,56,58,60,62],"num_kv_heads":2,"id":1},{"kind":"mamba","block_size":8,"cached":[4,16,18,20,22,28,40,42,46,50,60,62],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_034","request_tokens":28,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[6,10,26,28,32,34,44,46,56,62],"num_kv_heads":2,"id":0}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_035","request_tokens":21,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[12,16,20,24,26,32,34,36,38,42,50,52,54,56,58,60,62],"id":0},{"kind":"mamba","block_size":8,"cached":[4,6,12,14,20,24,30,32,36,40,42,46,48,50,52,54,58,62],"id":1}],"hash_block_size":2,"expected_hit_tokens":20,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_036","request_tokens":45,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[2,8,12,16,28,30,34,56,60,62],"num_kv_heads":1,"id":0},{"kind":"swa","block_size":8,"cached":[8,24,40,56,64],"window":5,"id":1},{"kind":"swa","block_size":2,"cached":[2,6,8,18,20,22,28,32,44,48,50,52,62],"window":5,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_037","request_tokens":35,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[2,4,12,16,20,22,28,34,36,38,46,48,50,60,64],"num_kv_heads":1,"id":0},{"kind":"mamba","block_size":4,"cached":[8,12,18,26,32,34,38,42,44,48,50,52,54,60,62],"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429"],"shared_prefix_boundary":4,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_038","request_tokens":5,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[6,12,24,30,32,36,38,42,46,48,58,62],"window":17,"id":0}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_039","request_tokens":32,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[6,10,12,20,30,34,36,42,44,54,58,60],"id":0}],"hash_block_size":2,"expected_hit_tokens":30,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_040","request_tokens":28,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[6,10,12,18,22,24,26,32,34,42,44,56,60],"num_kv_heads":2,"id":0},{"kind":"mamba","block_size":2,"cached":[6,10,12,14,16,18,20,22,26,28,30,34,36,38,40,44,50,54,56,62],"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_041","request_tokens":30,"hash_unit":8,"groups":[{"kind":"full","block_size":8,"cached":[24,40,56],"num_kv_heads":1,"id":0}],"hash_block_size":8,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_042","request_tokens":60,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[6,8,12,14,26,32,40,46,48,50,58,60,62,64],"num_kv_heads":1,"id":0},{"kind":"full","block_size":2,"cached":[4,6,10,18,24,28,34,38,42,44,46,52,54,58],"num_kv_heads":1,"id":1},{"kind":"full","block_size":8,"cached":[6,8,12,16,18,24,28,30,32,36,40,46,48,52,54,58,62],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_043","request_tokens":13,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[2,4,6,16,18,24,28,36,38,40,42,44,46,48,62],"id":0},{"kind":"swa","block_size":2,"cached":[2,4,12,26,28,36,38,40,46,50,54,58,60],"window":3,"id":1}],"hash_block_size":2,"expected_hit_tokens":4,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0"],"shared_prefix_boundary":6,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_044","request_tokens":44,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[6,10,12,20,26,28,42,46,48,60,62],"id":0},{"kind":"swa","block_size":8,"cached":[8,24,56],"window":5,"id":1},{"kind":"full","block_size":8,"cached":[2,6,10,18,20,28,40,42,46,52,58,60,64],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6"],"shared_prefix_boundary":0,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_045","request_tokens":50,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[2,10,12,22,26,28,34,44,46,48,56,58],"id":0},{"kind":"mamba","block_size":4,"cached":[4,6,12,18,22,28,32,34,38,40,42,44,46,54,64],"id":1},{"kind":"full","block_size":4,"cached":[2,4,8,12,16,18,20,24,26,32,34,40,42,52,54,56,64],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":22,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92"],"shared_prefix_boundary":26,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_046","request_tokens":29,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[4,16,18,20,28,32,38,46,52,56,58,62],"id":0},{"kind":"full","block_size":4,"cached":[8,10,14,16,18,30,32,40,48,52,56,58,62,64],"num_kv_heads":1,"id":1},{"kind":"full","block_size":4,"cached":[8,10,14,24,26,28,32,34,36,40,42,48,50,62,64],"num_kv_heads":2,"id":2},{"kind":"full","block_size":8,"cached":[12,22,24,36,40,42,46,48,50,52,54,58],"num_kv_heads":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee"],"shared_prefix_boundary":0,"lookup_groups":[[1],[2],[3],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_047","request_tokens":63,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[6,20,30,32,34,38,40,42,46,48,54,56,58,62,64],"num_kv_heads":1,"id":0},{"kind":"full","block_size":8,"cached":[4,12,16,26,28,34,38,40,42,46,50,56,64],"num_kv_heads":2,"id":1},{"kind":"swa","block_size":2,"cached":[4,6,8,16,18,24,26,30,32,34,38,40,44,46,48,56,62],"window":1,"id":2},{"kind":"full","block_size":2,"cached":[2,4,8,10,22,24,34,36,60,62,64],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470","1cf05c84f2f3de1ad9ef078c593af4bc82889f63797b6109ac23bf393dea67ff"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[3],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_048","request_tokens":14,"hash_unit":8,"groups":[{"kind":"mamba","block_size":8,"cached":[8,32,40,56],"id":0}],"hash_block_size":8,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_049","request_tokens":28,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[2,12,14,18,20,24,26,28,32,34,44,48,64],"num_kv_heads":1,"id":0},{"kind":"mamba","block_size":2,"cached":[14,16,18,20,26,32,38,48,56,58],"id":1},{"kind":"full","block_size":2,"cached":[2,4,8,12,14,16,18,20,22,26,32,34,36,38,42,44,46,54,62,64],"num_kv_heads":1,"id":2},{"kind":"swa","block_size":4,"cached":[8,16,20,28,32,36,44,52,56,60],"window":5,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee"],"shared_prefix_boundary":0,"lookup_groups":[[0],[2],[1],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_050","request_tokens":7,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[16,24,40],"window":9,"id":0},{"kind":"full","block_size":4,"cached":[2,4,10,12,14,18,20,22,30,36,40,48,50,54,58,60,64],"num_kv_heads":1,"id":1},{"kind":"swa","block_size":8,"cached":[16,32],"window":9,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc"],"shared_prefix_boundary":0,"lookup_groups":[[1],[0],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_051","request_tokens":45,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[2,8,16,20,24,26,28,36,48,50,54,58],"id":0},{"kind":"mamba","block_size":2,"cached":[2,14,16,18,20,24,26,28,30,34,46,48,50,58,60,64],"id":1},{"kind":"mamba","block_size":4,"cached":[4,10,12,22,24,26,32,34,38,42,50,52,54,58,60,64],"id":2},{"kind":"swa","block_size":2,"cached":[4,6,20,26,28,32,34,38,48,50,54,62],"window":3,"id":3}],"hash_block_size":2,"expected_hit_tokens":26,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6"],"shared_prefix_boundary":28,"lookup_groups":[[0,1],[2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_052","request_tokens":7,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[8,14,16,20,22,24,28,30,34,36,40,44,48,56,64],"id":0},{"kind":"swa","block_size":2,"cached":[2,12,14,16,18,22,24,28,34,36,38,42,52,54,58,60],"window":9,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_053","request_tokens":51,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[6,16,20,28,38,44,50,54,56,58],"id":0},{"kind":"swa","block_size":8,"cached":[48,64],"window":17,"id":1},{"kind":"swa","block_size":2,"cached":[6,10,14,16,20,28,30,32,34,40,44,50,52,56,60],"window":17,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92"],"shared_prefix_boundary":16,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_054","request_tokens":34,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,20,24,28,36,40,44,48,56],"window":17,"id":0},{"kind":"mamba","block_size":2,"cached":[8,10,16,20,22,26,50,52,56,62,64],"id":1},{"kind":"full","block_size":2,"cached":[6,10,12,14,20,26,34,38,40,42,48,50,56,60,62,64],"num_kv_heads":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429"],"shared_prefix_boundary":0,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_055","request_tokens":53,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[2,4,6,10,12,16,20,40,42,44,46,50,52,54],"num_kv_heads":2,"id":0},{"kind":"swa","block_size":8,"cached":[16,24,32,40,48,56,64],"window":9,"id":1},{"kind":"swa","block_size":8,"cached":[16,32,64],"window":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_056","request_tokens":29,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[4,10,20,22,28,34,38,40,44,48,56,58,60,62],"num_kv_heads":1,"id":0},{"kind":"swa","block_size":2,"cached":[6,8,12,14,16,20,22,30,32,34,36,38,40,42,52,54,56],"window":5,"id":1},{"kind":"full","block_size":4,"cached":[2,4,6,8,10,14,16,20,22,26,32,44,46,50,54,60,62,64],"num_kv_heads":2,"id":2},{"kind":"swa","block_size":8,"cached":[40,64],"window":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee"],"shared_prefix_boundary":0,"lookup_groups":[[0],[2],[1],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_057","request_tokens":52,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[6,8,18,34,36,38,40,44,48,52],"id":0},{"kind":"mamba","block_size":8,"cached":[6,18,22,26,28,30,34,36,38,42,46,48,54,56,60],"id":1},{"kind":"mamba","block_size":4,"cached":[4,6,8,12,20,22,32,36,40,44,46,48,50,52,54,62],"id":2},{"kind":"mamba","block_size":2,"cached":[2,8,10,12,14,16,18,24,28,32,34,36,38,50,52,62,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":36,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f"],"shared_prefix_boundary":38,"lookup_groups":[[0,3],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_058","request_tokens":43,"hash_unit":8,"groups":[{"kind":"swa","block_size":8,"cached":[8,16,24,40,48,56],"window":3,"id":0}],"hash_block_size":8,"expected_hit_tokens":40,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691","cbf7fca722f0af38adcaceb1b7ffa0c70454d6a7cffe42605e278b4e096eb168"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_059","request_tokens":20,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,12,24,32,40,44,52,56,64],"window":17,"id":0},{"kind":"swa","block_size":2,"cached":[2,6,8,10,12,14,18,22,26,30,32,34,36,38,42,50,52,62,64],"window":9,"id":1},{"kind":"swa","block_size":8,"cached":[48,56,64],"window":1,"id":2},{"kind":"full","block_size":4,"cached":[10,20,22,26,28,30,32,40,42,44,46,50,56,58,62],"num_kv_heads":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc"],"shared_prefix_boundary":0,"lookup_groups":[[3],[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_060","request_tokens":41,"hash_unit":8,"groups":[{"kind":"full","block_size":8,"cached":[8,16,24,32,48,56],"num_kv_heads":1,"id":0}],"hash_block_size":8,"expected_hit_tokens":32,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691","cbf7fca722f0af38adcaceb1b7ffa0c70454d6a7cffe42605e278b4e096eb168"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_061","request_tokens":35,"hash_unit":8,"groups":[{"kind":"swa","block_size":8,"cached":[24,48,56],"window":5,"id":0}],"hash_block_size":8,"expected_hit_tokens":24,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_062","request_tokens":61,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[20,28,52,64],"id":0}],"hash_block_size":4,"expected_hit_tokens":52,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956","06d8ef619df21f90575db42dfcf041b9a9a9fd16e011deff192f869ab3a274d1","341c17cf06cee09d1011898aedd917e82d1c7ee3b46e5802bd55567e057e0fca","b114e930465d33ba5c6edc8c9da04fba1036925a7486beecfbf49767fb32fba1"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_063","request_tokens":16,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[12,22,38,40,42,48,50,56],"num_kv_heads":2,"id":0},{"kind":"full","block_size":2,"cached":[14,18,24,34,36,38,40,46,48,50,54,56,64],"num_kv_heads":2,"id":1},{"kind":"mamba","block_size":4,"cached":[10,16,18,22,34,38,44,50,60,64],"id":2},{"kind":"swa","block_size":4,"cached":[4,12,16,20,44,48,52,60],"window":9,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_064","request_tokens":56,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[8,12,32,40,44,48],"window":17,"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956","06d8ef619df21f90575db42dfcf041b9a9a9fd16e011deff192f869ab3a274d1","341c17cf06cee09d1011898aedd917e82d1c7ee3b46e5802bd55567e057e0fca"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_065","request_tokens":64,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[2,10,16,20,26,28,30,34,40,42,46,48,52,54,56,60,62,64],"id":0},{"kind":"full","block_size":4,"cached":[2,12,14,18,20,28,30,32,36,38,62,64],"num_kv_heads":1,"id":1},{"kind":"mamba","block_size":2,"cached":[4,10,14,18,20,28,30,34,36,38,40,48,52,58,60,62],"id":2},{"kind":"swa","block_size":8,"cached":[24,32,48],"window":9,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470","1cf05c84f2f3de1ad9ef078c593af4bc82889f63797b6109ac23bf393dea67ff","039893d6a1cd4d8e392b28dcb948b159b9907956c95c35c78347b15cef86b2e3"],"shared_prefix_boundary":0,"lookup_groups":[[1],[0,2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_066","request_tokens":57,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[2,4,6,10,12,14,16,20,22,28,32,34,44,46,50,52,54,58,64],"window":9,"id":0},{"kind":"mamba","block_size":2,"cached":[4,6,8,10,12,16,18,24,26,28,32,34,36,48,52,54,62],"id":1}],"hash_block_size":2,"expected_hit_tokens":16,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_067","request_tokens":44,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,24,40,44,52],"window":9,"id":0},{"kind":"mamba","block_size":8,"cached":[4,6,14,20,28,36,48,56,64],"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_068","request_tokens":50,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[10,12,16,20,22,24,26,28,30,32,36,42,52,58],"num_kv_heads":1,"id":0}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_069","request_tokens":62,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[10,14,18,22,24,30,34,36,38,46,50,56,60],"window":9,"id":0}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470","1cf05c84f2f3de1ad9ef078c593af4bc82889f63797b6109ac23bf393dea67ff"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_070","request_tokens":52,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[14,16,18,22,30,32,34,36,38,42,44,48,52,58,60,62],"num_kv_heads":2,"id":0},{"kind":"swa","block_size":4,"cached":[4,8,20,24,32,36,44,56],"window":17,"id":1},{"kind":"mamba","block_size":4,"cached":[8,10,12,14,16,18,22,26,30,34,40,42,44,48,52],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_071","request_tokens":55,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[2,12,14,26,28,30,32,34,46,48,52,54,56,60,62,64],"window":17,"id":0}],"hash_block_size":2,"expected_hit_tokens":2,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_072","request_tokens":50,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[16,48,64],"window":5,"id":0},{"kind":"swa","block_size":8,"cached":[8,24,32,48,56],"window":9,"id":1},{"kind":"mamba","block_size":4,"cached":[4,8,14,18,20,24,28,34,42,46,50],"id":2},{"kind":"full","block_size":4,"cached":[2,4,10,14,16,36,46,48,52,56,58,60,62],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92"],"shared_prefix_boundary":0,"lookup_groups":[[3],[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_073","request_tokens":33,"hash_unit":8,"groups":[{"kind":"full","block_size":8,"cached":[8,16,48,56],"num_kv_heads":1,"id":0}],"hash_block_size":8,"expected_hit_tokens":16,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_074","request_tokens":4,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[24,56],"window":5,"id":0},{"kind":"swa","block_size":4,"cached":[4,28,32,48,56],"window":9,"id":1},{"kind":"swa","block_size":4,"cached":[28,36,40,48,52,56,60],"window":5,"id":2},{"kind":"mamba","block_size":8,"cached":[2,8,10,14,16,20,22,24,28,30,40,42,46,48,52,54,56,58,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_075","request_tokens":63,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[4,36,40,44,64],"window":9,"id":0}],"hash_block_size":4,"expected_hit_tokens":44,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956","06d8ef619df21f90575db42dfcf041b9a9a9fd16e011deff192f869ab3a274d1","341c17cf06cee09d1011898aedd917e82d1c7ee3b46e5802bd55567e057e0fca","b114e930465d33ba5c6edc8c9da04fba1036925a7486beecfbf49767fb32fba1"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_076","request_tokens":34,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[10,20,32,36,46,54,56,58,62,64],"id":0},{"kind":"mamba","block_size":2,"cached":[2,4,8,12,16,20,22,32,34,38,50,52,54],"id":1},{"kind":"full","block_size":2,"cached":[6,8,14,26,30,32,34,36,38,46,48,50,52,62],"num_kv_heads":1,"id":2},{"kind":"full","block_size":8,"cached":[2,12,18,22,30,38,40,42,44,46,48,56,58,62],"num_kv_heads":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429"],"shared_prefix_boundary":0,"lookup_groups":[[2],[3],[0,1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_077","request_tokens":16,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[8,16,24,32,56,64],"window":5,"id":0},{"kind":"full","block_size":4,"cached":[2,6,12,28,30,32,34,42,48,50,58,60,62,64],"num_kv_heads":2,"id":1},{"kind":"swa","block_size":4,"cached":[4,12,16,24,32,60],"window":9,"id":2},{"kind":"full","block_size":8,"cached":[2,8,10,12,14,16,30,32,34,40,42,46,48,54,56,60,62,64],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[1],[3],[0],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_078","request_tokens":57,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[4,6,8,10,16,18,20,24,30,34,38,40,44,48,52,54,56,60,64],"id":0},{"kind":"mamba","block_size":2,"cached":[2,4,8,14,24,26,28,42,52,54],"id":1},{"kind":"full","block_size":4,"cached":[6,8,10,16,20,24,26,32,36,38,40,44,46,48,50,52,54,56,60,62],"num_kv_heads":1,"id":2},{"kind":"mamba","block_size":8,"cached":[10,12,16,18,22,30,34,36,38,42,44,46,48,50,60],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42"],"shared_prefix_boundary":0,"lookup_groups":[[2],[0,3],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_079","request_tokens":31,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[4,6,10,12,14,18,30,32,34,38,40,42,44,48,50,52,56,60,62,64],"id":0},{"kind":"full","block_size":2,"cached":[6,12,14,18,26,28,32,34,40,46,48,50,52,54,60,62,64],"num_kv_heads":1,"id":1},{"kind":"full","block_size":4,"cached":[4,6,8,10,14,18,20,22,24,26,28,32,36,38,40,44,46,56,58,64],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218"],"shared_prefix_boundary":0,"lookup_groups":[[1],[2],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_080","request_tokens":35,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[8,12,20,32,48,56,64],"window":3,"id":0},{"kind":"full","block_size":8,"cached":[2,4,6,12,14,18,20,22,24,30,32,44,46,52,62,64],"num_kv_heads":1,"id":1},{"kind":"mamba","block_size":4,"cached":[2,4,8,12,16,18,20,22,30,32,42,46,56,58,60],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429"],"shared_prefix_boundary":0,"lookup_groups":[[1],[0],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_081","request_tokens":28,"hash_unit":8,"groups":[{"kind":"full","block_size":8,"cached":[8,32,40,56,64],"num_kv_heads":1,"id":0}],"hash_block_size":8,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_082","request_tokens":30,"hash_unit":4,"groups":[{"kind":"swa","block_size":4,"cached":[4,24,36,44,48,52],"window":3,"id":0}],"hash_block_size":4,"expected_hit_tokens":24,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_083","request_tokens":42,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,20,28,32,36,40,52,56,60,64],"num_kv_heads":1,"id":0}],"hash_block_size":4,"expected_hit_tokens":8,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_084","request_tokens":10,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[2,4,6,8,16,28,38,40,52,54,60,62],"id":0},{"kind":"mamba","block_size":8,"cached":[2,10,12,14,20,22,26,28,30,32,38,46,48,50,56,64],"id":1},{"kind":"swa","block_size":8,"cached":[8,24,32,48,56,64],"window":17,"id":2},{"kind":"mamba","block_size":2,"cached":[2,8,10,16,18,20,24,28,32,34,36,38,42,44,48,56,58,60,62,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224"],"shared_prefix_boundary":8,"lookup_groups":[[0,3],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_085","request_tokens":39,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[4,6,10,16,20,24,28,30,32,36,40,50,52,54,56,58,64],"num_kv_heads":2,"id":0},{"kind":"mamba","block_size":4,"cached":[4,8,24,26,28,30,38,44,50,56,58,60],"id":1}],"hash_block_size":2,"expected_hit_tokens":4,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce"],"shared_prefix_boundary":6,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_086","request_tokens":26,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[4,16,22,24,26,32,34,38,42,46,48,50,52,54,56],"id":0},{"kind":"mamba","block_size":2,"cached":[2,4,6,12,14,32,36,38,42,48,54,62],"id":1},{"kind":"mamba","block_size":8,"cached":[2,6,8,16,18,22,26,28,30,32,38,40,44,48,50,52,56,60,64],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027"],"shared_prefix_boundary":24,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_087","request_tokens":56,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[2,6,8,10,14,18,24,26,30,32,34,40,44,46,48,50,54,56],"num_kv_heads":2,"id":0},{"kind":"full","block_size":4,"cached":[2,4,6,14,16,22,24,30,40,44,48,50,58,62,64],"num_kv_heads":1,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_088","request_tokens":28,"hash_unit":8,"groups":[{"kind":"swa","block_size":8,"cached":[8,24,32,48,64],"window":17,"id":0}],"hash_block_size":8,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_089","request_tokens":56,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,20,24,32,52],"window":17,"id":0},{"kind":"swa","block_size":2,"cached":[8,12,14,20,24,32,38,44,48,52,60],"window":3,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42"],"shared_prefix_boundary":4,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_090","request_tokens":31,"hash_unit":8,"groups":[{"kind":"mamba","block_size":8,"cached":[8,16,24,32,56,64],"id":0}],"hash_block_size":8,"expected_hit_tokens":24,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_091","request_tokens":59,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[4,6,8,24,26,30,34,36,40,42,44,46,50,54,60,62,64],"num_kv_heads":1,"id":0},{"kind":"swa","block_size":8,"cached":[8,16,24,32,40],"window":17,"id":1}],"hash_block_size":2,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_092","request_tokens":52,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[2,4,6,10,12,14,16,18,24,28,32,40,42,48,58,60],"window":9,"id":0},{"kind":"mamba","block_size":4,"cached":[12,18,28,30,32,46,54,62],"id":1}],"hash_block_size":2,"expected_hit_tokens":18,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_093","request_tokens":40,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[4,12,20,26,28,32,34,38,44,54,58],"num_kv_heads":2,"id":0},{"kind":"mamba","block_size":8,"cached":[4,8,12,18,22,24,26,28,30,38,44,48,50,54,64],"id":1},{"kind":"mamba","block_size":4,"cached":[8,20,26,28,32,42,56,58,62,64],"id":2},{"kind":"mamba","block_size":8,"cached":[2,4,6,12,14,24,30,36,44,46,48,54,56,58],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94"],"shared_prefix_boundary":4,"lookup_groups":[[0],[1,3],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_094","request_tokens":25,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,16,24,28,40,44,52,60,64],"window":3,"id":0},{"kind":"swa","block_size":8,"cached":[8,16,40,48,56,64],"window":5,"id":1},{"kind":"mamba","block_size":4,"cached":[2,8,10,12,16,20,24,28,30,32,34,38,42,58,60,62,64],"id":2}],"hash_block_size":2,"expected_hit_tokens":16,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7"],"shared_prefix_boundary":24,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_095","request_tokens":2,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[40],"window":3,"id":0},{"kind":"swa","block_size":8,"cached":[32,64],"window":9,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_096","request_tokens":42,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[12,28,32,36,60,64],"window":5,"id":0},{"kind":"swa","block_size":8,"cached":[16,24,40,48,56,64],"window":1,"id":1},{"kind":"full","block_size":4,"cached":[4,18,28,30,38,44,48,60,62],"num_kv_heads":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372"],"shared_prefix_boundary":0,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_097","request_tokens":62,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[10,20,22,38,42,44,52,54,62,64],"id":0}],"hash_block_size":2,"expected_hit_tokens":54,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470","1cf05c84f2f3de1ad9ef078c593af4bc82889f63797b6109ac23bf393dea67ff"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_098","request_tokens":64,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[4,6,10,16,24,28,36,46,48,52,56,58,60,64],"window":1,"id":0},{"kind":"full","block_size":4,"cached":[2,6,8,12,14,22,30,32,34,38,40,44,54,58],"num_kv_heads":1,"id":1},{"kind":"full","block_size":2,"cached":[2,6,8,20,24,26,30,38,44,46,50,52,54,56,58,62,64],"num_kv_heads":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289","4aa1aa34cad75c3560b3ddadd93266e695487dccb85c7e8296c290dc28592470","1cf05c84f2f3de1ad9ef078c593af4bc82889f63797b6109ac23bf393dea67ff","039893d6a1cd4d8e392b28dcb948b159b9907956c95c35c78347b15cef86b2e3"],"shared_prefix_boundary":0,"lookup_groups":[[1],[2],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_099","request_tokens":3,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[2,4,10,12,14,22,26,32,36,38,40,46,48,50,58,62],"num_kv_heads":2,"id":0}],"hash_block_size":2,"expected_hit_tokens":2,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_100","request_tokens":39,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[12,14,18,22,26,28,30,36,40,44,46,50,58,62],"id":0},{"kind":"swa","block_size":4,"cached":[8,20,24,28,40,52,56],"window":5,"id":1},{"kind":"full","block_size":8,"cached":[2,4,8,12,14,16,18,20,28,32,38,48,50,58],"num_kv_heads":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce"],"shared_prefix_boundary":16,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_101","request_tokens":53,"hash_unit":8,"groups":[{"kind":"mamba","block_size":8,"cached":[32,48,64],"id":0}],"hash_block_size":8,"expected_hit_tokens":48,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691","cbf7fca722f0af38adcaceb1b7ffa0c70454d6a7cffe42605e278b4e096eb168","4d4d615e6fa07a99264f288898152a1c1f0be17da909666cb5a6cebff68fbeb8"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_102","request_tokens":31,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[6,12,20,22,24,28,32,36,40,42,44,52,56,58,60,62,64],"num_kv_heads":2,"id":0},{"kind":"full","block_size":4,"cached":[4,10,12,18,22,24,26,30,32,34,38,40,42,50,56],"num_kv_heads":1,"id":1},{"kind":"mamba","block_size":4,"cached":[14,18,20,22,26,28,32,38,40,46,48,50,52,54,56,64],"id":2},{"kind":"mamba","block_size":8,"cached":[2,4,10,12,14,36,44,48,50,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_103","request_tokens":51,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[12,16,20,32,40,44,52,60,64],"window":5,"id":0},{"kind":"mamba","block_size":4,"cached":[8,14,16,18,24,26,30,32,38,50,52,54,58,60,62,64],"id":1},{"kind":"mamba","block_size":2,"cached":[6,10,12,20,22,24,28,34,40,46,50,52,58,62],"id":2},{"kind":"full","block_size":8,"cached":[6,8,10,14,26,28,30,36,40,46,48,50,52,56,60],"num_kv_heads":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92"],"shared_prefix_boundary":8,"lookup_groups":[[3],[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_104","request_tokens":45,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[4,14,24,26,30,36,40,48,50,60,62,64],"id":0},{"kind":"mamba","block_size":2,"cached":[6,14,16,20,30,34,38,40,44,64],"id":1},{"kind":"full","block_size":8,"cached":[2,4,6,12,16,18,20,26,30,34,36,38,44,46,48,54,60,62,64],"num_kv_heads":2,"id":2},{"kind":"mamba","block_size":4,"cached":[2,4,6,8,16,20,24,28,32,36,40,44,46,48,56,58,60,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6"],"shared_prefix_boundary":6,"lookup_groups":[[2],[0,1],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_105","request_tokens":14,"hash_unit":2,"groups":[{"kind":"mamba","block_size":2,"cached":[4,10,16,20,24,26,28,30,32,44,48,52,56,64],"id":0},{"kind":"swa","block_size":8,"cached":[16,32,40],"window":17,"id":1},{"kind":"mamba","block_size":8,"cached":[14,18,20,26,28,30,36,42,48,50,56,62,64],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_106","request_tokens":37,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[12,16,20,32,48,52],"num_kv_heads":2,"id":0},{"kind":"full","block_size":2,"cached":[2,4,8,10,20,22,30,32,34,36,40,44,46,48,58,62],"num_kv_heads":1,"id":1},{"kind":"swa","block_size":2,"cached":[4,12,14,16,22,24,30,40,44,48,50,56,64],"window":17,"id":2},{"kind":"mamba","block_size":2,"cached":[4,10,14,16,24,28,30,34,38,44,48,56,60,62],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_107","request_tokens":26,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[2,4,16,22,24,28,34,40,42,44,48,50,54,56,58,60,62],"id":0},{"kind":"mamba","block_size":2,"cached":[6,8,10,12,14,18,24,38,40,42,50,52,54,58],"id":1}],"hash_block_size":2,"expected_hit_tokens":24,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_108","request_tokens":20,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[2,4,6,8,10,24,26,28,32,34,38,44,48,52,54,58,60],"num_kv_heads":2,"id":0},{"kind":"full","block_size":4,"cached":[4,18,20,26,34,36,40,46,56],"num_kv_heads":2,"id":1},{"kind":"mamba","block_size":4,"cached":[8,30,32,34,40,46,50,54,64],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc"],"shared_prefix_boundary":10,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_109","request_tokens":61,"hash_unit":8,"groups":[{"kind":"mamba","block_size":8,"cached":[16,24,32,56],"id":0}],"hash_block_size":8,"expected_hit_tokens":56,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d760e0bccd65e846a7c1b8883a8cb8623abb5b7f38e43ba195a3e2d2823e61cf","f6b075eeb7f4f38758e5ab3f02841af9175f85f3b54867a9d50dcf6fc54f5972","2b80293b28fe553bfb295b11824f6b644410050499e3a9361f5f6248888ea88b","f9adab8b04f05701505a544b82af499c8e6c9bc104799a18f7bb91cb98764691","cbf7fca722f0af38adcaceb1b7ffa0c70454d6a7cffe42605e278b4e096eb168","4d4d615e6fa07a99264f288898152a1c1f0be17da909666cb5a6cebff68fbeb8","42ef76cddf654368f14661c018580d32791ae8fba354871ea191d32a7b155da4"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_110","request_tokens":34,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[6,10,14,18,24,38,60,62,64],"num_kv_heads":1,"id":0},{"kind":"full","block_size":4,"cached":[4,8,10,14,16,18,28,30,34,36,40,42,44,46,50,54,58,62],"num_kv_heads":2,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_111","request_tokens":17,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[6,14,24,30,34,38,44,46,48,58,62,64],"num_kv_heads":1,"id":0},{"kind":"mamba","block_size":8,"cached":[4,6,8,10,12,16,18,22,26,28,34,38,40,42,44,46,52,58,62,64],"id":1},{"kind":"full","block_size":8,"cached":[12,16,26,28,30,32,34,36,38,40,42,48,50,52,54,56,64],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[0],[2],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_112","request_tokens":5,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[8,24,48,64],"window":9,"id":0},{"kind":"swa","block_size":2,"cached":[4,8,20,24,32,34,46,48,52,58,60,62,64],"window":9,"id":1}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_113","request_tokens":58,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[4,8,12,28,32,36,44,52,56,64],"id":0}],"hash_block_size":4,"expected_hit_tokens":56,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311","5c08b2c1db45e3d681b23104f587f0e27f53b77e266ad2284c09a61a6fcaffe8","d8f28a87659d25d578880a1033ccb4f917645df3c06946a746415e06451eb107","d916dc2f4e07d4672d0e686ff0bb43a495663e996ad998ebcf98ccc2d3b7225f","0104e901540cfa3f5d7ed26e410505546aab4a6871fa45ef63aafb7cfd305956","06d8ef619df21f90575db42dfcf041b9a9a9fd16e011deff192f869ab3a274d1","341c17cf06cee09d1011898aedd917e82d1c7ee3b46e5802bd55567e057e0fca"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_114","request_tokens":21,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[8,16,20,24,32,44,48,52,64],"window":3,"id":0},{"kind":"full","block_size":4,"cached":[4,8,10,16,18,20,24,30,34,36,40,42,50,58,64],"num_kv_heads":1,"id":1}],"hash_block_size":2,"expected_hit_tokens":8,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc"],"shared_prefix_boundary":0,"lookup_groups":[[1],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_115","request_tokens":16,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[16,18,20,24,26,34,38,40,44,50,54,64],"window":9,"id":0},{"kind":"full","block_size":2,"cached":[2,4,8,12,14,16,26,30,36,38,42,52,60,64],"num_kv_heads":2,"id":1},{"kind":"full","block_size":8,"cached":[4,6,10,18,26,30,40,42,44,50,58,64],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[1],[2],[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_116","request_tokens":10,"hash_unit":4,"groups":[{"kind":"mamba","block_size":4,"cached":[4,8,16,20,36,44,48,52,60],"id":0}],"hash_block_size":4,"expected_hit_tokens":8,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_117","request_tokens":21,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[4,8,10,20,22,24,26,28,34,36,38,44,48,50,52,54,56,58,60,64],"id":0},{"kind":"swa","block_size":8,"cached":[8,16,24,32,64],"window":3,"id":1},{"kind":"swa","block_size":2,"cached":[2,4,10,12,14,16,20,28,32,34,38,40,44,46,48,50,52,56,58,60],"window":1,"id":2},{"kind":"mamba","block_size":4,"cached":[2,4,6,8,10,20,22,32,36,38,42,46,54,64],"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc"],"shared_prefix_boundary":8,"lookup_groups":[[0],[1],[2],[3]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_118","request_tokens":15,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[2,4,6,12,14,18,22,26,30,32,36,40,44,48,58,60,62,64],"num_kv_heads":2,"id":0},{"kind":"mamba","block_size":2,"cached":[2,4,6,10,16,18,22,28,32,34,38,40,46,52,54,60,62],"id":1},{"kind":"mamba","block_size":8,"cached":[6,8,10,12,14,16,18,20,24,28,32,38,42,46,48,52,56,62],"id":2}],"hash_block_size":2,"expected_hit_tokens":6,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_119","request_tokens":56,"hash_unit":2,"groups":[{"kind":"swa","block_size":2,"cached":[12,14,16,18,20,24,26,28,32,34,38,42,48,50,54,58,60,64],"window":3,"id":0}],"hash_block_size":2,"expected_hit_tokens":54,"alignment_tokens":2,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":2,"profile_reachability":"native_resolver_and_factory"},{"name":"random_120","request_tokens":41,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[4,6,10,12,14,18,20,24,28,30,32,36,38,44,46,48,52,58,60,64],"id":0},{"kind":"swa","block_size":2,"cached":[2,6,14,20,26,28,32,38,42,44,50,52,54,64],"window":1,"id":1},{"kind":"full","block_size":4,"cached":[2,8,24,30,34,36,38,40,46,48,50,52,54,56,60],"num_kv_heads":1,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94"],"shared_prefix_boundary":2,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_121","request_tokens":3,"hash_unit":2,"groups":[{"kind":"swa","block_size":4,"cached":[4,24,36,40,44,56],"window":5,"id":0},{"kind":"swa","block_size":8,"cached":[8,24,32,40,48],"window":9,"id":1},{"kind":"mamba","block_size":2,"cached":[6,8,12,14,16,20,26,30,36,44,46,48,52,56,60,64],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_122","request_tokens":19,"hash_unit":2,"groups":[{"kind":"mamba","block_size":4,"cached":[2,4,10,16,26,28,32,34,36,40,42,50,64],"id":0},{"kind":"mamba","block_size":8,"cached":[6,8,12,14,20,26,28,30,34,48,50,52,54,58,62],"id":1},{"kind":"full","block_size":8,"cached":[4,8,10,12,20,32,34,38,46,48,50,56,58,62,64],"num_kv_heads":2,"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9"],"shared_prefix_boundary":12,"lookup_groups":[[2],[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_123","request_tokens":41,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[6,8,12,20,24,28,32,34,40,42,46,50,52,60],"num_kv_heads":1,"id":0},{"kind":"full","block_size":4,"cached":[4,6,10,14,18,22,26,42,52],"num_kv_heads":2,"id":1},{"kind":"mamba","block_size":2,"cached":[6,8,12,24,26,28,30,38,48,52,54,56,58,62],"id":2}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_124","request_tokens":58,"hash_unit":2,"groups":[{"kind":"full","block_size":2,"cached":[2,6,10,16,20,22,24,26,28,30,42,46,48,50,52,58,60,62,64],"num_kv_heads":1,"id":0},{"kind":"swa","block_size":4,"cached":[16,32,36,48,60,64],"window":1,"id":1},{"kind":"swa","block_size":2,"cached":[8,10,18,22,28,32,34,36,38,46,50,54,60],"window":5,"id":2},{"kind":"full","block_size":4,"cached":[2,4,6,14,18,20,28,36,40,44,52],"num_kv_heads":2,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4","68cd7d3bc741827cca9cf6eab0363dacc9033ee1241e3ebf5ac1e03761e20f10","1d68dd832ab97cfe696554250f08a93a626c136db68281ce94834bc3649ddc92","9d4f2b86ad992a6ac7e450e00e6f5ac612ca982840a2b98ffc89ae8299f0b97f","6b26664ff78439e502e3ab39f39aae1ebf070be355f170575576f1582b3ed228","6431af56a24cdf67688f181585a0b27bb45914a539b885a557f016bd34b48d42","aa1cbac65d03db0a8f24410b1601c8a1a82edd30c536670137d858eb3abe1289"],"shared_prefix_boundary":0,"lookup_groups":[[0],[3],[1],[2]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_125","request_tokens":22,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[4,8,16,20,24,44,60,64],"num_kv_heads":2,"id":0}],"hash_block_size":4,"expected_hit_tokens":8,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"},{"name":"random_126","request_tokens":47,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[2,8,12,16,18,22,26,36,38,42,44,48,56,60],"id":0},{"kind":"swa","block_size":4,"cached":[4,24,44],"window":9,"id":1},{"kind":"mamba","block_size":8,"cached":[2,6,10,12,14,18,20,22,24,30,32,38,40,44,46,52,54,62,64],"id":2},{"kind":"full","block_size":2,"cached":[2,4,8,14,16,24,26,28,32,34,36,44,48,62],"num_kv_heads":1,"id":3}],"hash_block_size":2,"expected_hit_tokens":0,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b","5d88eaa22a3d2dd488484f6c16ea7fa6853f3f11e86a135a69bec281daba92a9","ba0ad6c0913e5bc94cbdcf4f9877d8cbd94a57e606e1502efe27479ebf2986bc","6d4a139f3297d5c78f81e3d73aa21e1682751603f2252716e0e69ba4a4955d98","8d725f89244a3b30025f075deb8363f1701e6874b7854e229b21e4c21c146dc7","1043bb1cd2cc83696a4dff90d6e02c47fbe0c595141854a22ca0658cdc90a027","369433f5128c3f1d5b7c12f1f841e9e628e6616ae2a3c9fe25f850c4799d27ee","3b23e97d9d25b2afbb415ca229a2952662a3a9999c391705275234aad7bfd218","74ccf46660d7f9b655ddcfcd57e5996515b81210ba06ac6b4c32d4db18a0e0f0","7e1b4590c79767117b038f191f09f6ba37534caf8997fdc1f16b1ca314723429","910b91d6330de9ea4407d1982e71e12b3bf1516e5745ca3f47eb1c68a486944b","87846b487d9ad4db7587c01112de2f657c14001bd58b240508e769761dc23dce","0eb40d27a7faa6f4608b9cf95037167bac340118eebe38beac8e9ed1728aeb94","8d32ff7ea3506725b9065f9d4c99b58651eb870d50457a1df34d62e612556372","233c521499fc58384aecc28cdecd67e67deda820c928b085e16b6229e21d9be6","eb7ec9bdc3b493975e2ab36fbbd3c886708f6966ea7c61ebd04354275c589df4"],"shared_prefix_boundary":0,"lookup_groups":[[3],[0,2],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"native_resolver_and_factory"},{"name":"random_127","request_tokens":33,"hash_unit":4,"groups":[{"kind":"full","block_size":4,"cached":[12,20,24,28,32,40,44,48,56,64],"num_kv_heads":1,"id":0}],"hash_block_size":4,"expected_hit_tokens":0,"alignment_tokens":4,"partial_hash_hits":false,"request_hashes":["58d0879dff3800f65f8c5fd449d73048c0f7699dd238a03b84b146b151d55111","e1bc29393a2da9fd798f35ff04d215f846aee6df4b803ce3d43b57df56b58fb1","321cf73a943519e37f9c8afa804132a5b9076e22b40b2d5fe6f7a2886960a68a","01dc4cca389391f8af911f65044fcfa1ab6371852fdf6b81dd13503db99baf5a","b9f465d27f7917a65fb5af05afab4ba1a06c8208c6ed5cc1a9a8d1716fb1c0a4","ce8b6bc79451ecbbd2c05af6e1f3c2d3e3f9fc9caedd982effaa207cebf2a9f9","76aa6a8694f8730d47a474bc94f2ee980813fd06dfb0335623c9f4e06cc693a8","64153719eebdecb0908d2a77a59ac3c652acdf4ee0d7b4b44c61f0fe41119311"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"UnitaryKVCacheCoordinator","scheduler_block_size":4,"profile_reachability":"native_resolver_and_factory"}],"lifecycle":[{"name":"partial_create","events":[{"type":"BlockStored","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"group":0,"token_ids":[1,2],"parent_hash":null,"block_size":2}],"entries":{"d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a030400000000":1}},{"name":"repeat_same_alias_no_store","events":[],"entries":{"d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a030400000000":1}},{"name":"second_physical_copy","events":[{"type":"BlockStored","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"group":0,"token_ids":[1,2],"parent_hash":null,"block_size":2}],"entries":{"d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a030400000000":2}},{"name":"one_remove_preserves_copy","events":[{"type":"BlockRemoved","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"group":0}],"entries":{"d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a030400000000":1}},{"name":"longer_partial_replaces_old","events":[{"type":"BlockRemoved","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"group":0},{"type":"BlockStored","hashes":["042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc"],"group":0,"token_ids":[5,6],"parent_hash":"9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","block_size":2}],"entries":{"042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc00000000":1}},{"name":"cow_moves_without_events","events":[],"entries":{"042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc00000000":1}},{"name":"shorter_alias_on_longer_block","events":[{"type":"BlockStored","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"group":0,"token_ids":[1,2],"parent_hash":null,"block_size":2}],"entries":{"042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc00000000":1,"d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a030400000000":1}},{"name":"promote_removes_all_aliases","events":[{"type":"BlockRemoved","hashes":["042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc"],"group":0},{"type":"BlockRemoved","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304"],"group":0},{"type":"BlockStored","hashes":["f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5"],"group":0,"token_ids":[1,2,3,4,5,6,7,8],"parent_hash":null,"block_size":8}],"entries":{"f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a500000000":1}},{"name":"final_remove","events":[{"type":"BlockRemoved","hashes":["f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5"],"group":0}],"entries":{}},{"name":"sparse_leading_and_interior_holes","events":[{"type":"BlockStored","hashes":["9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0"],"group":1,"token_ids":[1,2,3,4,5,6,7,8,9,10,11,12],"parent_hash":null,"block_size":2}],"entries":{"9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f4028600000001":1,"f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a500000001":1,"f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac22400000001":1,"d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e000000001":1}},{"name":"full_report_invents_missing_sparse_prefix","events":[{"type":"BlockStored","hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0"],"group":1,"token_ids":[1,2,3,4,5,6,7,8,9,10,11,12],"parent_hash":null,"block_size":2}],"entries":{"9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f4028600000001":1,"f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a500000001":1,"f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac22400000001":1,"d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e000000001":1}}],"white_box_fixtures":[{"name":"unreachable_single_full_finer_hash","request_tokens":15,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,12],"id":0}],"white_box":true,"hash_block_size":2,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"white_box"},{"name":"unreachable_single_swa_finer_hash","request_tokens":15,"hash_unit":2,"groups":[{"kind":"swa","block_size":8,"cached":[8,12],"window":9,"id":0}],"white_box":true,"hash_block_size":2,"expected_hit_tokens":8,"alignment_tokens":8,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"white_box"},{"name":"unreachable_single_mamba_finer_hash","request_tokens":15,"hash_unit":2,"groups":[{"kind":"mamba","block_size":8,"cached":[8,12],"id":0}],"white_box":true,"hash_block_size":2,"expected_hit_tokens":12,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":8,"profile_reachability":"white_box"}],"configuration_boundaries":[{"name":"single_group_ignores_finer_override","rejected":false,"scheduler_block_size":8,"hash_block_size":8},{"name":"scheduler_includes_noncacheable","rejected":false,"scheduler_block_size":12,"hash_block_size":2},{"name":"noncacheable_omitted_from_hash_divisibility","rejected":false,"scheduler_block_size":24,"hash_block_size":4},{"name":"compressed_mamba_partial_alignment_rejected","rejected":true,"reason":"Invalid prefix_match_unit=2; prefix-cache boundaries must align with each spec's per-state compression. Got alignments=[4]."},{"name":"compressed_alignment_valid","rejected":false,"scheduler_block_size":8,"hash_block_size":4},{"name":"mamba_nonalign_forces_scheduler_hash","rejected":false,"scheduler_block_size":8,"hash_block_size":8},{"name":"hash_unit_divisibility_rejected","rejected":true,"reason":"Invalid prefix_match_unit=3; prefix-cacheable KV cache group block sizes must be divisible by prefix_match_unit. Got group block sizes=[4, 8], prefix-cacheable=[4, 8]."}],"hash_vectors":[{"token_ids":[0],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"493f37dcda994a276ed9f9f27341b870a0da995cb22a36dc0e43fbf55d0cd662","next_hash":"94d5174a883cd7cd03c88d586df47643ce4b36a956a1a950cf15d31d960f5af9"},{"token_ids":[23],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"dc77ababe65561a6c0288c7374a0f19ddd6a872c50d4a8a89056cb66933a3fa7","next_hash":"ffbd8d132df4b97b83bde7a90a1240cec24d5cb212b74449fe9d4b6f4c6c6db9"},{"token_ids":[24],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"0b931c79fe7c6729b94d763995a2a4e9b2b264e0064e1e19d998811e3187f17a","next_hash":"981e5763209683585ef63414b6ede9bfcd1f1a092bacbe1afb2ec7625467b057"},{"token_ids":[255],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"aaf641a7b375899586d2cdbe146d37ba4be80607d4ba1cfc54102bc06b20fb95","next_hash":"edbe809697519439fa63a22870050250b929da52b723d6c0a74ed2092ddf3246"},{"token_ids":[256],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"8f69281f22f004b8890430fe70c2747a55fe41b38fe848b648b3f9bd6ab47a3f","next_hash":"ad2d23bc5069e69ad791c23caab0718d4e50bcfc5421eef56be5a9af0f687e7e"},{"token_ids":[65535],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"64a75a03eeaa8e6110b7f50d927394de85d629a183f5028c473cb94317668e6e","next_hash":"3752c5b8beae484f859730ec25ccc8abbfcd54fd320c27a507e9ed54ec061474"},{"token_ids":[65536],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"4d42d7c1f5ff4ddefdef22bee86c0290160c23e7ec56359efc218679210b3119","next_hash":"cfcb9d260d4fd07fe582a07bf7f2ba8d9947549df1ccac3bddb183252d5c8ce2"},{"token_ids":[4294967295],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"defd6d435d77afed3e7461cf91535ffda30716c940298b8e7761cdab92f63685","next_hash":"52cad9e105f6a10eebc4aabc8df6ab6a6be7116bfabcfa46c94565e6fa3090f3"},{"token_ids":[0,23,24,255,256,65535,65536,4294967295],"parent_hash":"9bd96a485ad84efdafb72ee48a1d7a69bcead0f8f0433173941b276b9581eef0","hash":"deaa46fcabbf6b126d28ad1292550fb894177c76c7b8e270e04824cbf674d83f","next_hash":"a791027f84966e677072e3b7111313914d47507d346b80c33504d32b14ec4441"}],"boundary_lookup_fixtures":[{"name":"noncacheable_group_changes_scheduler_alignment","request_tokens":17,"hash_unit":2,"groups":[{"kind":"full","block_size":4,"cached":[4,8,12,16],"id":0},{"kind":"noncacheable","block_size":6,"cached":[],"id":1}],"hash_block_size":2,"expected_hit_tokens":12,"alignment_tokens":12,"partial_hash_hits":false,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0","a77061835d4d4de75435a6fa0c202910a1d44a2716e7cec6942e7392a9c1491b"],"shared_prefix_boundary":0,"lookup_groups":[[0]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":12,"profile_reachability":"native_resolver_and_factory"},{"name":"partial_alignment_ignores_noncacheable_divisibility","request_tokens":15,"hash_unit":2,"groups":[{"kind":"full","block_size":8,"cached":[8,14],"id":0},{"kind":"mamba","block_size":8,"cached":[14],"id":1},{"kind":"noncacheable","block_size":6,"cached":[],"id":2}],"hash_block_size":2,"expected_hit_tokens":14,"alignment_tokens":2,"partial_hash_hits":true,"request_hashes":["d448b117d4cbfc4c3f313a1e0494645014cb9c9b678618457bf09471121a0304","9ddf6cae9c4b53339646052ea592dabccb20f38eb4bb35a61b5caad749f40286","042265058f9eee7a697445f3807f8bcddbfdf905e8de22dd5b09d78a49dfdbfc","f9e81ce6df9cb0d1584cf01cb61353d592f9a86142deeb1597dbae99671c18a5","f1867b56bd355b14e70f888d9f2d8db48afa474a523367f1e396a2ea123ac224","d9b86a65c84357e07915cc5a66da48220da26399205a6509622649563c4f06e0","3568f1c8173b5e207f8f9da6fb5848d7f2af6205042f736b4c3f733f498e73a0"],"shared_prefix_boundary":0,"lookup_groups":[[0],[1]],"coordinator":"HybridKVCacheCoordinator","scheduler_block_size":24,"profile_reachability":"native_resolver_and_factory"}]} diff --git a/crates/mock_worker/src/engine.rs b/crates/mock_worker/src/engine.rs index 9da7cd2040..25f43c5c9f 100644 --- a/crates/mock_worker/src/engine.rs +++ b/crates/mock_worker/src/engine.rs @@ -593,6 +593,7 @@ impl SchedulerState { timestamp: 0.0, events: kv, dp_rank: Some(0), + ..Default::default() }) }; diff --git a/grpc_servicer/README.md b/grpc_servicer/README.md index 3f7f1c8838..dea43636e0 100644 --- a/grpc_servicer/README.md +++ b/grpc_servicer/README.md @@ -36,6 +36,8 @@ pip install smg-grpc-servicer[sglang] vllm serve meta-llama/Llama-2-7b-hf --grpc ``` +For the pinned, group-aware cache-event contract, see [Group-aware vLLM KV events](docs/vllm-group-events.md). + ### MLX ```bash diff --git a/grpc_servicer/docs/images/kv-cache-groups.png b/grpc_servicer/docs/images/kv-cache-groups.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2f0893d31f1993526e0ab4a0032782a2315097 GIT binary patch literal 499505 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 R7UNr|F`x$z=%HoW@)-V}X;VR%8J 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