Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
dynamo
Commits
67c868e7
Unverified
Commit
67c868e7
authored
Jan 23, 2026
by
Yan Ru Pei
Committed by
GitHub
Jan 23, 2026
Browse files
chore: remove some clones in Indexer (#5612)
Signed-off-by:
PeaBrane
<
yanrpei@gmail.com
>
parent
d4fbf9d3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
4 deletions
+10
-4
lib/llm/src/kv_router.rs
lib/llm/src/kv_router.rs
+2
-2
lib/llm/src/kv_router/indexer.rs
lib/llm/src/kv_router/indexer.rs
+8
-2
No files found.
lib/llm/src/kv_router.rs
View file @
67c868e7
...
@@ -498,7 +498,7 @@ impl KvRouter {
...
@@ -498,7 +498,7 @@ impl KvRouter {
let
isl_tokens
=
tokens
.len
();
let
isl_tokens
=
tokens
.len
();
let
block_hashes
=
compute_block_hash_for_seq
(
tokens
,
self
.block_size
,
None
);
let
block_hashes
=
compute_block_hash_for_seq
(
tokens
,
self
.block_size
,
None
);
let
overlap_scores
=
self
.indexer
.find_matches
(
block_hashes
.clone
()
)
.await
?
;
let
overlap_scores
=
self
.indexer
.find_matches
(
block_hashes
)
.await
?
;
// Compute seq_hashes only if scheduler needs it for active blocks tracking
// Compute seq_hashes only if scheduler needs it for active blocks tracking
let
maybe_seq_hashes
=
self
let
maybe_seq_hashes
=
self
...
@@ -596,7 +596,7 @@ impl KvRouter {
...
@@ -596,7 +596,7 @@ impl KvRouter {
pub
async
fn
get_potential_loads
(
&
self
,
tokens
:
&
[
u32
])
->
Result
<
Vec
<
PotentialLoad
>>
{
pub
async
fn
get_potential_loads
(
&
self
,
tokens
:
&
[
u32
])
->
Result
<
Vec
<
PotentialLoad
>>
{
let
isl_tokens
=
tokens
.len
();
let
isl_tokens
=
tokens
.len
();
let
block_hashes
=
compute_block_hash_for_seq
(
tokens
,
self
.block_size
,
None
);
let
block_hashes
=
compute_block_hash_for_seq
(
tokens
,
self
.block_size
,
None
);
let
overlap_scores
=
self
.indexer
.find_matches
(
block_hashes
.clone
()
)
.await
?
;
let
overlap_scores
=
self
.indexer
.find_matches
(
block_hashes
)
.await
?
;
let
maybe_seq_hashes
=
self
let
maybe_seq_hashes
=
self
.kv_router_config
.kv_router_config
...
...
lib/llm/src/kv_router/indexer.rs
View file @
67c868e7
...
@@ -979,13 +979,16 @@ impl KvIndexer {
...
@@ -979,13 +979,16 @@ impl KvIndexer {
Some
(
event
)
=
event_rx
.recv
()
=>
{
Some
(
event
)
=
event_rx
.recv
()
=>
{
let
event_type
=
KvIndexerMetrics
::
get_event_type
(
&
event
.event.data
);
let
event_type
=
KvIndexerMetrics
::
get_event_type
(
&
event
.event.data
);
let
result
=
trie
.apply_event
(
event
.clone
());
// Only clone if we need the event for prune_manager afterward
let
event_for_prune
=
prune_manager
.is_some
()
.then
(||
event
.clone
());
let
result
=
trie
.apply_event
(
event
);
let
result_is_ok
=
result
.is_ok
();
let
result_is_ok
=
result
.is_ok
();
metrics
.increment_event_applied
(
event_type
,
result
);
metrics
.increment_event_applied
(
event_type
,
result
);
// Track blocks in PruneManager if TTL is enabled and event was stored successfully
// Track blocks in PruneManager if TTL is enabled and event was stored successfully
let
Some
(
ref
mut
pm
)
=
prune_manager
else
{
continue
};
let
Some
(
ref
mut
pm
)
=
prune_manager
else
{
continue
};
if
!
result_is_ok
{
continue
};
if
!
result_is_ok
{
continue
};
let
Some
(
ref
event
)
=
event_for_prune
else
{
continue
};
let
KvCacheEventData
::
Stored
(
ref
store_data
)
=
event
.event.data
else
{
continue
};
let
KvCacheEventData
::
Stored
(
ref
store_data
)
=
event
.event.data
else
{
continue
};
let
worker
=
WorkerWithDpRank
::
new
(
event
.worker_id
,
event
.event.dp_rank
);
let
worker
=
WorkerWithDpRank
::
new
(
event
.worker_id
,
event
.event.dp_rank
);
...
@@ -1707,13 +1710,16 @@ impl KvIndexerSharded {
...
@@ -1707,13 +1710,16 @@ impl KvIndexerSharded {
Some
(
event
)
=
shard_event_rx
.recv
()
=>
{
Some
(
event
)
=
shard_event_rx
.recv
()
=>
{
let
event_type
=
KvIndexerMetrics
::
get_event_type
(
&
event
.event.data
);
let
event_type
=
KvIndexerMetrics
::
get_event_type
(
&
event
.event.data
);
let
result
=
trie
.apply_event
(
event
.clone
());
// Only clone if we need the event for prune_manager afterward
let
event_for_prune
=
prune_manager
.is_some
()
.then
(||
event
.clone
());
let
result
=
trie
.apply_event
(
event
);
let
result_is_ok
=
result
.is_ok
();
let
result_is_ok
=
result
.is_ok
();
metrics
.increment_event_applied
(
event_type
,
result
);
metrics
.increment_event_applied
(
event_type
,
result
);
// Track blocks in PruneManager if TTL is enabled and event was stored successfully
// Track blocks in PruneManager if TTL is enabled and event was stored successfully
let
Some
(
ref
mut
pm
)
=
prune_manager
else
{
continue
};
let
Some
(
ref
mut
pm
)
=
prune_manager
else
{
continue
};
if
!
result_is_ok
{
continue
};
if
!
result_is_ok
{
continue
};
let
Some
(
ref
event
)
=
event_for_prune
else
{
continue
};
let
KvCacheEventData
::
Stored
(
ref
store_data
)
=
event
.event.data
else
{
continue
};
let
KvCacheEventData
::
Stored
(
ref
store_data
)
=
event
.event.data
else
{
continue
};
let
worker
=
WorkerWithDpRank
::
new
(
event
.worker_id
,
event
.event.dp_rank
);
let
worker
=
WorkerWithDpRank
::
new
(
event
.worker_id
,
event
.event.dp_rank
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment