Address frequent errors logged by compactor regarding meta not found #327
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.
What this PR does:
The compactor can log frequent errors like the following:
msg="unable to find meta during compaction. trying again on this block list"
. The root cause seems to be that when a block is compacted, it is updated in the storage backend, but not in the in-memory blocklist until the next polling cycle. This causes the stale entry to be considered for compaction on subsequent runs, causing the errors for several minutes (based on default timings).This PR updates the compactor to immediately update the in-memory blocklist to be aware of changes it makes: add the new blocks created during compaction, move the old ones to the compacted section. The changes are temporary and get overwritten during the next poll cycle, but are still helpful to cut down on the noise, and additionally will prevent failing/extra calls to the storage backend to load the meta.
Which issue(s) this PR fixes:
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]