This updates moves from kvlist to on-disk bisect format (https://github.com/krestenkrab/vbisect) which means that tree pages are not deserialised when read form disk. This improves performance of GETs by ~20% and improves top-level latencies significantly. CRC32 checks are now on the page level.
This commit changes the default bloom filter to be basho’s bloom, which is significantly more stable w.r.t. performance. The code can still read the old bloom filters; new files are written with the new filters. The default is controlled in src/hanoidb.hrl using the USE_EBLOOM macro.
plain_fsm must be started prior to hanoidb
bloom (from basho) uses a NIF implementation which may be faster and use less memory; test before use. The “old” bloom, a.k.a. “scalable bloom” is pure erlang, which also has nice properties. Note! Switching to ebloom changes the file format so the default is still to use ‘scalable bloom’.
plain_fsm documentation was wrong uwiger/plain_fsm#4, so now it should be able to send sys messages to hanoi.
This results in a minor "bloom add" performance gain of ~10%.