Retire superfluous functions introduced in earlier mempurge PRs. #8558
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.
The main challenge to make the memtable garbage collection prototype (nicknamed
mempurge
) was to not get rid of WAL files that contain unflushed (but mempurged) data. That was successfully guaranteed by not writing the VersionEdit to the MANIFEST file after a successful mempurge.By not writing VersionEdits to the
MANIFEST
file after a succesful mempurge operation, we do not change the earliest log file number that contains unflushed data:cfd->GetLogNumber()
(cfd->SetLogNumber()
is only called inVersionSet::ProcessManifestWrites
). As a result, a number of functions introduced earlier just for the mempurge operation are not obscolete/redundant. (e.g.:FlushJob::ExtractEarliestLogFileNumber
), and this PR aims at cleaning up all these now-unnecessary functions. In particular, we no longer need to store the earliest log file number in theMemTable
struct itself. This PR therefore also reverts theMemTable
struct to its original form.Test Plan: Already included in
db_flush_test.cc
.