Version 0.10 of btree, my pure Python implementation of the Ohad Rodeh B-tree has just been released. From the NEWS file:

  • Storage of node reference counts is now more efficient.
  • NodeStoreDisk stores reference counts and nodes in files in a subdirectory of the directory root, which is an incompatible change, so trees made by earlier versions can't be used anymore. (That's what you get for using alpha level code. Obviously, once btree is declared to be ready for production, the on-disk data structures will be supported in future versions.)
  • Nodes that exist in only one tree are modified in place, rather than via copy-on-write. This is impure, but brings a big speed boost.
  • New test script: insert-remove-test. "make check" automatically runs it.
  • Many optimizations to NodeCodec and elsewhere, by Richard Braakman.

There's still a lot of room for optimization, but it's starting to look good.