Skip to content

[#2510] improvement(common): group nearby local-order blocks into fewer RPCs - #2785

Open
sliortega295-ops wants to merge 1 commit into
apache:masterfrom
sliortega295-ops:fix/2510-group-small-segments
Open

[#2510] improvement(common): group nearby local-order blocks into fewer RPCs#2785
sliortega295-ops wants to merge 1 commit into
apache:masterfrom
sliortega295-ops:fix/2510-group-small-segments

Conversation

@sliortega295-ops

Copy link
Copy Markdown

What changes were proposed in this pull request?

Allow the local-order segment splitter to keep small filtered gaps inside one contiguous shuffle-data read. Buffer-segment offsets now describe the expected blocks' positions inside that complete span, while storage boundaries and the configured read-buffer limit still split requests.

The fixed-size splitter keeps its existing contiguous-block behavior. Tests cover grouped gaps, exact and over-limit boundaries, trailing filtered blocks, storage changes, and the neighboring fixed-size path.

Why are the changes needed?

The previous implementation ended a segment at every filtered block. Workloads that select interleaved task attempts therefore issued many small local-data RPCs even when one bounded contiguous read could cover the same expected blocks. Grouping nearby blocks reduces request count while preserving the block metadata needed to ignore gap bytes.

Fixes #2510.

Does this PR introduce any user-facing change?

No public API or configuration change. Local-order shuffle reads may issue fewer, larger bounded requests.

How was this patch tested?

  • LocalOrderSegmentSplitterTest: 14 passed
  • LocalOrderSegmentSplitterTest and FixedSizeSegmentSplitterTest: 19 passed
  • Maven JaCoCo analysis completed for 230 classes
  • spotless:check and checkstyle:check: passed with zero violations
  • clean Java 8 compilation produced class-file major version 52
  • git diff --check: passed

The focused CPU tests demonstrate that expected blocks separated by small filtered gaps are served by one bounded read instead of separate requests. No GPU was used or required.

AI disclosure

The implementation, tests, and this description were generated with OpenAI Codex at the account owner's request. Codex re-checked the final diff against repository code and ran the validations listed above. No separate human line-by-line code review was performed before submission.

…to fewer RPCs

Generated-by: OpenAI Codex (GPT-5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Group by the small segments on getting local shuffle data

1 participant