Operating systems

cola is a C implementation of the COLA structure described in the paper "Cache Oblivious Streaming B-Trees" by Bender, Farach-Colton, et al. This algorithm is a drop-in replacement for B-Tree databases/indexes which performs faster on spinning disks than B-Trees do on SSD. It's asymptotically optimal in terms of data transfers to and from disk. For example, random key inserts are turned into linear sequential writes while maintaining the property which queries always require, at most, precisely log N blocks read sequentially (but not contiguously) from disk (or half that, on average).

The stx::CBTreeDB is a collection of C++ classes with which read-only key-value database files can be created and read. A database efficiently maps a large number of integral fixed-length keys to opaque binary value blobs. Variable-length or duplicate keys are currently not supported. Keys are organized into a highly compact index structure, which is very similar to a B-tree and allows very fast key lookups. Both keys and values are stored in order and thus queries in a local proximity can benefit from caching effects. All applications mapping a large number of constant, integral keys to string or data blobs can benefit from this library.