Andrew Kryczka
3ae0047278
skip CompactRange flush based on memtable contents
...
Summary:
CompactRange has a call to Flush because we guarantee that, at the time it's called, all existing keys in the range will be pushed through the user's compaction filter. However, previously the flush was done blindly, so it'd happen even if the memtable does not contain keys in the range specified by the user. This caused unnecessarily many L0 files to be created, leading to write stalls in some cases. This PR checks the memtable's contents, and decides to flush only if it overlaps with `CompactRange`'s range.
- Move the memtable overlap check logic from `ExternalSstFileIngestionJob` to `ColumnFamilyData::RangesOverlapWithMemtables`
- Reuse the above logic in `CompactRange` and skip flushing if no overlap
Closes https://github.com/facebook/rocksdb/pull/3520
Differential Revision: D7018897
Pulled By: ajkr
fbshipit-source-id: a3c6b1cfae56687b49dd89ccac7c948e53545934
2018-02-27 17:12:44 -08:00
..
2018-02-22 12:43:17 -08:00
2017-11-10 09:26:24 -08:00
2017-09-14 14:18:59 -07:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-27 17:12:44 -08:00
2018-02-27 17:12:44 -08:00
2018-02-22 12:43:17 -08:00
2017-10-27 11:26:42 -07:00
2018-02-22 12:43:17 -08:00
2017-08-19 14:10:08 -07:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2017-11-30 23:50:45 -08:00
2018-02-09 14:57:54 -08:00
2017-11-16 17:57:25 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2017-12-11 13:27:06 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-01-22 16:43:46 -08:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2018-01-30 13:56:39 -08:00
2017-08-11 12:29:14 -07:00
2017-10-19 10:57:12 -07:00
2018-02-23 13:57:26 -08:00
2017-10-17 08:57:09 -07:00
2018-02-22 12:43:17 -08:00
2017-07-21 18:26:26 -07:00
2018-02-22 12:43:17 -08:00
2018-02-27 17:12:44 -08:00
2017-07-21 18:26:26 -07:00
2017-07-15 16:11:23 -07:00
2018-02-09 12:12:43 -08:00
2018-02-05 13:59:34 -08:00
2018-02-27 17:12:44 -08:00
2018-02-09 12:12:43 -08:00
2017-10-05 18:11:43 -07:00
2018-01-17 17:42:04 -08:00
2018-02-26 14:58:06 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-27 17:12:44 -08:00
2018-02-23 13:57:26 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-26 21:11:47 -07:00
2017-11-29 22:56:29 -08:00
2018-02-20 19:12:09 -08:00
2017-12-18 22:29:30 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2018-02-09 14:57:54 -08:00
2018-01-17 17:42:04 -08:00
2018-02-22 12:43:17 -08:00
2017-08-29 18:41:35 -07:00
2017-12-12 18:17:13 -08:00
2017-07-15 16:11:23 -07:00
2017-09-28 18:17:30 -07:00
2017-07-21 18:26:26 -07:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2017-11-30 23:50:45 -08:00
2017-12-15 13:27:30 -08:00
2017-07-15 16:11:23 -07:00
2018-01-31 18:57:07 -08:00
2018-01-31 18:57:07 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-28 16:27:16 -07:00
2017-11-28 11:27:02 -08:00
2018-02-27 17:12:44 -08:00
2018-02-27 17:12:44 -08:00
2018-02-22 12:43:17 -08:00
2018-02-13 14:12:40 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-12-15 18:57:00 -08:00
2018-02-09 12:12:43 -08:00
2017-10-06 10:41:53 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-12-01 10:42:05 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2017-10-23 15:27:27 -07:00
2018-01-12 13:27:08 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-01-29 12:56:42 -08:00
2017-10-19 10:57:12 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-02-23 11:42:33 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2018-01-18 17:45:16 -08:00
2018-02-22 12:43:17 -08:00
2018-01-31 18:57:07 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-02-09 14:57:54 -08:00
2018-02-09 14:57:54 -08:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2017-11-30 23:50:45 -08:00
2018-02-22 12:43:17 -08:00
2017-11-28 11:27:02 -08:00
2017-11-28 11:27:02 -08:00
2017-11-28 11:27:02 -08:00
2017-09-11 09:14:48 -07:00
2017-10-10 13:12:37 -07:00
2017-11-30 23:50:45 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2018-02-07 14:42:26 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2017-11-10 17:28:12 -08:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2017-08-24 16:10:54 -07:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2017-12-07 11:57:36 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-01-11 18:57:33 -08:00
2018-01-11 18:57:33 -08:00
2017-07-15 16:11:23 -07:00
2018-02-09 14:57:54 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2018-02-22 12:43:17 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-02-22 12:43:17 -08:00
2018-02-05 18:43:24 -08:00