boltdb/bolt — pull request #3 by benbjohnson (2014-01-31 03:26:05+00:00)
Title: Spill to dirty pages, write to disk

@snormore There's a bunch of changes in this PR but the biggest thing is that it'll actually create a bucket and read it back out in a separate transaction! Woohoo! Small victories. :)

I also simplified the bucket meta storage (called `sys` in the code). It was a real bucket that required a cursor to traverse but that was a pain in the ass. Most of the time there will be a relateivly small number of buckets so we don't need to optimize for a huge number by using a B+tree. There's now a page type called `p_sys` that just stores a list of buckets. Easy peasy. It's not very optimized right now but we can improve that later.

Next up is reading and writing data in a bucket. It's partially there but I need to test it and clean it up. Also, there's no support for spilling buckets to pages. I can explain everything in more detail tomorrow.