provided by: 
Originally published at Internet.comSleepycat Software's Berkeley DB is an open source DB implementation specifically targeted to developers who wish to utilize DB functionality within their applications. The DB ships with multiple function call APIs that require no specific DB access language skills on the part of the developer (including SQL) for integration with their projects. APIs are available supporting operations such as record insertion and search as well as more complex functions including cursors, joins, and management of duplicate values for C/C++, Java, Perl, Tcl, Python, and others.
The source code is available in three primary packages: The Berkeley DB, Berkeley DB Java Edition, and the Berkeley DB XML. Developers can use the software freely within their projects provided their projects themselves are also distributed as open source; to use the DB in a non open-source application will require a license from the vendor.
Specific features of the DB include:
- Indexed and sequential retrieval (Btree, Queue, Recno, Hash)
- DB in-memory, on-disk, or both
- On-disk data encryption
- Full ACID compliance
- Support for nested transactions
- Table size up to 256 TB, and records up to 4 GB
The Berkeley DB is served with several feature sets, depending on implementation needs. The Berkeley DB Data Store is for use by one writer and multiple data readers; while the Concurrent Data Store supports multiple readers and writers. The Transactional Data Store adds transactional capabilities including fine-grained locking, group commit, and recovery from system or application failures. Finally, the Berkeley DB High Availability offering adds multi-node data storage and load balancing, along with the ability of individual applications to survive a node failure.
Primary differences between the Berkeley DB and the Berkeley DB Java Edition are their base architecture; with the Berkeley DB in ANSI C and the Java Edition written in pure Java. The vendor notes that the libraries are tightly integrated within their native environments, leading to some technical and structural differences as well; for example, Berkeley DB uses page based locking whereas the Java Edition stores all data and transaction information within a single set of log files and utilizes record level locking.
The Berkeley DB XML layers an XML storage management system on top of Berkeley DB. With it, XML is examined and indexed when inserted into the database; and data can be accessed and modified using XQuery. Berkeley DB XML is implemented in C++ as a layer on top of Berkeley DB.
New features of the latest Berkeley DB release include in-memory replication, client-to-client replication, delayed client synchronization, synchronization throttling, master election speed-ups, a hot backup utility, online Btree compaction and disk space reclamation, online abandoned lock removal, and automated recovery serialization.
Berkeley DB is available now. Visit the Sleepycat Software Web site for further information.Author: DatabaseJournal Staff
Read article at Internet.com site