Blob files are included in SstFileManager DB size calculation #5127
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.
Blob files were not counted in DB size by SstFileManager. As a result, blob files are always subject to background file deletion rate limiting in DeleteScheduler. Normal SST files bypass the rate limiter if trash/db size ratio is above a certain threshold, which limits disk utilization due to accumulated trash.
This PR fixes it by adding Blob files size to the total DB size in SstFileManagerImpl::GetTotalSize(). Since blob file size increases on every blob write, we provide SstFileManagerImpl with a pointer to the blob file size atomic counter that it can look at in GetTotalSize(), otherwise it would be too much overhead to update SstFileManagerImpl on every blob write.
Test:
Add a new test in blob_db_test
make check