Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 25 additions & 23 deletions console/executor_scans.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -366,27 +366,29 @@ void executor::scan_collisions() const
// TODO: expose filter type from hashhead to table.
///////////////////////////////////////////////////////////////////////////
constexpr size_t m = 32;
using bloom_t = bloom<m, 4>;
using sieve_t = sieve<m, 4>;
constexpr size_t k = floored_log2(m);
using bloom_t = bloom<m, k>;
////using sieve_t = sieve<m, 3>;
///////////////////////////////////////////////////////////////////////////

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

constexpr auto empty_sieve = unmask_right<sieve_t::type>(m);
std_vector<sieve_t::type> sieve_filter(point_buckets, empty_sieve);
size_t sieve_collisions{};
size_t sieve_subtotal{};
////constexpr auto empty_sieve = unmask_right<sieve_t::type>(m);
////std_vector<sieve_t::type> sieve_filter(point_buckets, empty_sieve);
////size_t sieve_collisions{};
////size_t sieve_subtotal{};

size_t coinbases{};
size_t window{};

while (!cancel_ && (++index <= query_.get_top_candidate()))
const auto top = query_.get_top_associated();
for (index = zero; index <= top && !cancel_; ++index)
{
++coinbases;
const header_link link{ possible_narrow_cast<hint>(index) };
const auto link = query_.to_candidate(index);
const auto transactions = query_.to_transactions(link);
for (const auto& transaction: transactions)
{
Expand All @@ -408,12 +410,12 @@ void executor::scan_collisions() const
bloom_collisions += coll;
bloom_subtotal += coll;

prev = sieve_filter.at(bucket);
next = sieve_t::screen(prev, entropy);
sieve_filter.at(bucket) = next;
coll = to_int(sieve_t::is_collision(prev, next));
sieve_collisions += coll;
sieve_subtotal += coll;
////prev = sieve_filter.at(bucket);
////next = sieve_t::screen(prev, entropy);
////sieve_filter.at(bucket) = next;
////coll = to_int(sieve_t::is_collision(prev, next));
////sieve_collisions += coll;
////sieve_subtotal += coll;

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

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

////sieve_subtotal = zero;
bloom_subtotal = zero;
sieve_subtotal = zero;
window = zero;
}
}
Expand All @@ -452,10 +454,10 @@ void executor::scan_collisions() const
bloom_spend_collisions % spends % coinbases %
(to_double(bloom_spend_collisions) / spends));

const auto sieve_spend_collisions = sieve_collisions - coinbases;
logger(format("sieve: %1% fps of %2% spends (ex %3% cbs) rate %4%") %
sieve_spend_collisions % spends % coinbases %
(to_double(sieve_spend_collisions) / spends));
////const auto sieve_spend_collisions = sieve_collisions - coinbases;
////logger(format("sieve: %1% fps of %2% spends (ex %3% cbs) rate %4%") %
//// sieve_spend_collisions % spends % coinbases %
//// (to_double(sieve_spend_collisions) / spends));

for (const auto& entry: dump(spend))
logger(format("point: %1% frequency: %2%") %
Expand Down
Loading