Skip to content

Commit 5255f06

Browse files
authored
Merge pull request #755 from evoskuil/master
Match database bloom k default of log2(m), update collision scans.
2 parents 625f08e + 93c43d8 commit 5255f06

File tree

1 file changed

+25
-23
lines changed

1 file changed

+25
-23
lines changed

console/executor_scans.cpp

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -366,27 +366,29 @@ void executor::scan_collisions() const
366366
// TODO: expose filter type from hashhead to table.
367367
///////////////////////////////////////////////////////////////////////////
368368
constexpr size_t m = 32;
369-
using bloom_t = bloom<m, 4>;
370-
using sieve_t = sieve<m, 4>;
369+
constexpr size_t k = floored_log2(m);
370+
using bloom_t = bloom<m, k>;
371+
////using sieve_t = sieve<m, 3>;
371372
///////////////////////////////////////////////////////////////////////////
372373

373374
constexpr auto empty_bloom = unmask_right<bloom_t::type>(m);
374375
std_vector<bloom_t::type> bloom_filter(point_buckets, empty_bloom);
375376
size_t bloom_collisions{};
376377
size_t bloom_subtotal{};
377378

378-
constexpr auto empty_sieve = unmask_right<sieve_t::type>(m);
379-
std_vector<sieve_t::type> sieve_filter(point_buckets, empty_sieve);
380-
size_t sieve_collisions{};
381-
size_t sieve_subtotal{};
379+
////constexpr auto empty_sieve = unmask_right<sieve_t::type>(m);
380+
////std_vector<sieve_t::type> sieve_filter(point_buckets, empty_sieve);
381+
////size_t sieve_collisions{};
382+
////size_t sieve_subtotal{};
382383

383384
size_t coinbases{};
384385
size_t window{};
385386

386-
while (!cancel_ && (++index <= query_.get_top_candidate()))
387+
const auto top = query_.get_top_associated();
388+
for (index = zero; index <= top && !cancel_; ++index)
387389
{
388390
++coinbases;
389-
const header_link link{ possible_narrow_cast<hint>(index) };
391+
const auto link = query_.to_candidate(index);
390392
const auto transactions = query_.to_transactions(link);
391393
for (const auto& transaction: transactions)
392394
{
@@ -408,12 +410,12 @@ void executor::scan_collisions() const
408410
bloom_collisions += coll;
409411
bloom_subtotal += coll;
410412

411-
prev = sieve_filter.at(bucket);
412-
next = sieve_t::screen(prev, entropy);
413-
sieve_filter.at(bucket) = next;
414-
coll = to_int(sieve_t::is_collision(prev, next));
415-
sieve_collisions += coll;
416-
sieve_subtotal += coll;
413+
////prev = sieve_filter.at(bucket);
414+
////next = sieve_t::screen(prev, entropy);
415+
////sieve_filter.at(bucket) = next;
416+
////coll = to_int(sieve_t::is_collision(prev, next));
417+
////sieve_collisions += coll;
418+
////sieve_subtotal += coll;
417419

418420
if (is_zero(inserts % put_frequency))
419421
{
@@ -422,13 +424,13 @@ void executor::scan_collisions() const
422424
(to_double(bloom_subtotal) / window) %
423425
duration_cast<seconds>(logger::now() - start).count());
424426

425-
logger(format("point: %1% sieve fps %2% rate %3$.7f in %4% secs.") %
426-
inserts% sieve_collisions %
427-
(to_double(sieve_subtotal) / window) %
428-
duration_cast<seconds>(logger::now() - start).count());
427+
////logger(format("point: %1% sieve fps %2% rate %3$.7f in %4% secs.") %
428+
//// inserts % sieve_collisions %
429+
//// (to_double(sieve_subtotal) / window) %
430+
//// duration_cast<seconds>(logger::now() - start).count());
429431

432+
////sieve_subtotal = zero;
430433
bloom_subtotal = zero;
431-
sieve_subtotal = zero;
432434
window = zero;
433435
}
434436
}
@@ -452,10 +454,10 @@ void executor::scan_collisions() const
452454
bloom_spend_collisions % spends % coinbases %
453455
(to_double(bloom_spend_collisions) / spends));
454456

455-
const auto sieve_spend_collisions = sieve_collisions - coinbases;
456-
logger(format("sieve: %1% fps of %2% spends (ex %3% cbs) rate %4%") %
457-
sieve_spend_collisions % spends % coinbases %
458-
(to_double(sieve_spend_collisions) / spends));
457+
////const auto sieve_spend_collisions = sieve_collisions - coinbases;
458+
////logger(format("sieve: %1% fps of %2% spends (ex %3% cbs) rate %4%") %
459+
//// sieve_spend_collisions % spends % coinbases %
460+
//// (to_double(sieve_spend_collisions) / spends));
459461

460462
for (const auto& entry: dump(spend))
461463
logger(format("point: %1% frequency: %2%") %

0 commit comments

Comments
 (0)