-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
change the way purge works #392
Conversation
Ensure all versions of key are always written to same table.
Reviewed 1 of 7 files at r1, 7 of 7 files at r2. db.go, line 896 at r1 (raw file):
Do a blind write here. And do a select push into a channel, which can be run via a goroutine, which can update the GC stats. db.go, line 976 at r1 (raw file):
No need for all versions. db.go, line 243 at r2 (raw file):
1000 db.go, line 243 at r2 (raw file):
purgeUpdateCh : chan purgeUpdate db.go, line 317 at r2 (raw file):
db.updateGCStats db.go, line 461 at r2 (raw file):
IMPORTANT db.go, line 961 at r2 (raw file):
default: db_test.go, line 326 at r1 (raw file):
Explain in db.go why we should never write a key with an older version to LSM tree. levels.go, line 673 at r1 (raw file):
When generating LSM tables, continue iterating until all the versions have been picked up by a single SSTable. That is, don't split a key between 2 tables on the same level. levels.go, line 661 at r2 (raw file):
Don't declare the return vars here. levels.go, line 676 at r2 (raw file):
return vs, nil levels.go, line 678 at r2 (raw file):
return empty vs, nil? value.go, line 319 at r1 (raw file):
Add a comment //pass or explain why this. value.go, line 314 at r2 (raw file):
Can just take the fully loaded keyWithTs, and parse the version and key out of it. y/sparse_linux.go, line 28 at r1 (raw file):
full stop? Comments from Reviewable |
Review status: all files reviewed at latest revision, 15 unresolved discussions, some commit checks broke. db.go, line 896 at r1 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db.go, line 976 at r1 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db.go, line 243 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db.go, line 243 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db.go, line 317 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db.go, line 461 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db.go, line 961 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. db_test.go, line 326 at r1 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. levels.go, line 673 at r1 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. levels.go, line 661 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. levels.go, line 676 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. levels.go, line 678 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. value.go, line 319 at r1 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. value.go, line 314 at r2 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. y/sparse_linux.go, line 28 at r1 (raw file): Previously, manishrjain (Manish R Jain) wrote…
Done. Comments from Reviewable |
* change the way purge works * Stop searching as soon as value is found instead of searching all tables * Define ErrPurged to be nil for windows/osx * update gc stats in background *Ensure all versions of key are always written to same table. * add test to punch holes twice in same file and delete it later
* change the way purge works * Stop searching as soon as value is found instead of searching all tables * Define ErrPurged to be nil for windows/osx * update gc stats in background *Ensure all versions of key are always written to same table. * add test to punch holes twice in same file and delete it later
* change the way purge works * Stop searching as soon as value is found instead of searching all tables * Define ErrPurged to be nil for windows/osx * update gc stats in background *Ensure all versions of key are always written to same table. * add test to punch holes twice in same file and delete it later
* change the way purge works * Stop searching as soon as value is found instead of searching all tables * Define ErrPurged to be nil for windows/osx * update gc stats in background *Ensure all versions of key are always written to same table. * add test to punch holes twice in same file and delete it later
* change the way purge works * Stop searching as soon as value is found instead of searching all tables * Define ErrPurged to be nil for windows/osx * update gc stats in background *Ensure all versions of key are always written to same table. * add test to punch holes twice in same file and delete it later
This change is