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-07-07 11:35:40 -07:00
2016-05-20 07:42:18 -07:00
2016-02-22 21:32:19 -08:00
2016-10-18 12:04:56 -07:00
2016-09-17 22:30:43 -07:00
2016-09-12 15:31:42 -07:00
2016-09-12 15:31:42 -07:00
2016-10-21 11:31:42 -07:00
2016-10-23 18:43:29 -07:00
2016-10-21 11:31:42 -07:00
2016-10-19 13:37:51 -07:00
2016-09-23 16:34:04 -07:00
2016-02-09 15:12:00 -08:00
2016-10-19 10:59:46 -07:00
2016-10-18 12:04:56 -07:00
2016-10-18 12:04:56 -07:00
2016-08-10 12:37:43 -07:00
2016-09-23 16:34:04 -07:00
2016-10-18 16:30:34 -07:00
2016-10-18 12:04:56 -07:00
2016-10-24 09:49:07 -07:00
2016-10-24 09:49:07 -07:00
2016-10-13 10:49:06 -07:00
2016-09-13 21:11:59 -07:00
2016-10-13 10:49:06 -07:00
2016-09-27 18:20:57 -07:00
2016-02-09 15:12:00 -08:00
2016-04-28 17:50:58 -07:00
2016-02-09 15:12:00 -08:00
2016-08-23 13:53:49 -07:00
2016-06-17 10:30:47 -07:00
2016-03-31 17:12:18 -07:00
2016-10-18 12:04:56 -07:00
2016-09-01 14:33:24 -07:00
2016-09-23 16:34:04 -07:00
2016-07-21 14:32:12 -07:00
2016-10-14 12:25:39 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-02-09 15:12:00 -08:00
2016-10-21 11:31:42 -07:00
2016-10-21 11:31:42 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-03-31 17:12:18 -07:00
2016-09-07 12:37:45 -07:00
2016-10-18 16:07:10 -07:00
2016-10-18 16:07:10 -07:00
2016-10-11 13:54:26 -07:00
2016-10-13 17:36:48 -07:00
2016-02-09 15:12:00 -08:00
2016-10-21 11:31:42 -07:00
2016-09-30 09:06:43 -07:00
2016-09-07 15:41:54 -07:00
2016-07-19 15:46:20 -07:00
2016-03-04 18:15:29 -08:00
2016-10-13 10:49:06 -07:00
2016-10-20 17:05:32 -07:00
2016-10-20 17:05:32 -07:00
2016-10-20 17:05:32 -07:00
2016-10-20 15:43:00 -07:00
2016-10-14 12:59:51 -07:00
2016-04-25 23:02:14 -07:00
2016-09-27 18:20:57 -07:00
2016-10-19 10:59:46 -07:00
2016-07-05 11:57:14 -07:00
2016-04-29 11:35:00 -07:00
2016-04-29 11:35:00 -07:00
2016-02-09 15:12:00 -08:00
2016-10-20 17:05:32 -07:00
2016-10-20 17:05:32 -07:00
2016-10-20 17:05:32 -07:00
2016-10-07 11:32:10 -07:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-07-08 17:50:51 -07:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-09-27 18:20:57 -07:00
2016-09-27 18:20:57 -07:00
2016-09-27 18:20:57 -07:00
2016-09-27 18:20:57 -07:00
2016-09-21 20:22:09 -07:00
2016-09-21 14:24:08 -07:00
2016-10-13 08:48:40 -07:00
2016-09-22 11:56:18 -07:00
2016-02-09 15:12:00 -08:00
2016-07-08 17:50:51 -07:00
2016-05-22 22:00:15 -07:00
2016-05-22 22:00:15 -07:00
2016-02-09 15:12:00 -08:00
2016-07-21 16:29:06 -07:00
2016-09-27 18:20:57 -07:00
2016-09-27 18:20:57 -07:00
2016-02-09 15:12:00 -08:00
2016-07-13 19:33:57 -07:00
2016-07-05 18:11:25 -07:00
2016-09-23 16:34:04 -07:00
2016-07-21 10:10:41 -07:00
2016-05-10 14:06:07 -07:00
2016-09-30 09:06:43 -07:00
2016-09-30 09:06:43 -07:00
2016-07-05 18:11:25 -07:00
2016-07-25 15:31:41 -07:00
2016-10-18 12:04:56 -07:00
2016-10-18 12:04:56 -07:00
2016-10-18 12:04:56 -07:00
2016-07-20 09:49:03 -07:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-04-26 14:22:07 -07:00
2016-08-11 11:54:17 -07:00
2016-07-20 11:23:31 -07:00
2016-10-18 14:01:10 -07:00
2016-10-19 10:59:46 -07:00
2016-10-19 10:59:46 -07:00
2016-06-24 16:29:43 -07:00
2016-09-23 16:34:04 -07:00
2016-09-27 18:20:57 -07:00
2016-09-27 18:20:57 -07:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-10-19 10:59:46 -07:00
2016-10-18 12:04:56 -07:00
2016-10-21 11:31:42 -07:00
2016-05-19 14:24:48 -07:00
2016-05-19 14:24:48 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-10-07 17:21:45 -07:00
2016-10-20 17:05:32 -07:00
2016-07-20 11:23:31 -07:00
2016-02-09 15:12:00 -08:00
2016-07-12 14:15:32 -07:00
2016-07-13 15:36:22 -07:00
2016-10-07 17:21:45 -07:00
2016-10-20 17:05:32 -07:00
2016-10-20 17:05:32 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-08-16 08:16:04 -07:00
2016-10-07 11:32:10 -07:00
2016-10-07 11:32:10 -07:00
2016-10-07 11:32:10 -07:00
2016-04-18 10:18:41 -07:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00
2016-08-16 08:16:04 -07:00
2016-06-25 08:29:40 +01:00
2016-02-09 15:12:00 -08:00
2016-02-09 15:12:00 -08:00