Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(pageserver): repartition on L0-L1 boundary #10548

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

skyzh
Copy link
Member

@skyzh skyzh commented Jan 28, 2025

Problem

Reduce the read amplification when doing repartition.

Summary of changes

Compute the L0-L1 boundary LSN and do repartition here.

@skyzh skyzh requested a review from erikgrinaker January 28, 2025 19:49
@skyzh skyzh requested a review from a team as a code owner January 28, 2025 19:49
Copy link

github-actions bot commented Jan 28, 2025

7425 tests run: 7031 passed, 42 failed, 352 skipped (full report)


Failures on Postgres 17

Failures on Postgres 16

Failures on Postgres 15

Failures on Postgres 14

# Run all failed tests locally:
scripts/pytest -vv -n $(nproc) -k "test_issue_5878[release-pg14-default_generation] or test_issue_5878[release-pg14-default_generation] or test_issue_5878[release-pg14-same_generation] or test_issue_5878[release-pg14-same_generation] or test_scrubber_physical_gc_ancestors[release-pg14-2] or test_scrubber_physical_gc_ancestors[release-pg14-2] or test_scrubber_physical_gc_ancestors[release-pg14-None] or test_scrubber_physical_gc_ancestors[release-pg14-None] or test_sharding_compaction[release-pg15-4-32768-False] or test_sharding_compaction[release-pg15-4-32768-True] or test_issue_5878[release-pg15-default_generation] or test_issue_5878[release-pg15-default_generation] or test_issue_5878[release-pg15-same_generation] or test_issue_5878[release-pg15-same_generation] or test_scrubber_physical_gc_ancestors[release-pg15-None] or test_scrubber_physical_gc_ancestors[release-pg15-None] or test_scrubber_physical_gc_ancestors[release-pg15-2] or test_issue_5878[release-pg16-default_generation] or test_issue_5878[release-pg16-default_generation] or test_issue_5878[release-pg16-same_generation] or test_issue_5878[release-pg16-same_generation] or test_scrubber_physical_gc_ancestors[release-pg16-2] or test_sharding_compaction[debug-pg17-4-16-False] or test_sharding_compaction[debug-pg17-4-32768-True] or test_issue_5878[release-pg17-default_generation] or test_issue_5878[release-pg17-default_generation] or test_issue_5878[debug-pg17-default_generation] or test_issue_5878[release-pg17-default_generation] or test_issue_5878[release-pg17-default_generation] or test_issue_5878[release-pg17-same_generation] or test_issue_5878[release-pg17-same_generation] or test_issue_5878[debug-pg17-same_generation] or test_issue_5878[release-pg17-same_generation] or test_issue_5878[release-pg17-same_generation] or test_scrubber_physical_gc_ancestors[release-pg17-None] or test_scrubber_physical_gc_ancestors[release-pg17-None] or test_scrubber_physical_gc_ancestors[release-pg17-None] or test_scrubber_physical_gc_ancestors[release-pg17-None] or test_scrubber_physical_gc_ancestors[debug-pg17-None] or test_scrubber_physical_gc_ancestors[release-pg17-2] or test_scrubber_physical_gc_ancestors[release-pg17-2] or test_scrubber_physical_gc_ancestors[debug-pg17-2]"
Flaky tests (4)

Postgres 17

Postgres 15

Postgres 14

Test coverage report is not available

The comment gets automatically updated with the latest test results
36985cd at 2025-02-06T22:52:45.774Z :recycle:

Copy link
Contributor

@problame problame left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will conflict at the code level, but not semantics level, with #10547


I have been arguing for a long time to compact at disk_consistent_lsn() and have alway met resistance from @hlinnaka , although I never understood the argument.

This here is even more extreme, because l0_min_lsn is generally < disk_consistent_lsn.

I'm all for it, maybe hear Heikki's concerns one last time?

pageserver/src/tenant/timeline/compaction.rs Outdated Show resolved Hide resolved
@arpad-m arpad-m requested a review from hlinnaka January 29, 2025 16:32
@skyzh skyzh self-assigned this Feb 3, 2025
@skyzh skyzh force-pushed the skyzh/repartition-lsn branch from a172072 to 62bc7f2 Compare February 3, 2025 20:18
@skyzh skyzh enabled auto-merge February 6, 2025 20:27
@skyzh skyzh disabled auto-merge February 6, 2025 20:27
@skyzh skyzh enabled auto-merge February 6, 2025 20:28
@skyzh
Copy link
Member Author

skyzh commented Feb 6, 2025

cc @hlinnaka if you have any concerns -- I'd like to merge it now so that we can observe it in staging+preprod for a weekend, and I can resolve/revert it if you don't think this is a good idea.

@skyzh skyzh disabled auto-merge February 6, 2025 21:40
skyzh added 2 commits February 6, 2025 22:42
Signed-off-by: Alex Chi Z <chi@neon.tech>
Signed-off-by: Alex Chi Z <chi@neon.tech>
@skyzh skyzh force-pushed the skyzh/repartition-lsn branch from c873856 to 286ab83 Compare February 6, 2025 21:52
@skyzh skyzh requested a review from a team as a code owner February 6, 2025 21:52
@skyzh skyzh requested a review from myrrc February 6, 2025 21:52
Signed-off-by: Alex Chi Z <chi@neon.tech>
@skyzh skyzh force-pushed the skyzh/repartition-lsn branch from 286ab83 to 36985cd Compare February 6, 2025 21:59
@skyzh skyzh removed request for a team and myrrc February 6, 2025 21:59
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.

3 participants