-
Notifications
You must be signed in to change notification settings - Fork 404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gRPC: download only specific time point or range #8877
Comments
Note that RPCs in the form of
are not supported by |
### Related * Prepares #8876. * Does not address the `time_log` aspect: #8877 ### What This implements `rerun://` (an alias for `rerun+https://`) and `rerun+http://`. Please test with: * `pixi run rerun rerun://redap.rerun.io/catalog` * `pixi run rerun rerun+https://redap.rerun.io/catalog` * and ideally with local Redap build `pixi run rerun rerun+http://localhost:51234/catalog` --------- Co-authored-by: jprochazk <[email protected]>
@jprochazk Can you elaborate please? What is not supported? Streaming parameters? Is there some issue or discussion you can link to? I guess your comment is about my proposed |
Issue in grpc-web: grpc/grpc-web#24 We talked about this briefly in Slack, and we can likely do something like
instead, to amortize protocol overhead. |
…gs (#9010) ### What Adding support for fetching chunks that belong to specific range of the recording. This consists of the 2 APIs calls: * fetching chunk ids for a given range * fetching chunks for the given chunk ids (which we might want to leverage separately in the future) As there is a limitation for the client side gRPC streaming on the web (see [here](#8877 (comment))), we've decided to send a batch of chunk ids to the server. To make the APIs somewhat symmetrical, the 1st API call will stream batches of chunk ids. Closes * #8877
…gs (#9010) ### What Adding support for fetching chunks that belong to specific range of the recording. This consists of the 2 APIs calls: * fetching chunk ids for a given range * fetching chunks for the given chunk ids (which we might want to leverage separately in the future) As there is a limitation for the client side gRPC streaming on the web (see [here](#8877 (comment))), we've decided to send a batch of chunk ids to the server. To make the APIs somewhat symmetrical, the 1st API call will stream batches of chunk ids. Closes * #8877
When looking at a recording, I want to be able to send a link to a colleague pointing them at a specific time point or time range (a point of interest). This should generate a
rerun://
link on a format similar to this:rerun://ip:port/store/ID?log_time=2025-01-31T02:55:20Z...2025-01-31T02:58:40Z
gRPC protocol
I suggest we implement this by doing a latest-at or range-query on the server to find all chunk IDs that the viewer would need to show the given time range, and return their IDs. A separate
rpc
call would be used to then fetch the chunks (rpc get_chunks(StoreId, stream ChunkId) -> stream Chunk
).There are two big advantages to this approach
rpc
calls to implement larger-than-RAM (on-demand streaming)The disadvantage is a potential waste of bandwidth (streaming parts of chunks that are outside the time range). This is mitigated by limiting the sizes of chunks during compaction.
Viewer
When opening such a URI, we also set the timeline and time cursor according to the query parameter. If it is a single time point, just use it.
If it is a range, use the start of the range, and set the loop-range to the query range, and enable looping. Also zoom the time panel so that the time range fills the width of the screen.
Related issues
The text was updated successfully, but these errors were encountered: