Thanks for the writeup, Phil. I had the same question as rf, wondering how exactly you implemented the small number of big allocations. Is any of that old exploration available via github? Did it boil down to a string or struct where you specified a very large capacity?
On another note, have you looked at badger (https://github.com/dgraph-io/badger)? The dgraph folks (also working on graph DB) had tried BoltDB (as have I with my DVID system, http://dvid.io), but we both wound up using the more proven C++ leveldb implementations and Cgo. The dgraph team, though, wrote their own system using the WiscKey paper as an inspiration — essentially trading off some sequential access speed for kv pairs in favor of much faster random access speed. I’m look at their badger system now.