sdong 462796697c dynamic_bloom: replace some divide (remainder) operations with shifts in locality mode, and other improvements
Summary:
This patch changes meaning of options.bloom_locality: 0 means disable cache line optimization and any positive number means use CACHE_LINE_SIZE as block size (the previous behavior is the block size will be CACHE_LINE_SIZE*options.bloom_locality). By doing it, the divide operations inside a block can be replaced by a shift.

Performance is improved:
https://reviews.facebook.net/P471

Also, improve the basic algorithm in two ways:
(1) make sure num of blocks is an odd number
(2) rotate bytes after every probe in locality mode. Since the divider is 2^n, unless doing it, we are never able to use all the bits.
Improvements of false positive: https://reviews.facebook.net/P459

Test Plan: make all check

Reviewers: ljin, haobo

Reviewed By: haobo

Subscribers: dhruba, yhchiang, igor, leveldb

Differential Revision: https://reviews.facebook.net/D18843
2014-06-02 17:36:38 -07:00
..
2014-05-14 12:40:49 -07:00
2014-05-15 12:34:53 +08:00
2014-05-08 13:50:49 -07:00
2014-05-08 13:50:49 -07:00
2014-04-15 13:39:26 -07:00
2014-04-15 13:39:26 -07:00
2014-05-09 08:41:02 -07:00
2014-05-02 16:24:04 -04:00
2014-05-02 16:24:04 -04:00
2014-04-04 14:03:19 -07:00
2014-05-21 07:54:22 -04:00
2014-03-03 21:11:49 -08:00
2014-01-17 12:46:06 -08:00
2014-01-17 12:46:06 -08:00
2014-04-15 13:39:26 -07:00
2014-03-21 15:32:48 -07:00
2014-05-14 12:13:50 -07:00
2014-05-14 12:13:50 -07:00
2014-05-21 11:43:35 -07:00
2014-04-08 10:58:07 -07:00
2014-04-08 10:58:07 -07:00
2014-02-12 11:42:54 -08:00
2013-12-03 12:42:15 -08:00
2014-01-17 12:46:06 -08:00
2014-04-09 21:17:14 -07:00
2014-04-09 21:17:14 -07:00
2014-04-17 14:29:28 -07:00
2014-04-25 09:50:51 -04:00
2014-05-01 14:09:32 -04:00
2014-05-01 14:09:32 -04:00