Just the beginning of us open-sourcing the many hours of fine-tunings we have done for efficiently accessing FoundationDB at Wavefront. For those who are using Java, this batch includes our BatchReader and CollectKeyValuesUntilDone helper classes.
BatchReader takes a database and runs just one transaction (meaning just one read version is obtained) for all gets and scans against it, automatically managing transaction lifecycle and enforcing a max TTL. The code is pretty self-explanatory right now but more documentation and tests are expected in coming days.
CollectKeyValuesUntilDone is for folks who don’t care about consistency in scans across large key ranges and just want to run a supplier, an accumulator, and a final transformer over essentially an infinite number of keys (assuming that the accumulator is doing sane things).
Hopefully, they inspire similar libraries for other languages too and this is certainly just the beginning. We’ll eventually be releasing this on sonatype but for now, it’s just the code.