[core] Split chain table batch scans by key range for read parallelism.#8831
Open
Stephen0421 wants to merge 1 commit into
Open
[core] Split chain table batch scans by key range for read parallelism.#8831Stephen0421 wants to merge 1 commit into
Stephen0421 wants to merge 1 commit into
Conversation
Stephen0421
force-pushed
the
chain-table-key-range-split
branch
from
July 23, 2026 11:17
41bf23d to
aad7514
Compare
Contributor
|
After adding |
Add chain-table.split.key-range-enabled to split snapshot and delta files into multiple splits per bucket while keeping overlapping key ranges together.
Stephen0421
force-pushed
the
chain-table-key-range-split
branch
from
July 23, 2026 13:08
aad7514 to
e29dc37
Compare
Contributor
Author
OK, fix it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Chain table batch reads currently produce one split per bucket, which limits read parallelism for large buckets. This PR adds key-range split generation for chain table batch scans:
chain-table.split.key-range-enabled(default:true); set tofalseto fall back to one split per bucketIntervalPartition+BinPackingto split snapshot and delta files by key range; files with overlapping key ranges always stay in the same split so all versions of a key across branches are merged correctlyTests
ChainTableUtilsTest.testBuildChainSplitsWithKeyRangeSplitting: verifies key-disjoint sections are split into separate splits and overlapping snapshot/delta files are kept togetherChainTableUtilsTest.testBuildChainSplitsKeyRangeSplittingLargeTargetKeepsOneSplit: verifies a largetargetSplitSizepacks all sections into a single splitChainTableUtilsTest.testBuildChainSplitsWithoutKeyRangeSplitting: verifies a nullkeyComparatorpreserves the original one-split-per-bucket behavior