Skip to content

Commit 2bafa9d

Browse files
committed
feat(lsm-tree-bench-bloomfilter): add salt
1 parent 1c9ae3a commit 2bafa9d

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

bench/macro/lsm-tree-bench-bloomfilter.hs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import Text.Printf (printf)
2626
import Database.LSMTree.Extras.Orphans ()
2727
import Database.LSMTree.Internal.Assertions (fromIntegralChecked)
2828
import qualified Database.LSMTree.Internal.BloomFilter as Bloom
29+
import Database.LSMTree.Internal.Paths (SessionSalt (..))
2930
import Database.LSMTree.Internal.Serialise (SerialisedKey,
3031
serialiseKey)
3132

@@ -108,7 +109,7 @@ benchmarks = do
108109
benchmark "bloomQueries"
109110
"(this is the batch lookup, less the cost of computing and hashing the keys)"
110111
(benchInBatches benchmarkBatchSize rng0
111-
(\ks -> Bloom.bloomQueries vbs ks `seq` ()))
112+
(\ks -> Bloom.bloomQueries sessionSalt vbs ks `seq` ()))
112113
(fromIntegralChecked benchmarkNumLookups)
113114
hashcost
114115
0
@@ -200,6 +201,11 @@ totalNumEntriesSanityCheck l1 filterSizes =
200201
==
201202
sum [ 2^l1 * sizeFactor | (_, sizeFactor, _) <- filterSizes ]
202203

204+
sessionSalt :: SessionSalt
205+
sessionSalt = SessionSalt bloomSalt
206+
207+
bloomSalt :: Bloom.Salt
208+
bloomSalt = 4
203209

204210
-- | Input environment for benchmarking 'Bloom.elemMany'.
205211
--
@@ -223,7 +229,10 @@ elemManyEnv :: [BloomFilterSizeInfo]
223229
elemManyEnv filterSizes rng0 =
224230
stToIO $ do
225231
-- create the filters
226-
mbs <- sequence [ Bloom.new bsize | (_, _, bsize) <- filterSizes ]
232+
mbs <- sequence
233+
[ Bloom.new bsize bloomSalt
234+
| (_, _, bsize) <- filterSizes
235+
]
227236
-- add elements
228237
foldM_
229238
(\rng (i, mb) -> do
@@ -264,7 +273,7 @@ benchInBatches !b !rng0 !action =
264273
benchMakeHashes :: Vector (Bloom SerialisedKey) -> BatchBench
265274
benchMakeHashes !_bs !ks =
266275
let khs :: VP.Vector (Bloom.Hashes SerialisedKey)
267-
!khs = V.convert (V.map Bloom.hashes ks)
276+
!khs = V.convert (V.map (Bloom.hashesWithSalt bloomSalt) ks)
268277
in khs `seq` ()
269278

270279
-- | This gives us a combined cost of calculating the series of keys, their
@@ -273,7 +282,7 @@ benchMakeHashes !_bs !ks =
273282
benchElemHashes :: Vector (Bloom SerialisedKey) -> BatchBench
274283
benchElemHashes !bs !ks =
275284
let khs :: VP.Vector (Bloom.Hashes SerialisedKey)
276-
!khs = V.convert (V.map Bloom.hashes ks)
285+
!khs = V.convert (V.map (Bloom.hashesWithSalt bloomSalt) ks)
277286
in V.foldl'
278287
(\_ b -> VP.foldl'
279288
(\_ kh -> Bloom.elemHashes b kh `seq` ())

0 commit comments

Comments
 (0)