Igor Canadi eb5b637fb0 Fix condition for bottommost level
Summary:
The function GetBoundaryKeys() returns the smallest key from the first file and largest key from the last file. This is good for any level >0, but it's not correct for level 0. In level 0, files can overlap, so we need to check all files for boundary keys. This bug can cause wrong value for bottommost_level in compaction (value of true, although correct is false), which means we can set sequence numbers to 0 even if the key is not the oldest one in the database.

Herman reported corruption while testing MyRocks. Fortunately, the patch that added the bug was not released yet.

Test Plan: added a new test to compaction_picker_test.

Reviewers: hermanlee4, sdong

Reviewed By: sdong

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D48201
2015-10-05 17:40:18 -07:00
..
2015-08-24 11:11:12 -07:00
2015-07-17 18:59:11 +02:00
2015-07-17 12:02:52 -07:00
2015-07-20 17:20:40 -07:00
2015-09-17 11:42:56 -07:00
2015-09-17 11:42:56 -07:00
2015-09-17 11:42:56 -07:00
2015-07-20 17:20:40 -07:00
2015-04-23 12:10:36 -07:00
2015-03-17 14:08:00 -07:00
2015-08-24 11:11:12 -07:00
2015-01-26 11:48:07 -08:00
2015-09-17 11:42:56 -07:00
2015-07-07 12:10:10 -07:00
2015-08-05 07:33:27 -07:00
2015-08-05 07:33:27 -07:00
2015-09-17 11:42:56 -07:00
2015-09-17 11:42:56 -07:00
2015-09-17 11:42:56 -07:00
2015-03-30 16:05:35 -04:00
2015-08-24 11:11:12 -07:00
2015-03-17 14:08:00 -07:00
2015-08-11 11:25:22 -07:00
2015-08-06 17:59:05 -07:00
2015-07-20 17:20:40 -07:00
2014-11-10 17:39:38 -05:00
2015-09-17 11:42:56 -07:00
2015-09-17 11:42:56 -07:00
2015-09-17 11:42:56 -07:00
2015-05-29 14:36:35 -07:00