Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Key with larger sequence got compacted to elder level, while its smaller sequence incarnation stays in younger level #376

Closed
kezhuw opened this issue May 19, 2016 · 3 comments
Labels

Comments

@kezhuw
Copy link

kezhuw commented 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 ?

@kezhuw 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
@kezhuw
Copy link
Author

kezhuw commented May 24, 2016

@cmumford Can you take a look at this issue and review #375 ? Thanks!

@cmumford cmumford added the bug label Aug 11, 2016
@bwzhang2011
Copy link

@cmumford, any update with such issue ?

@kezhuw
Copy link
Author

kezhuw commented Mar 30, 2019

Closes this due to duplication of #320, see corresponding pull request #339 for fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants