-
Notifications
You must be signed in to change notification settings - Fork 473
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
pageserver: add no_sync
for use in regression tests (2/2)
#9678
Merged
Conversation
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
jcsp
added
c/storage/pageserver
Component: storage: pageserver
a/test
Area: related to testing
a/tech_debt
Area: related to tech debt
labels
Nov 7, 2024
5 tasks
5473 tests run: 5241 passed, 2 failed, 230 skipped (full report)Failures on Postgres 16
Code coverage* (full report)
* collected from Rust tests only The comment gets automatically updated with the latest test results
b1cdb42 at 2024-11-12T19:35:34.023Z :recycle: |
jcsp
added a commit
that referenced
this pull request
Nov 8, 2024
## Problem In test environments, the `syncfs` that the pageserver does on startup can take a long time, as other tests running concurrently might have many gigabytes of dirty pages. ## Summary of changes - Add a `no_sync` option to the pageserver's config. - Skip syncfs on startup if this is set - A subsequent PR (#9678) will enable this by default in tests. We need to wait until after the next release to avoid breaking compat tests, which would fail if we set no_sync & use an old pageserver binary. Q: Why is this a different mechanism than safekeeper, which as a --no-sync CLI? A: Because the way we manage pageservers in neon_local depends on the pageserver.toml containing the full configuration, whereas safekeepers have a config file which is neon-local-specific and can drive a CLI flag. Q: Why is the option no_sync rather than sync? A: For boolean configs with a dangerous value, it's preferable to make "false" the safe option, so that any downstream future config tooling that might have a "booleans are false by default" behavior (e.g. golang structs) is safe by default. Q: Why only skip the syncfs, and not all fsyncs? A: Skipping all fsyncs would require more code changes, and the most acute problem isn't fsyncs themselves (these just slow down a running test), it's the syncfs (which makes a pageserver startup slow as a result of _other_ tests)
jcsp
force-pushed
the
jcsp/pageserver-no-sync-pt2
branch
from
November 12, 2024 09:30
9e43b43
to
15fa7a9
Compare
bayandin
reviewed
Nov 12, 2024
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.
Should we also add run-benchmarks
label?
As I understand, we expect these changes to help with them as well?
bayandin
approved these changes
Nov 12, 2024
jcsp
added
the
run-benchmarks
Indicates to the CI that benchmarks should be run for PR marked with this label
label
Nov 12, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
a/tech_debt
Area: related to tech debt
a/test
Area: related to testing
c/storage/pageserver
Component: storage: pageserver
run-benchmarks
Indicates to the CI that benchmarks should be run for PR marked with this label
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.
Problem
Followup to #9677 which enables
no_sync
in tests. This can be merged once the next release has happened.Summary of changes
no_sync = true
in tests.Checklist before requesting a review
Checklist before merging