forked from apple/foundationdb
-
Notifications
You must be signed in to change notification settings - Fork 6
Merged upstream 7.1.29 #60
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
Merged
Merged
Conversation
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
When VV is enabled, the comparison of storage server version and read version should use the original read version, otherwise, the client may get the wrong transaction_too_old error.
Fix transaction_too_old error when version vector is enabled
Cherry pick PR 8630 to release 7.1
This is a patch to release-7.1 after resolving conflicts from commit in main branch, in order to enable byteLimit in release-7.1 A fraction of byteLimit will be used as the limit to fetch index. For the indexes fetched, fetch records for them in batch. byteLimit always count the index size, it also count record if exist, it at least return 1 index-record entry and always include the last entry despite that adding the last entry despite it might exceed limit. There is a Knob STRICTLY_ENFORCE_BYTE_LIMIT, when it is set, records will be discarded once the byteLimit is hit, despite they are fetched. Otherwise, return the whole batch.
This reverts commit fadcb08.
* Add SS read range bytes metrics. (apple#8697) * Fix build failure * clang-fmt * fmt
add bytelimit for prefetch (release-7.1)
Rocksdb suggest compact range checks
RocksDB 7.7.3 version upgrade
The number of released bytes exceeds the number of acquired bytes in locks. This is because the bytes counted towards release is calculated after a "wait", when more bytes could be allocated.
Fix backup worker assertion failure [release-7.1]
To fix simulation failures where the knob value is too small.
PTree improvements [release-7.1]
…te-7.1 [Release 7.1] Enhance fdbbackup query command to estimate data processing from a specific snapshot to a target version
Set max length as well to avoid TraceEventOverflow.
Use KeyspaceSnapshotFile to filter range files
To reduce the number of network requests.
Refactor decoder to read file as a whole once
…elease-7.1] (apple#9640) * Add DcLag tests and workload * Add disableSimSpeedup to clog network longer * Ignore the DcLag test * Refactor LogRouter's pullAsyncData * Switch DC if log router peek becomes stuck Trying to a different DC if this happens. * Enable DcLag test * Require at least 2 regions and having satellites * Simplify DcLag code * Limit connection failures to be within tests In particular, disable connection failures when initializing the database during the startup phase, i.e., before running with test specs. * Revert disableSimSpeedup * Fix conflicts after cherrypick * More fixes after cherrypick * Refactor to address comments * Use a constant for connectionFailuresDisableDuration * Fix ClogTlog workload valgrind error * Address comments * Reduce running time for DcLag The switch can happen quicker than the workload detection time, so need to adjust detection time lower than LOG_ROUTER_PEEK_SWITCH_DC_TIME.
Seed storage servers are recruited as the intial set of storage servers when a database is first created. They function a little bit differently than normal, and do not set an initial version like storages normally do when they get recruited (typically equal to the recovery version). Version correction is a feature where versions advance in sync with the clock, and are equal across FDB clusters. To allow different FDB clusters to have matching versions, they must share the same base version. This defaults to the Unix epoch, and clusters with the version epoch enabled will have a current version equal to the number of microseconds since the Unix epoch. When the version epoch is enabled on a cluster, it causes a one time jump from the clusters current version to the version based on the epoch. After a recovery, the recovery version sent to storages should have advanced by a significant amount. The recovery path contained a `BUGGIFY` to randomly advance the recovery version in simulation, testing the version epoch being enabled. However, it was also advancing the version during an initial recovery, when the seed storage servers are recruited. If a set of storage servers were recruited as seed servers, but another recovery occurred before the bootstrap process was complete, the randomly selected version increase could be smaller during the second recovery than during the first. This could cause the initial set of seed servers to think they should be at a version larger than what the cluuster was actually at. The fix contained in this commit is to only cause a random version jump when the recovery is occuring on an existing database, and not when it is recruiting seed storages. This commit fixes an issue found in simulation, reproducible with: Commit: 93dc4bf Test: fast/DataLossRecovery.toml Seed: 3101495991 Buggify: on Compiler: clang
When the ClogTlog is running, we may already pass the 450s, i.e., SIM_SPEEDUP_AFTER_SECONDS, and clogging is no longer effective. If that's the case, we want to finish the test quickly.
Fix issue where the versions on seed storage servers decreased [release-7.1]
foxyholic
approved these changes
Apr 4, 2023
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.
No description provided.