Igor Canadi
4ab26c5ad1
Smarter purging during flush
...
Summary:
Currently, we only purge duplicate keys and deletions during flush if `earliest_seqno_in_memtable <= newest_snapshot`. This means that the newest snapshot happened before we first created the memtable. This is almost never true for MyRocks and MongoRocks.
This patch makes purging during flush able to understand snapshots. The main logic is copied from compaction_job.cc, although the logic over there is much more complicated and extensive. However, we should try to merge the common functionality at some point.
I need this patch to implement no_overwrite_i_promise functionality for flush. We'll also need this to support SingleDelete() during Flush(). @yoshinorim requested the feature.
Test Plan:
make check
I had to adjust some unit tests to understand this new behavior
Reviewers: yhchiang, yoshinorim, anthony, sdong, noetzli
Reviewed By: noetzli
Subscribers: yoshinorim, dhruba, leveldb
Differential Revision: https://reviews.facebook.net/D42087
2015-08-24 11:11:12 -07:00
..
2015-08-24 11:11:12 -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-08-05 07:33:27 -07:00
2015-08-20 11:47:19 -07:00
2015-08-20 11:47:19 -07:00
2015-07-20 17:20:40 -07:00
2015-07-14 11:32:54 -07:00
2015-07-14 11:32:54 -07:00
2015-08-21 14:25:34 -07:00
2015-08-18 11:06:23 -07:00
2015-08-21 14:25:34 -07:00
2015-08-18 11:06:23 -07:00
2015-08-20 22:17:10 -07:00
2015-08-03 15:53:22 -07:00
2015-07-27 14:25:57 -07:00
2015-08-18 11:06:23 -07:00
2015-08-21 14:25:34 -07:00
2015-06-09 16:36:07 -07:00
2015-07-15 14:51:51 -07:00
2015-07-17 12:02:52 -07:00
2015-07-20 10:50:46 -07:00
2015-08-21 14:25:34 -07:00
2015-07-17 12:02:52 -07:00
2015-08-21 14:25:34 -07:00
2015-07-13 19:00:30 -07:00
2015-06-19 16:08:31 -07:00
2015-08-14 10:55:43 -07:00
2015-06-17 12:37:59 -07:00
2015-07-14 11:32:54 -07:00
2015-06-17 14:36:14 -07:00
2015-08-24 11:11:12 -07:00
2015-08-11 17:52:23 -07:00
2015-07-20 16:05:28 -07:00
2015-08-21 12:14:12 -07:00
2015-08-19 11:03:51 -07:00
2014-09-08 15:04:34 -07:00
2015-07-14 16:08:21 -07:00
2015-08-19 16:05:51 -07:00
2015-08-24 11:11:12 -07:00
2015-08-20 14:08:24 -07:00
2015-08-05 14:27:02 -07:00
2015-07-14 00:21:41 -07:00
2015-06-17 20:44:26 -07:00
2015-07-14 00:21:41 -07:00
2015-07-20 17:20:40 -07:00
2015-06-03 19:57:01 -07:00
2015-06-03 19:57:01 -07:00
2015-04-23 12:10:36 -07:00
2015-08-20 14:08:24 -07:00
2015-04-29 10:52:31 -07:00
2015-04-29 10:52:31 -07:00
2015-07-11 10:32:11 -07:00
2015-03-17 14:08:00 -07:00
2015-07-17 16:58:18 -07:00
2015-07-17 16:58:18 -07:00
2015-08-24 11:11:12 -07:00
2015-08-24 11:11:12 -07:00
2015-08-24 11:11:12 -07:00
2014-10-02 14:33:16 -07:00
2015-01-26 11:48:07 -08:00
2015-08-19 16:57:40 -07:00
2015-08-19 16:57:40 -07:00
2015-08-20 22:17:10 -07:00
2015-08-20 22:17:10 -07:00
2015-07-07 12:10:10 -07:00
2015-07-14 09:35:48 +02:00
2015-07-17 16:58:18 -07:00
2015-07-17 16:58:18 -07:00
2015-08-05 07:33:27 -07:00
2015-07-17 16:58:18 -07:00
2015-07-17 16:58:18 -07:00
2015-07-01 16:13:56 -07:00
2015-04-09 21:05:18 -07:00
2014-12-02 12:09:20 -08:00
2014-12-02 12:09:20 -08:00
2015-08-05 07:33:27 -07:00
2015-08-19 13:32:09 -07:00
2015-08-19 13:32:09 -07:00
2015-08-17 17:34:38 -07:00
2015-06-16 18:13:23 -07:00
2015-07-01 16:13:56 -07:00
2015-05-11 14:51:51 -07:00
2015-08-17 17:34:38 -07:00
2015-08-17 17:34:38 -07:00
2015-08-17 17:34:38 -07:00
2015-06-26 11:35:46 -07:00
2015-07-20 11:17:52 -07:00
2015-03-30 16:05:35 -04:00
2015-07-20 11:12:02 -07:00
2015-07-20 11:24:54 -07: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-03-17 19:23:08 -07:00
2015-08-06 17:59:05 -07:00
2015-08-06 17:59:05 -07:00
2015-08-21 08:46:29 -07:00
2015-08-21 08:46:29 -07:00
2015-08-05 07:33:27 -07:00
2015-04-06 10:27:21 -07:00
2015-06-05 20:18:21 -07:00
2015-07-17 16:58:18 -07:00
2015-07-17 16:58:18 -07:00
2015-06-05 20:18:21 -07:00
2015-08-11 12:19:56 -07:00
2015-08-11 12:19:56 -07:00
2015-06-05 20:18:21 -07:00
2015-07-17 10:07:40 -07:00
2015-07-17 10:07:40 -07:00
2015-07-21 21:33:20 -07:00
2015-08-20 22:17:10 -07:00
2015-08-20 22:17:10 -07:00
2015-07-20 11:24:54 -07:00
2015-07-20 17:20:40 -07:00
2014-11-10 17:39:38 -05:00
2015-05-29 04:30:03 -07:00
2015-07-29 16:54:23 -07:00
2015-07-29 16:54:23 -07:00
2015-08-06 17:59:05 -07:00
2015-07-20 10:54:15 -07:00
2015-05-29 14:36:35 -07:00
2015-06-11 20:42:18 -07:00
2015-06-11 20:42:18 -07:00
2015-06-11 20:42:18 -07:00
2015-08-14 10:55:43 -07:00
2015-08-14 10:55:43 -07:00
2014-12-02 12:09:20 -08:00