sdong 1168cb810a Fix a bug that may cause a deleted row to appear again
Summary:
The previous fix of reappearing of a deleted row 0ce258f9b37c8661ea326039372bef8f185615ef missed a corner case, which can be reproduced using test CompactionPickerTest.OverlappingUserKeys7. Consider such an example:

input level file: 1[B E] 2[F H]
output level file: 3[A C] 4[D I] 5[I K]

First file 2 is picked, which overlaps to file 4. 4 expands to 5. Now the all range is [D K] with 2 output level files. When we try to expand that, [D K] overlaps with file 1 and 2 in the input level, and 1 and 2 overlaps with 3 and 4 in the output level. So we end up with picking 3 and 4 in the output level. Without expanding, it also has 2 files, so we determine the output level doesn't change, although they are the different two files.

The fix is to expand the output level files after we picked 3 and 4. In that case, there will be three output level files so we will abort the expanding.

I also added two unit tests related to marked_for_compaction and being_compacted. They have been passing though.

Test Plan: Run the new unit test, as well as all other tests.

Reviewers: andrewkr, IslamAbdelRahman

Reviewed By: IslamAbdelRahman

Subscribers: yoshinorim, leveldb, andrewkr, dhruba

Differential Revision: https://reviews.facebook.net/D65373
2016-10-24 09:49:07 -07:00
..
2016-09-12 15:31:42 -07:00
2016-09-12 15:31:42 -07:00
2016-09-13 21:11:59 -07:00
2016-10-18 16:07:10 -07:00
2016-09-27 18:20:57 -07:00
2016-07-08 17:50:51 -07:00
2016-09-27 18:20:57 -07:00
2016-09-21 20:22:09 -07:00
2016-10-13 08:48:40 -07:00
2016-07-08 17:50:51 -07:00
2016-09-30 09:06:43 -07:00
2016-09-30 09:06:43 -07:00
2016-09-27 18:20:57 -07:00
2016-09-27 18:20:57 -07:00
2016-07-13 15:36:22 -07:00
2016-06-25 08:29:40 +01:00