New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
reduce error tightening ratio to 0.499 #53
Conversation
Didn't we have some issues (perhaps separately resolved) where setting it lower was problematic? |
I don't think we had any issues with lower numbers. It was originally at My mention of |
ready for re-review @mreiferson @jphines an error tightening ratio of 0.5 combined with a capacity of 100,000 and a target error rate of 0.05 just happened to trigger a rare bug when re-opening a scaling bloom, by having one of the counting blooms start at or within 12 bytes just before a memory page boundary |
holy crap that sounds like a strange bug to track down /me runs back to Python |
@mccutchen not really; the bug is simply that the code was reading just past the part of the file it memory-mapped, but was usually "ok" because the OS needs to map an entire page at a time, so had usually mapped past that point also. I'm just lucky that I happened to run into it |
squash into 2 |
when mapping to an existing file, we don't get access to those numbers until after new_counting_bloom_from_scale() calls bitmap_resize() this went unnoticed for so long because the os mmaps the file a page at a time, so it almost always maps a bit more of the file than was requested
necessary for scaling bloom's false-positive rate to not increase well beyond the desired error rate when multiple levels are full
squashed |
reduce error tightening ratio to 0.499
necessary for scaling bloom's false-positive rate to not increase
well beyond the desired error rate when multiple levels are full
setting it at exactly 0.5 caused a segfault I don't understand