[HUDI-8940] Fix Bloom Index Partitioner to distribute keys uniformly across partitions #12741
+53
−25
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.
Change Logs
Bloom Index causes data skew when bucketized partitioning is used, during repartition and sorting stage when there are hollow buckets created. This happens when there are lot of writes to one partition and few writes to other partitions.
In this pr, we're partitioning based on the fileId + recordKey sort partitioner which distributes the keys equally while keeping same fileIds together.
Impact
Bloom Index can now use fileId and recordkey based partitioner to distribute the comparisons equally across partitions where bucketized partitioning is causing data skew.
Risk level (write none, low medium or high below)
Medium
Added Functional Tests
Documentation Update
Contributor's checklist