Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix tiered compaction k-merge bug and use in-memory alternative (#7661)
This PR does two things: First, it fixes a bug with tiered compaction's k-merge implementation. It ignored the lsn of a key during ordering, so multiple updates of the same key could be read in arbitrary order, say from different layers. For example there is layers `[(a, 2),(b, 3)]` and `[(a, 1),(c, 2)]` in the heap, they might return `(a,2)` and `(a,1)`. Ultimately, this change wasn't enough to fix the ordering issues in #7296, in other words there is likely still bugs in the k-merge. So as the second thing, we switch away from the k-merge to an in-memory based one, similar to #4839, but leave the code around to be improved and maybe switched to later on. Part of #7296
- Loading branch information
Showing
2 changed files
with
34 additions
and
5 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
41fb838
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
3105 tests run: 2959 passed, 0 failed, 146 skipped (full report)
Flaky tests (2)
Postgres 16
test_gc_aggressive
: debugPostgres 14
test_partial_evict_tenant[relative_spare]
: releaseCode coverage* (full report)
functions
:31.4% (6321 of 20132 functions)
lines
:47.3% (47632 of 100707 lines)
* collected from Rust tests only
41fb838 at 2024-05-09T15:25:42.825Z :recycle: