Andrew Kryczka
3f62215210
Lazily initialize RangeDelAggregator's map and pinning manager
...
Summary:
Since a RangeDelAggregator is created for each read request, these heap-allocating member variables were consuming significant CPU (~3% total) which slowed down request throughput. The map and pinning manager are only necessary when range deletions exist, so we can defer their initialization until the first range deletion is encountered. Currently lazy initialization is done for reads only since reads pass us a single snapshot, which is easier to store on the stack for later insertion into the map than the vector passed to us by flush or compaction.
Note the Arena member variable is still expensive, I will figure out what to do with it in a subsequent diff. It cannot be lazily initialized because we currently use this arena even to allocate empty iterators, which is necessary even when no range deletions exist.
Closes https://github.com/facebook/rocksdb/pull/1539
Differential Revision: D4203488
Pulled By: ajkr
fbshipit-source-id: 3b36279
2016-11-18 17:09:11 -08: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-11-15 17:24:28 -08:00
2016-10-31 20:54:18 -07:00
2016-11-16 09:39:09 -08:00
2016-11-16 09:39:09 -08:00
2016-11-16 09:39:09 -08:00
2016-11-15 15:24:16 -08:00
2016-11-15 15:24:16 -08:00
2016-10-19 13:37:51 -07:00
2016-11-03 18:54:20 -07:00
2016-02-09 15:12:00 -08:00
2016-10-19 10:59:46 -07:00
2016-11-04 12:09:22 -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-11-15 17:24:28 -08:00
2016-10-18 12:04:56 -07:00
2016-10-24 09:49:07 -07:00
2016-11-01 21:09:23 -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-11-16 09:39:09 -08:00
2016-08-23 13:53:49 -07:00
2016-11-16 09:39:09 -08:00
2016-11-04 12:09:22 -07:00
2016-11-15 17:24:28 -08: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-11-18 17:09:11 -08:00
2016-02-09 15:12:00 -08:00
2016-11-18 17:09:11 -08:00
2016-11-14 22:54:17 -08:00
2016-09-23 16:34:04 -07:00
2016-09-23 16:34:04 -07:00
2016-11-16 09:39:09 -08:00
2016-09-07 12:37:45 -07:00
2016-10-18 16:07:10 -07:00
2016-11-18 17:09:11 -08:00
2016-11-04 12:09:22 -07:00
2016-10-31 17:24:18 -07:00
2016-02-09 15:12:00 -08:00
2016-11-16 09:39:09 -08:00
2016-11-14 22:54:17 -08:00
2016-11-16 09:39:09 -08:00
2016-10-24 10:35:00 -07:00
2016-07-19 15:46:20 -07:00
2016-11-16 09:39:09 -08:00
2016-11-16 09:39:09 -08:00
2016-11-16 09:39:09 -08:00
2016-11-16 09:39:09 -08:00
2016-11-16 09:39:09 -08:00
2016-10-20 15:43:00 -07:00
2016-11-10 11:09:22 -08: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-11-04 12:09:22 -07:00
2016-10-20 17:05:32 -07:00
2016-11-12 20:11:19 -08: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-11-14 17:39:13 -08:00
2016-10-31 20:54:18 -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-11-15 17:24:28 -08:00
2016-09-27 18:20:57 -07:00
2016-11-13 13:09:16 -08:00
2016-11-13 13:09:16 -08:00
2016-11-11 20:54:14 -08:00
2016-11-11 20:54:14 -08: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-11-03 18:54:20 -07:00
2016-11-04 12:09:22 -07:00
2016-11-04 12:09:22 -07:00
2016-11-15 20:24:13 -08:00
2016-11-13 19:09:18 -08: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-11-17 11:09:13 -08:00
2016-11-16 09:39:09 -08:00
2016-11-18 17:09:11 -08:00
2016-11-18 17:09:11 -08:00
2016-06-24 16:29:43 -07:00
2016-11-15 17:24:28 -08: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-11-18 17:09:11 -08:00
2016-11-15 17:24:28 -08: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-11-15 17:24:28 -08:00
2016-11-04 12:09:22 -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-11-15 15:24:16 -08: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-11-12 15:54:11 -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