Tree Root http://people.csail.mit.edu/jaffer/WB

The WB B-Tree Database for SCM, Java, C#, C, and C++

Current Version Released Terms
2b4 2020-02-16 LGPL

WB is a disk based (sorted) associative-array database package providing C, SCM, Java, and C# libraries. These associative arrays consist of variable length (0.B to 255.B) keys and values. Functions are provided to:

WB is thread safe (so long as HAND structures are not shared between threads). The `put' and `rem' operations allow associations to be used for thread mutexs.

The WB implementation has a file size limit of 232 * block size (default 2048.B) = 243 bytes (8796.GB). WB does its own memory and disk management and maintains a RAM cache of recently used blocks. Multiple associative arrays can reside in one disk file. Simultaneous access to multiple disk files is supported.

The (database) disk files interoperate between the various language platforms. The interface to the SCM Scheme implementation supports longer data values and SLIB relational databases.

A structure checking and garbage collecting program and a block viewer are provided.

WB is lightweight; compiled on x64 GNU/Linux, the wb-2b4 library sizes are:

WB libraryfile sizefile type
java/wb.jar51 kBJava archive (zipped)
csharp/Wb.dll63 kBPE for MS Windows (DLL) Mono/.Net assembly
c/libwb.so81 kBELF 64-bit LSB shared object, stripped
91 kBELF 64-bit LSB shared object, not stripped
c/libwb.a131 kBbinary 64-bit library archive
c/wbscm.so113 kBELF 64-bit LSB shared object DLL for SCM, not stripped

WB is implemented using a variant of B-tree structure. B-trees give slower access than hashing but are dynamic and provide an efficient determination of successor and predecessor keys. All operations are O(log(n)) in the size of the database. B-trees are commonly used by database systems for implementing index structures. B-trees are optimized for using the minimum number of disk operations for large data structures. Prefix and suffix key compression are used for storage efficiency in WB.

WB, SLIB, and SCM are GNU packages.


News

wb-2b4 is a minor revision. Details at http://cvs.savannah.gnu.org/viewvc/*checkout*/wb/wb/ChangeLog

Quick Start

Documentation

WB Development

Related Software

Miscellany

Copyright © 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010, 2013, 2015, 2020 Aubrey Jaffer

I am a guest and not a member of the MIT Computer Science and Artificial Intelligence Laboratory.  My actions and comments do not reflect in any way on MIT.
agj @ alum.mit.edu
Go Figure!