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
c7ad78f3
Unverified
Commit
c7ad78f3
authored
Dec 10, 2025
by
Yan Ru Pei
Committed by
GitHub
Dec 10, 2025
Browse files
feat: non blocking radix snapshot upload (#4839)
Signed-off-by:
PeaBrane
<
yanrpei@gmail.com
>
parent
fe10dbfd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
17 deletions
+22
-17
lib/llm/src/kv_router/subscriber.rs
lib/llm/src/kv_router/subscriber.rs
+22
-17
No files found.
lib/llm/src/kv_router/subscriber.rs
View file @
c7ad78f3
...
@@ -187,24 +187,29 @@ impl SnapshotResources {
...
@@ -187,24 +187,29 @@ impl SnapshotResources {
.await
.await
.map_err
(|
e
|
anyhow
::
anyhow!
(
"Failed to receive dump response: {e:?}"
))
?
;
.map_err
(|
e
|
anyhow
::
anyhow!
(
"Failed to receive dump response: {e:?}"
))
?
;
// Upload the snapshot to NATS object store
// Upload the snapshot to NATS object store in background (non-blocking)
let
url
=
url
::
Url
::
parse
(
&
format!
(
let
nats_client
=
self
.nats_client
.clone
();
"nats://{}/{}/{RADIX_STATE_FILE}"
,
let
bucket_name
=
self
.bucket_name
.clone
();
self
.nats_client
.addr
(),
let
event_count
=
events
.len
();
self
.bucket_name
tokio
::
spawn
(
async
move
{
))
?
;
let
Ok
(
url
)
=
url
::
Url
::
parse
(
&
format!
(
"nats://{}/{bucket_name}/{RADIX_STATE_FILE}"
,
self
.nats_client
nats_client
.addr
(),
.object_store_upload_data
(
&
events
,
&
url
)
))
else
{
.await
tracing
::
warn!
(
"Failed to parse snapshot URL"
);
.map_err
(|
e
|
anyhow
::
anyhow!
(
"Failed to upload snapshot: {e:?}"
))
?
;
return
;
};
if
let
Err
(
e
)
=
nats_client
.object_store_upload_data
(
&
events
,
&
url
)
.await
{
tracing
::
warn!
(
"Failed to upload snapshot: {e:?}"
);
return
;
}
tracing
::
info!
(
tracing
::
info!
(
"Successfully performed snapshot of radix tree with {} events to bucket {} in {}ms"
,
"Successfully uploaded snapshot with {event_count} events to bucket {bucket_name} in {}ms"
,
events
.len
(),
start_time
.elapsed
()
.as_millis
()
self
.bucket_name
,
);
start_time
.elapsed
()
.as_millis
()
});
);
Ok
(())
Ok
(())
}
}
...
...
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