You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
manifest: don't compact blob files with uncertain outstanding references
When a virtual table is created from an existing sstable, the virtual table
inherits the backing sstable's blob references. The BlobReference's ValueSize
is computed by linearly interpolating according to the approximate virtual
table size. This could be grossly inaccurate.
In #5214, we began tracking a virtual table's blob references' backing value
size and using this to determine a blob file's eligibility for blob file
rewrite compactions. Using the backing's value size is pessimistic, which
avoids fruitlessly rewriting a blob file that is actually fully referenced.
The BackingValueSize introduced by #5214 is only populated for DBs at
FormatBackingValueSize and later. We've observed instances (#5306) where blob
file rewrite compactions repeatedly rewrite the same blob file due to this
mismatch. This problem was exacerbated by the introduction of high-priority
blob file rewrite compactions (#5258). This commit fixes this issue by
considering ineligible for rewrite any blob files with outstanding references
from virtual tables that don't have a BackingValueSize.
Informs #5306.
0 commit comments