WB is a disk based (sorted) associative-array 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:
- create, destroy, open and close disk-files and associative
arrays;
- insert, delete, retrieve, find next, and find previous (with
respect to dictionary order of keys); and
- The atomic `put' and `rem' operations
allow associations to be used for process mutexs.
- apply functions, delete, or modify values over a range of
consecutive key values.
The (database) disk files interoperate between the various language
libraries. The interface to the SCM Scheme
implementation supports longer data values and SLIB
relational databases.
The WB implementation has a file size limit of 232 * block
size (default 2048.B) = 243 bytes
(8796.GB). WB routinely runs with databases of several
hundred Megabytes. 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. A structure checking and
garbage collecting program and a viewer are provided. Compiled, WB
occupies approximately 66.kB.
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 is now a GNU package.
- WB license is now LGPLv3.
- Documentation changed to GNU Free Documentation License.
- wb-discuss email group
http://lists.gnu.org/mailman/listinfo/wb-discuss
- wbsys.h (max, min): #define only if not #defined.
Ported to VC++2005 conditioned on #ifdef _MSC_VER.
Supplied prototype for ent_make_ent().
Conditionalized #include for MSVC++2005.
- java/Wbdefs.java, java/Blkio.java, java/Del.java,
java/Ents.java, java/Handle.java, java/Prev.java, java/Scan.java,
java/Segs.java, java/Stats.java java/Test.java, java/Blink.java,
java/Blk.java, java/Db.java, java/Example.java, java/Seg.java:
Removed unused static imports.
- wbdefs.scm, del.scm, ents.scm, handle.scm, prev.scm, scan.scm,
segs.scm, stats.scm, blink.scm, blkio.scm: Removed unused
java:import classes.
- java/Makefile (JAVAC): New versions of JDK require
"javac -source 5" in order to allow static imports.
- Makefile (temp/wb): Include csharp/Wb.dll and test files.
Quick Start
Documentation
WB Development
Related Software
- SLIB Scheme Library
- SCM Scheme Implementation
Miscellany
- FTP Links to WB and related
software from this site and mirrors.
- htmls.zip, a collection of these html
documentation files (600.kB)
Copyright © 1999, 2000, 2001, 2002, 2003, 2005, 2006,
2007, 2008 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!
|