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
DBImpl::DoCompactionWork decides to finish current output if current output file is big enough or has too much overlap with its grandparents. Seems that keys with same user key but different sequence part may spread to multiple output files in compaction. If this happens, new level compaction may pick the file with newer version key and compact it to elder level. From now on, the key's newer version, which has larger sequence number, is stored in level greater than its old incarnation. If we try to get that key, we will get its old incarnation. See Version::Get for implementation details.
I push a pull request #375 to fix this. Any maintainer here to review that pull request ?
The text was updated successfully, but these errors were encountered:
kezhuw
changed the title
Key with larger sequence got compacted to elder level, while its smaller sequence variant stays in younger level
Key with larger sequence got compacted to elder level, while its smaller sequence incarnation stays in younger level
May 19, 2016
DBImpl::DoCompactionWork decides to finish current output if current output file is big enough or has too much overlap with its grandparents. Seems that keys with same user key but different sequence part may spread to multiple output files in compaction. If this happens, new level compaction may pick the file with newer version key and compact it to elder level. From now on, the key's newer version, which has larger sequence number, is stored in level greater than its old incarnation. If we try to get that key, we will get its old incarnation. See Version::Get for implementation details.
I push a pull request #375 to fix this. Any maintainer here to review that pull request ?
The text was updated successfully, but these errors were encountered: