Skip to content

Conversation

@linev
Copy link
Member

@linev linev commented Nov 24, 2025

Analyze requested ranges and do following:

  1. Place them in increasing order
  2. Merge segments together if gap between them smaller than 128 bytes

This allows to reduce data traffic and avoids problem of different implementations on server side.
Some servers does such merging themselves. Or does resorting under the hoot.

There are many ROOT files where streamer info and main directory key situated together -
so one can read both of them now with single http request instead of multi-range ones.

In connected issue #372 this allows to reduce number of requests - while server does not support multirange requests at all.

Also this PR solves VERY OLD problem with tbits3 example, where unsorted segments in request leads to wrong reply from the server. In JSROOT special handling was implemented to abort such request and restart with single range requests. So now multi-range works properly and very fast for this old file.

@linev linev self-assigned this Nov 24, 2025
@linev linev merged commit 69d76be into dev Nov 24, 2025
24 checks passed
@linev linev deleted the check_http_reorder branch November 24, 2025 15:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants