8
8
#include < cmath>
9
9
10
10
#include " fastrange.h"
11
- #include " lang.h" // for FALLTHROUGH_INTENDED
12
11
#include " port.h" // for PREFETCH
13
12
#include " ribbon_alg.h"
14
13
@@ -23,6 +22,8 @@ namespace ribbon {
23
22
// and core design details.
24
23
//
25
24
// TODO: more details on trade-offs and practical issues.
25
+ //
26
+ // APIs for configuring Ribbon are in ribbon_config.h
26
27
27
28
// Ribbon implementations in this file take these parameters, which must be
28
29
// provided in a class/struct type with members expressed in this concept:
@@ -49,18 +50,22 @@ namespace ribbon {
49
50
// // construction.
50
51
// static constexpr bool kIsFilter;
51
52
//
52
- // // When true, enables a special "homogeneous" filter implementation which
53
+ // // When true, enables a special "homogeneous" filter implementation that
53
54
// // is slightly faster to construct, and never fails to construct though
54
55
// // FP rate can quickly explode in cases where corresponding
55
56
// // non-homogeneous filter would fail (or nearly fail?) to construct.
56
- // // Thus, we recommend ConstructionFailureChance smaller than desired FP
57
- // // rate.
57
+ // // For smaller filters, you can configure with ConstructionFailureChance
58
+ // // smaller than desired FP rate to largely counteract this effect.
59
+ // // TODO: configuring Homogeneous Ribbon for arbitrarily large filters
60
+ // // based on data from OptimizeHomogAtScale
58
61
// static constexpr bool kHomogeneous;
59
62
//
60
63
// // When true, adds a tiny bit more hashing logic on queries and
61
64
// // construction to improve utilization at the beginning and end of
62
65
// // the structure. Recommended when CoeffRow is only 64 bits (or
63
- // // less), so typical num_starts < 10k.
66
+ // // less), so typical num_starts < 10k. Although this is compatible
67
+ // // with kHomogeneous, the competing space vs. time priorities might
68
+ // // not be useful.
64
69
// static constexpr bool kUseSmash;
65
70
//
66
71
// // When true, allows number of "starts" to be zero, for best support
0 commit comments