krad
d4540654e9
Optimize GetApproximateSizes() to use lesser CPU cycles.
...
Summary:
CPU profiling reveals GetApproximateSizes as a bottleneck for performance. The current implementation is sub-optimal, it scans every file in every level to compute the result.
We can take advantage of the fact that all levels above 0 are sorted in the increasing order of key ranges and use binary search to locate the starting index. This can reduce the number of comparisons required to compute the result.
Test Plan: We have good test coverage. Run the tests.
Reviewers: sdong, igor, rven, dynamike
Subscribers: dynamike, maykov, dhruba, leveldb
Differential Revision: https://reviews.facebook.net/D37755
2015-04-30 10:55:03 -07:00
..
2015-04-23 11:34:35 -07:00
2015-04-23 11:34:35 -07:00
2015-02-23 14:10:09 -08:00
2015-03-17 15:04:37 -07:00
2015-04-25 18:14:27 +09:00
2015-04-25 18:14:27 +09:00
2015-04-23 19:12:31 -07:00
2015-03-17 14:08:00 -07:00
2015-04-27 15:20:02 -07:00
2015-04-27 15:20:02 -07:00
2015-04-27 15:20:02 -07:00
2015-04-17 16:44:45 -07:00
2015-04-25 18:14:27 +09:00
2015-04-17 16:44:45 -07:00
2015-04-27 15:20:02 -07:00
2015-04-27 15:20:02 -07:00
2015-03-19 17:29:37 -07:00
2015-04-25 18:14:27 +09:00
2015-03-17 14:08:00 -07:00
2015-04-09 15:51:34 -07:00
2015-03-19 17:04:29 -07:00
2015-03-30 15:04:10 -04:00
2015-04-29 13:35:48 -07:00
2014-12-22 12:20:17 -08:00
2014-11-26 11:37:59 -08:00
2015-04-30 10:55:03 -07:00
2015-04-27 15:20:02 -07:00
2015-03-19 17:29:37 -07:00
2015-04-25 18:14:27 +09:00
2014-09-08 15:04:34 -07:00
2015-04-29 13:35:48 -07:00
2015-03-17 14:08:00 -07:00
2014-11-11 16:47:22 -05:00
2015-04-23 18:08:37 -07:00
2015-03-19 17:29:37 -07:00
2015-04-23 12:10:36 -07:00
2015-04-09 16:15:42 -07:00
2015-04-29 10:52:31 -07:00
2015-04-29 10:52:31 -07:00
2014-11-11 16:47:22 -05:00
2015-03-17 14:08:00 -07:00
2015-01-22 14:32:03 -08:00
2015-01-22 14:32:03 -08:00
2015-03-19 17:29:37 -07:00
2015-04-27 15:20:02 -07:00
2015-03-13 10:45:40 -07:00
2014-10-02 14:33:16 -07:00
2015-01-26 11:48:07 -08:00
2015-02-26 11:28:41 -08:00
2015-02-26 11:28:41 -08:00
2015-04-01 10:48:42 -07:00
2015-04-09 16:43:54 -07:00
2015-03-30 15:04:10 -04:00
2015-03-19 17:29:37 -07:00
2014-01-02 16:32:31 -08:00
2015-02-23 14:10:09 -08:00
2015-04-07 16:25:56 -07:00
2015-03-17 14:08:00 -07:00
2015-02-20 11:07:17 -08:00
2015-04-07 16:25:56 -07:00
2015-02-24 16:24:53 -08: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-04-27 15:20:02 -07:00
2015-04-25 18:14:27 +09:00
2015-04-10 14:16:03 -07:00
2015-03-24 14:42:04 -07:00
2015-04-08 21:10:35 -07:00
2015-01-13 12:27:28 -08:00
2014-03-24 17:57:13 -07:00
2015-04-27 20:23:50 -07:00
2015-04-27 20:23:50 -07:00
2014-03-26 18:11:41 -07:00
2015-02-26 11:28:41 -08:00
2015-03-30 16:05:35 -04:00
2015-03-19 17:29:37 -07:00
2015-03-19 17:29:37 -07:00
2015-04-23 11:34:35 -07:00
2015-03-17 14:08:00 -07:00
2014-12-02 12:09:20 -08:00
2015-03-17 19:23:08 -07:00
2015-02-26 11:28:41 -08:00
2014-10-28 17:52:32 -07:00
2014-09-29 11:09:09 -07:00
2015-04-06 10:27:21 -07:00
2015-04-06 10:27:21 -07:00
2015-04-06 10:27:21 -07:00
2014-11-06 11:14:28 -08:00
2015-02-26 11:28:41 -08:00
2015-03-19 17:29:37 -07:00
2015-02-06 08:44:30 -08:00
2014-10-31 16:34:38 -07:00
2015-03-17 14:08:00 -07:00
2014-10-31 11:59:54 -07:00
2015-04-17 16:44:45 -07:00
2015-04-03 09:04:35 -07:00
2015-04-30 10:55:03 -07:00
2015-04-30 10:55:03 -07:00
2015-04-13 16:15:05 -07:00
2015-02-26 11:28:41 -08:00
2014-11-10 17:39:38 -05:00
2015-03-17 19:23:08 -07:00
2014-11-18 10:20:10 -08:00
2015-03-19 17:29:37 -07:00
2015-03-24 14:42:04 -07:00
2015-04-17 14:54:17 -07:00
2014-09-08 11:20:25 -07:00
2014-09-13 14:14:10 -07:00
2014-09-12 16:23:58 -07:00
2015-02-04 21:39:45 -08:00
2014-12-02 12:09:20 -08:00