Oracle Updates Berkeley DB with New APIs, Performance Boost, .NET Support
- By John K. Waters
In a bid to attract more developers to its Berkeley DB open source embeddable database, Oracle this week released two upgraded versions with new APIs for simplifying application development and, for the first time, support for Microsoft's C# and .NET Framework.
The core Berkeley DB is an embeddable database for un-typed data in key/value data structures. Essentially, it's a lower-level database for data that's not inherently relational in structure. In addition to adding support for C# and .NET, the upgraded database has a new utility that auto-generates Berkeley DB application code based on SQL. It also integrates with the C++ Standard Template Library and multi-process support in Oracle's Replication Manager API aimed at simplifying development of highly available (HA) applications.
The other version, Berkeley DB XML, is built on top of the Berkeley DB system. It provides XQuery-based access to documents stored in containers and indexed based on their content. It includes a document parser, an XML indexer, and an XQuery engine. Among other enhancements, the 2.5 release adds support for external functions that allow developers to extend the behavior of their XQuery statements in the C++, Java, or Python APIs. And because it's built on top of Berkeley DB, it inherits all of the enhancements to that system and the APIs.
Oracle acquired the Berkeley DB technology with its 2006 purchase of Sleepycat Software, a company founded by the developers of the database. Since it acquired the company, Oracle has maintained a Berkeley DB family of products that includes the core Berkeley DB and XML version, plus the Berkeley DB Java Edition.
Berkeley DB is used primarily by developers, who insert it into software applications, hardware devices, and equipment. "It's essentially invisible to the end user," said Rex Wang, Oracle's vice president of product marketing who came over to the company from Sleepycat. "And it doesn't require a DBA, because the database is managed internally within the application."
Developers who use Berkeley DB have two licensing options: one commercial and one open source. This dual-licensing model--that's one product distributed under two different sets of terms and conditions--has remained in place since Oracle bought Sleepycat, Wang said. "Sleepycat was an open-source company, and Oracle hasn't really changed the model at all," he said.
Berkeley DB has long supported a wide range of programming languages, from C and C++ to Python, but this release targets Windows developers for the first time with support for C# and .NET. "We're definitely going after the Windows developers," said Wang. "We've heard requests from that community for this support for a long time now. It's a large community of developers, of course, and we were just finally ready to support them."
Berkeley DB has been around since the early 1990s. It's in virtually every version of the Linux operating system, BSD Unix, and Open LDAP. "I'd say it's ubiquitous," said Wang. "If it seems as though not that many people have heard of it, that's because it's embedded; they're not supposed to know about it. It's supposed to be invisible, except to developers."
Both the Berkeley DB 4.8 and Berkeley DB XML 2.5 releases also ramp up performance and scalability, Wang said. The new version of Berkeley DB is designed to perform better on multi-threaded or multi-processed applications. It adds enhanced locking/latching code, multiple table partitions, a bulk load/delete API, and new B-tree compression capability. Berkeley DB XML 2.5 gets the benefit of the BDB 4.8 performance enhancements, plus a smaller on-disk footprint for XML containers.
"The Berkeley DB is different from a regular type of Oracle database," Wang said. "And it gives the company access to a completely different market. It's for people who are developing software that doesn't require administration, where the data format is not neatly organized into tables, rows, and columns--which, if you think about it, is most of the data in the world."
The Berkeley DB team at Oracle is currently working on an upgrade of Berkeley DB Java Edition, according to Wang.