Fact-checked by Grok 2 weeks ago

Berkeley DB

Berkeley DB is an open-source, embeddable key-value database library that provides scalable, high-performance, and transaction-protected data management services directly integrated into applications, supporting access methods such as B+trees, hashing, and queues without requiring a separate . Originally developed in the early 1990s at the , as a unified replacement for existing in-memory and on-disk hashing systems, Berkeley DB's first general release occurred in 1991 and was included in the 4.4BSD UNIX distribution in 1992. In 1996, founders Margo Seltzer and Michael Olson established Sleepycat Software to provide commercial support and further development, leading to key enhancements like transactional support in version 2.0 (1996) and concurrent access in version 2.1 (1997). acquired Sleepycat Software in February 2006, integrating Berkeley DB into its embedded database portfolio alongside products like Oracle TimesTen and Oracle Lite, while maintaining its open-source status under a dual-licensing model. The library supports ACID-compliant transactions, concurrent read/write operations, and recovery from system or disk crashes, with a small footprint and the ability to manage databases up to 256 terabytes. It offers programmatic interfaces in languages including , , , , and Tcl, and has evolved into a family of products, such as Berkeley DB Java Edition (a pure Java implementation released in 2004) and Berkeley DB XML (for native XML storage). Dual-licensed with the open-source version under the (AGPL) since 2013, it emphasizes zero-administration local persistence and through replication. Widely adopted since its inception, Berkeley DB powers components in systems like , , LDAP servers, and , with over 200 million deployments reported by 2006 and ongoing use in enterprise applications for its reliability and efficiency (version 18.1.40 as of May 2020). Its design prioritizes embeddability and performance, making it a foundational technology for developers seeking robust without the overhead of full database management systems.

History and Development

Origins and Early Development

The development of Berkeley DB originated in 1990 at the , Berkeley's Computer Systems Research Group (CSRG), as part of broader efforts to enhance the Berkeley Software Distribution (BSD) of the UNIX operating system by replacing proprietary components with open alternatives. Specifically, Margo Seltzer and Ozan Yigit created an initial hashing package called "" to supersede the limitations of existing tools like dbm, ndbm, and hsearch, which suffered from issues such as fixed-size restrictions, lack of concurrency support, and incompatibility between in-memory and on-disk operations. This work employed techniques, including a "buddy-in-waiting" mechanism for handling overflows, to enable efficient key-value storage that could operate both in memory and on disk. Keith Bostic soon joined the effort, contributing to maintenance and expansion, while the project aligned with CSRG's goal of producing a freely redistributable, high-performance library for UNIX applications. The first general release of Berkeley DB occurred in , introducing an access-method-agnostic that supported basic (CRUD) operations through extensible for -value pairs, without initial transaction support to prioritize simplicity and embeddability in resource-constrained UNIX environments. This version also incorporated a B+tree access method (a variant known as B+link tree), providing ordered access alongside hashing for flexible organization, and was designed as a fast, lightweight replacement for Indexed Sequential Access Method (ISAM)-style interfaces prevalent in BSD utilities like vi(1) and sort(1). By focusing on core storage efficiency rather than advanced relational features, the library addressed the need for a compact, embeddable store that could handle variable-length s and values without requiring a separate . Subsequent releases through the mid-1990s built incrementally on this foundation, with version 1.85 integrated into the 4.4BSD UNIX distribution in , enhancing stability and compatibility for broader adoption in open-source BSD variants. Evolutions during this period included support for record numbers to enable positional access and handling of duplicate keys, improving utility for applications requiring sequential or multi-value lookups, while maintaining the emphasis on performance and minimal overhead. These early iterations remained focused on non-transactional operations, serving as a reliable backend for Unix tools and laying the groundwork for later expansions prompted by growing user demands in 1996.

Commercialization by Sleepycat Software

In 1996, Keith Bostic and Margo Seltzer, the original developers of Berkeley DB, founded Sleepycat Software to provide commercial support, enhancements, distribution, and maintenance for the database library, responding to growing user demand for beyond its academic origins. The company was established in , and quickly became profitable by leveraging the library's popularity in embedded applications. Sleepycat maintained the project's open-source roots while focusing on enterprise-grade features, ensuring Berkeley DB remained accessible for development. Sleepycat implemented a dual licensing model for Berkeley DB, distributing it under the Sleepycat Public License—a permissive compatible with the GNU General Public License (GPL) and Lesser GPL (LGPL)—for non-commercial and open-source use, alongside proprietary commercial licenses for closed-source products requiring support or avoiding copyleft obligations. This approach facilitated broad adoption in open-source ecosystems, such as mail servers like , which integrated Berkeley DB for persistent storage of configuration and alias data, while generating revenue through support contracts, consulting, and custom licensing for commercial deployments. By balancing community contributions with paid services, Sleepycat sustained development and fostered contributions from users, including bug fixes and feature requests submitted via public forums. Key enhancements during Sleepycat's tenure included the release of Berkeley DB 4.0 in 2002, which introduced replication capabilities for and distributed environments, enabling synchronous and asynchronous across multiple nodes to support fault-tolerant applications. Building on this, version 4.2 in 2003 added support for XML , laying the foundation for Berkeley DB XML (first released in alpha late 2002 and publicly in 2003), improving handling of structured documents in systems. These updates, combined with ongoing improvements in concurrency and performance, positioned Berkeley DB as a robust backend for early networked applications, including web infrastructure components that relied on its lightweight, transactional storage. Throughout this period, Sleepycat released regular open-source updates while reserving advanced options and priority support for enterprise customers.

Oracle Acquisition and Subsequent Changes

In February 2006, Oracle Corporation announced the acquisition of Sleepycat Software, the company behind Berkeley DB, for an undisclosed amount. This move integrated Sleepycat's team and technology into Oracle, effectively ending Sleepycat's independent operations while allowing Oracle to expand its embedded database offerings. The acquisition aimed to complement Oracle's existing products, such as Oracle TimesTen and Oracle Lite, by incorporating Berkeley DB's key-value storage capabilities. Following the acquisition, Oracle embedded Berkeley DB into several of its enterprise products, including Oracle Unified Directory and components of Oracle Fusion Middleware, where it serves as a foundational storage engine for high-availability applications. Berkeley DB Java Edition, originally developed by Sleepycat, was rebranded and further integrated into Oracle's NoSQL offerings, evolving into tools like to support transactional data stores in Java-based environments. These integrations enhanced Oracle's portfolio for and scenarios, providing developers with reliable local persistence without requiring separate database servers. The acquisition had mixed impacts on the open-source community. Oracle continued releasing Berkeley DB under its dual-licensing model initially, but innovation slowed compared to the Sleepycat era, with fewer major feature additions. In 2013, Oracle re-licensed the open-source version under the GNU Affero General Public License (AGPLv3), which required derivative works to be open-sourced even when accessed over a network, prompting concerns about compatibility with proprietary software and leading to community forks such as those maintained by independent developers. The last major release, version 18.1, arrived in June 2018, followed by patch updates through May 2020. As of 2025, Oracle maintains Berkeley DB primarily through security patches and critical updates as part of its broader product support policy, ensuring compatibility for existing deployments in enterprise settings. However, the focus has shifted toward 's cloud-native and alternatives, contributing to Berkeley DB's declining adoption in new projects, where lighter options like have gained popularity for embedded use cases.

Technical Architecture

Core Components and Storage Models

Berkeley DB is designed as an embeddable software library that integrates directly into applications, eliminating the need for a separate process and allowing it to run within the application's for optimal . This architecture leverages a primary API for core operations, with official bindings available for languages such as C++, , , , and Tcl, enabling seamless incorporation into diverse software environments. The library's lightweight footprint supports data management from small caches to terabyte-scale datasets, prioritizing efficiency and scalability without overhead. At its core, Berkeley DB employs four primary storage models, or access methods, each optimized for specific data access patterns and implemented as on-disk file formats. The model serves as the default, organizing data in a balanced, sorted that facilitates efficient range queries and with logarithmic for insertions, deletions, and lookups. The model uses extended for unordered datasets, excelling in constant-time random lookups and suitable for large-scale key-value stores where order is irrelevant. The model supports fixed-length records in a (first-in, first-out) manner, with record-level locking to enable high-concurrency append operations at the tail. Finally, the Recno model provides record-number-based access, building atop a B-tree for variable- or fixed-length records and optionally backing onto flat-text files for numbered sequential storage.
Storage ModelKey CharacteristicsUse Case Example
Sorted keys, balanced tree, supports duplicates and range scansIndexed data requiring order, such as directories or relational tables
Unordered keys, dynamic hashing, fast equality lookupsCache systems or large unordered key-value pairs
Fixed records, FIFO access, record-level lockingMessage queues or log appends with high write throughput
RecnoLogical record numbers, B-tree backed, text file supportSequential files or numbered entries with occasional updates
Databases in Berkeley DB are stored as single files on disk, with each file potentially containing multiple subdatabases (except for Queue, which requires a dedicated file). This structure supports variable-length keys and values up to 4 each, limited by the filesystem and page size, with large items spanning overflow pages to handle sizes exceeding one-quarter of a page. The format ensures portability across platforms, and partitioning allows splitting large or databases into multiple files for manageability. Configuration options allow fine-tuning for and resource use, including page sizes ranging from 512 bytes to 64 KB (powers of two), which influence / capacity and I/O —typically set to match the filesystem block size or application needs. Caching is managed through a pool, configurable via size limits to hold the working dataset plus overhead, often aiming for high cache hit rates to minimize disk access. Locking occurs at the page level for , , and Recno models or record level for , with options to enable concurrent access in multi-process or multi-threaded scenarios. Originally focused on single-process environments, Berkeley DB has evolved to support multi-threaded applications through thread-safe and flags like DB_THREAD, though it retains limitations such as grow-only where freed space is not returned to the filesystem, potentially leading to file bloat over time. Queue databases cannot share files with others, and Recno record numbers are capped at 32-bit unsigned integers (4,294,967,295), restricting very large sequential datasets.

APIs and Access Methods

Berkeley DB provides a primary C API for interacting with its storage engine, emphasizing portability across platforms and flexibility in database management. The core functions include db_create(), which allocates and initializes a DB structure serving as the handle for a Berkeley DB database, allowing subsequent configuration before opening. Following initialization, db_open() or its object-oriented equivalent DB->open() is used to open the database file, specifying parameters such as the access method, permissions, and flags for read-write or in-memory operations. Cursor-based operations, facilitated by DB->cursor() to create a DBC handle, enable efficient iteration over records using methods like DBC->c_get() for retrieving key-data pairs sequentially or by position, supporting traversal without loading the entire database into memory. The API supports multiple access methods, each optimized for specific data access patterns and built on underlying storage models like B+trees or hashing. The B-tree access method organizes data in a balanced, sorted tree structure, enabling efficient range queries via cursor operations and support for duplicate keys through configuration flags like DB_DUP, where multiple data items share the same key without altering the tree's logarithmic performance for insertions and searches. The Hash access method employs extended linear hashing to distribute keys across buckets, resolving collisions through chaining within overflow pages to maintain average O(1) lookup times for exact key matches, though it lacks inherent ordering for range scans. For sequential access scenarios, the Queue access method stores fixed-length records addressed by logical record numbers, optimized for append operations at the tail and deletion from the head using cursor consumes, ideal for FIFO workloads. Similarly, the Recno access method supports fixed- or variable-length records with logical numbering, optionally backing storage with flat text files for line-based access, facilitating numbered sequential reads and writes. To enhance portability, Berkeley DB offers official language bindings that wrap the C API while preserving its semantics. The Java binding, known as Berkeley DB Java Edition (JDB), provides a pure Java implementation with classes like Database and Cursor for direct integration in JVM environments. C++ bindings extend the C API with object-oriented interfaces such as Db and Dbc classes, supporting RAII for . Python bindings via the bsddb module (now berkeleydb in modern distributions) expose database handles and cursors through Pythonic objects, compatible with the standard library's shelve for persistent dictionaries. Perl bindings, provided as BerkeleyDB, mirror the C API for key-value operations in scripts. Community-maintained ports extend support to .NET and other languages, though official bindings prioritize C, C++, , , and for core reliability. An SQL interface, introduced in 2010 with version 11g Release 2, allows relational querying through a compatibility layer that translates SQL statements into native Berkeley DB calls, leveraging the parser for syntax processing while utilizing Berkeley DB's storage engine for data persistence and transactions. This enables standard SQL operations like SELECT, INSERT, and JOIN on Berkeley DB tables without altering the underlying key-value architecture. Error handling in the API relies on integer return codes, where 0 indicates success and non-zero values (e.g., DB_NOTFOUND or DB_LOCK_DEADLOCK) signal specific failures, allowing applications to check and respond programmatically. In C++, exceptions via the DbException class are thrown by default for serious errors, encapsulating the return code and message for easier handling. Environment and database flags, such as DB_RDONLY passed to DB->open(), tune behavior for read-only access, preventing modifications and reducing resource overhead.

Concurrency, Transactions, and Reliability Features

Berkeley DB employs a multi-granularity locking system that operates at database, page, and record levels to manage concurrent access, enabling fine-grained control over shared resources and minimizing contention among multiple threads or processes. This approach uses to ensure consistency, allowing multiple readers or a single writer per resource while supporting lock coupling in traversals for improved performance. Additionally, Berkeley DB incorporates (MVCC) to provide snapshot isolation, where readers do not block writers by accessing consistent historical versions of data, thus enhancing read scalability in high-concurrency environments. The system offers full ACID-compliant transactions, introduced in version 2.0 (1997), ensuring atomicity, , , and for database operations. Transactions support nesting, permitting subtransactions within a transaction that can be independently aborted without affecting the outer scope, along with savepoints for partial rollbacks in the SQL interface. detection is configurable, with the db_deadlock utility or automatic internal mechanisms resolving conflicts by aborting the transaction holding the fewest locks, the oldest, or the youngest based on policy, thereby maintaining system progress. Reliability is bolstered by write-ahead logging (WAL), where all transaction modifications are appended to log files before updating the database, guaranteeing recoverability even after crashes. Checkpointing periodically flushes dirty pages to disk and records a checkpoint in the logs, bounding recovery time by limiting the replay of uncommitted transactions during startup. Replication supports high availability through base replication, which copies entire databases, or log shipping, which transmits log records to replicas for asynchronous or synchronous synchronization. Hot backups via the db_hotbackup utility allow consistent snapshots without halting operations, while auto-commit mode wraps individual operations in implicit transactions for simplicity. Durability can be tuned with flags like DB_TXN_WRITE_NOSYNC, which writes logs but skips synchronous flushes to disk for higher throughput at the cost of potential data loss in crashes. Performance trade-offs arise in resolution, where aggressive policies like aborting the youngest may increase retry overhead but reduce wait times, and in sizing, where larger caches improve hit rates and throughput but demand more , influencing overall concurrency under load.

Usage and Applications

Adoption in

Berkeley DB has been widely integrated into various open-source projects, particularly those requiring efficient key-value storage for configuration and data management. In the mail transfer agent, it serves as the backend for the alias database, enabling fast lookups and management of aliases through its and access methods. Similarly, the DNS server utilizes Berkeley DB via its Dynamic Loadable Zones (DLZ) driver for storing and querying zone data in dynamic configurations, supporting transactional updates to DNS records. Early versions of the incorporated Berkeley DB through DBM modules such as mod_authn_dbm, which leverage it for and in server configurations. In desktop environments, Berkeley DB found adoption in configuration systems. GNOME's GConf framework implemented a Berkeley DB backend for storing user preferences, although it was not enabled by default and primarily used XML files. It was also embedded in programming language libraries, such as Python's shelve module, which relies on the bsddb interface to provide persistent dictionary-like storage backed by Berkeley DB. In Perl, the DB_File module provides direct access to Berkeley DB version 1.x functionality, allowing scripts to manipulate key-value databases with support for various access methods. Within database and mail server ecosystems, Berkeley DB powered key components of several prominent open-source tools. Up to and including 5.0, it functioned as a transactional storage engine, handling ACID-compliant operations for tables requiring high concurrency. The Postfix mail server supports Berkeley DB for lookup tables, such as virtual alias and domain mappings, facilitating scalable mail routing. Cyrus IMAP employed it as a database backend for storing metadata and annotations in versions prior to 3.0. Following Oracle's 2006 acquisition of Sleepycat Software and subsequent licensing changes in 2013—shifting non-GPL uses to the AGPL—many open-source projects began migrating to alternatives like due to compatibility concerns. For instance, IMAP dropped Berkeley DB support starting with version 3.0 in favor of lighter backends like skiplist. As of 2025, its adoption has declined significantly, with niche tools like continuing limited use of the BDB backend for legacy directories, though official recommendations now favor LMDB for new deployments, reflecting a broader shift away from Berkeley DB in modern .

Commercial and Embedded Deployments

Berkeley DB has been integrated into various products, particularly within 's ecosystem. For instance, it serves as the underlying storage engine for Oracle Berkeley DB XML, which enables native XML data management with support, and interfaces with for key-value and object access in applications. This embeddability allows seamless incorporation into Oracle Unified Directory and other directory services, providing high-performance scalability for large-scale deployments in and . In embedded and contexts, Berkeley DB's lightweight architecture makes it suitable for resource-constrained environments such as mobile devices and networking hardware. It has been deployed in OS for mobile applications, leveraging its support for modern mobile platforms like early smartphones. Similarly, incorporated Berkeley DB to replace an object-oriented database in its efforts, resulting in improved speed, reliability, and cost savings of approximately $50,000 per CPU. These deployments highlight its role in routers, gateways, and other embedded systems from vendors like and Alcatel. For high-scale commercial applications, Berkeley DB supports efficient handling of large datasets, such as millions of records, through its concurrent access methods and ACID-compliant transactions. Benchmarks demonstrate throughput exceeding 1 million single-record reads per second on systems, implying sub-millisecond average latencies for in-memory operations, which is advantageous for low-latency key-value needs in financial and web applications. Its embeddability reduces administrative overhead compared to client-server databases, enabling direct linkage into applications for faster data access and recovery via . As of 2025, Berkeley DB continues to persist in legacy enterprise and embedded systems, particularly where reliability and transaction support are critical. However, in newer designs, it is often replaced by alternatives like and , optimized for modern SSDs and higher write throughputs in distributed environments.

Original Open-Source Licensing

Berkeley DB was initially released in 1991 by researchers Margo Seltzer and Michael Olson at the , as part of efforts to replace legacy Unix database libraries like dbm and ndbm with a more robust implementation. The software was distributed under a permissive license akin to the 3-clause BSD license, placing it in the for practical purposes and allowing free use, modification, and redistribution in source and binary forms without royalties or fees. This early licensing framework, tied to the UC Berkeley copyright, emphasized open access to encourage academic and developer adoption, and it facilitated inclusion in the 4.4BSD release in 1992 as version 1.85. In 1996, Seltzer and Olson founded Sleepycat Software to commercialize and advance Berkeley DB, introducing a dual-licensing model that persisted through 2006. Under this approach, the open-source variant was governed by the Sleepycat Public License (SPL), an OSI-approved copyleft license designed specifically for library software. The SPL permitted redistribution and use in source or binary forms with or without modifications, provided that copyright notices, the original license terms, and a disclaimer of warranty were retained. Notably, it disclaimed all warranties, including implied warranties of merchantability and fitness for a particular purpose, and prohibited the use of Sleepycat's or contributors' names for endorsement without permission. Unlike the GPL, the SPL allowed static and dynamic linking into applications without requiring the entire application to be open-sourced, though it mandated that recipients of distributed binaries receive the complete source code (or a means to obtain it at no more than nominal cost) for the Berkeley DB components. The commercial license option, available separately from Sleepycat, enabled proprietary applications to embed Berkeley DB without the SPL's source disclosure requirements, targeting enterprises needing closed-source deployments. This dual structure, formalized in releases like version 4.4 around , balanced open-source principles with sustainability by generating from and proprietary use while keeping the core codebase publicly accessible. The SPL's compatibility with the GPL—through its library-focused —further allowed integration into projects, often treated similarly to the LGPL for embedding scenarios. The permissive yet structured original licensing significantly boosted Berkeley DB's adoption, with source code availability enabling community-driven ports to numerous platforms and contributions that enhanced features like concurrency and transactions. By mid-1999, as detailed in contemporary analyses, the model had already supported widespread use in open-source ecosystems without compromising commercial viability. Following Oracle's 2006 acquisition of Sleepycat, the licensing evolved, but the pre-acquisition framework laid the groundwork for Berkeley DB's enduring role as an .

Oracle's Modifications and Name Usage Controversies

Following the 2006 acquisition of Sleepycat Software by , Berkeley DB retained its dual-licensing model, offering an open-source option under the Sleepycat Public License (a similar to the LGPL)—and a separate commercial for proprietary use and redistribution. This structure allowed free use in open-source projects while enabling commercial customers to embed Berkeley DB in closed-source applications without source code disclosure requirements. Oracle's use of the "Berkeley DB" name has led to some , as it applies to multiple related but distinct products: the core C-based library (the primary focus of this article), Berkeley DB Java Edition (a pure implementation), and Berkeley DB XML (a C++-based service that incorporates elements of the core library). This naming convention can complicate licensing and compatibility assessments for developers selecting the appropriate variant. In June 2013, with the release of Berkeley DB version 12.1.6.0 (corresponding to internal version 6.0.20), Oracle shifted the open-source license to the GNU Affero General Public License (AGPL) version 3, introducing stricter copyleft terms. The AGPL mandates that if Berkeley DB is modified and used to provide services over a network, the complete source code of those modifications must be made available to users, effectively creating a "viral" licensing obligation for networked deployments—a significant departure from the prior copyleft terms of the SPL. This change sparked controversy within the open-source community, with critics viewing it as a betrayal of the original permissive ethos, potentially discouraging adoption in non-GPL-compatible projects and pressuring users toward Oracle's commercial offerings. Despite the backlash, existing users with prior licenses remained unaffected, and Oracle maintained that the update aligned with evolving open-source norms while closing loopholes for proprietary exploitation. The shift contributed to reduced adoption in some distributions, such as Debian, which began phasing out AGPL-licensed Berkeley DB in favor of alternatives like LMDB. The license change also prompted the creation of community forks to preserve the pre-AGPL Sleepycat licensing. Notable examples include a fork maintained by based on the version for internal use, and the zvelo/BerkeleyDB project, a community-sponsored effort providing ongoing development and patches under the original SPL. These forks allow continued use in environments incompatible with AGPL without commercial licensing. Under the commercial license, imposes restrictions on redistribution, requiring a paid subscription for embedding Berkeley DB in products distributed to third parties, along with to support, updates, and . This model provides assurance but limits free use compared to the pre-acquisition , encouraging enterprises to opt for subscriptions for compliance and reliability. As of November 2025, Berkeley DB continues under this dual framework: the AGPL for open-source distributions and a commercial license for proprietary needs, with the latest open-source release being version 18.1.40 (May 2020) and commercial support available through subscriptions. promotes migration to its —built on Berkeley DB Java Edition—as a scalable alternative for modern distributed applications, offering tools to ease transitions while phasing emphasis on legacy embedded use cases.

References

  1. [1]
    Oracle Berkeley DB
    Berkeley DB is a family of embedded key-value database libraries providing scalable high-performance data management services to applications.
  2. [2]
    What is Berkeley DB?
    Berkeley DB is an Open Source embedded database library that provides scalable, high-performance, transaction-protected data management services to applications ...
  3. [3]
    None
    ### Summary of Berkeley DB
  4. [4]
    The Architecture of Open Source Applications (Volume 1)Berkeley DB
    The subsequent history of Berkeley DB is a simpler and more traditional timeline: Berkeley DB 2.0 (1997) introduced transactions to Berkeley DB; Berkeley DB ...
  5. [5]
    A Conversation with Margo Seltzer and Mike Olson - ACM Queue
    Nov 18, 2021 · Kirk McKusick sat down with Margo Seltzer and Mike Olson to discuss the history of Berkeley DB, for which they won the ACM Software System Award in 2021.
  6. [6]
    Oracle Buys Open Source Software Company Sleepycat
    Oracle today announced that it has added Berkeley DB to its embedded database product line which includes Oracle Lite for mobile devices and Oracle TimesTen.
  7. [7]
    Chapter 1. Introduction to Berkeley DB Java Edition
    Welcome to Berkeley DB Java Edition (JE). JE is a general-purpose, transaction-protected, embedded database written in 100% Java (JE makes no JNI calls).
  8. [8]
    Chapter 1. Introduction to Berkeley DB XML
    Berkeley DB XML (BDB XML) is a programmatic toolkit specifically designed to store and manage XML data in its native format. BDB XML is built on top of the ...<|control11|><|separator|>
  9. [9]
    [PDF] Unleash High Availability Applications with Berkeley DB - Oracle
    Berkeley DB High Availability (BDB-HA) is a replicated, embedded database management system designed to provide applications fast, reliable, and scalable data ...
  10. [10]
    [PDF] Oracle Berkeley DB: Performance Metrics and Benchmarks
    Oracle Berkeley DB is a database engine designed for any application requiring efficient and robust embedded data storage. Berkeley DB is a complete data ...
  11. [11]
    [PDF] A New Hashing Package for UNIX - seltzer.com
    This hashing package is one access method which is part of a generic database access package being developed at the University of California,. Berkeley. It ...
  12. [12]
    Sleepycat Software - Crunchbase Company Profile & Funding
    The company was founded in 1996 and is based in Lincoln, Massachusetts with additional offices in California and the United Kingdom.
  13. [13]
    [PDF] Overview and Frequently Asked Questions - Oracle
    Berkeley DB is added to the Oracle product line through the acquisition of Sleepycat Software. Oracle's portfolio of embedded database technologies provide.<|control11|><|separator|>
  14. [14]
    Using Berkeley DB with Sendmail
    If you are attempting to use Berkeley DB with Sendmail 8.8.X, you must use Berkeley DB version 1.85 (see the Sleepycat Software web site's historic releases of ...Missing: applications | Show results with:applications
  15. [15]
    Sleepycat Announces the Release of Berkeley DB 4.0 - OSnews
    Feb 5, 2002 · Version 4.0 delivers new services and significant performance enhancements for high-end mission critical applications. Berkeley DB 4.0 provides ...
  16. [16]
    Sleepycat Upgrades Berkeley DB - eWeek
    May 6, 2003 · Berkeley DB 4.2 rolls up recent bug and scalability fixes and also provides better performance on multiprocessor boxes, officials said. The ...
  17. [17]
    [PDF] Berkeley DB Embedded in Oracle Unified Directory and Oracle ...
    Oracle Berkeley DB is fully embedded in our directory solution. This frees directory administrators from tasks related to using an external database.
  18. [18]
    13 Oracle Application Specific Technology Products
    Berkeley DB Java Edition—High Availability for Oracle Applications. Berkeley DB Java Edition—Transactional Data Store for Oracle Applications. These limited ...
  19. [19]
    Oracle Berkeley DB SQL API
    Oracle Berkeley DB has, for over 15 years, focused on unstructured transactional key/value data storage. Its key/value-based API is flexible enough to support ...
  20. [20]
    The history of Berkeley DB | Hacker News
    Nov 20, 2021 · We used BDB at Amazon way back in the beginning days. It was the first DB the company used, before Oracle and before any in-house systems were written.
  21. [21]
    Oracle switches Berkeley DB license - InfoWorld
    Jul 5, 2013 · Oracle had the right to change the BerkeleyDB license to AGPL, but many will view the switch as a betrayal of trust.Missing: 2006 forks Derby
  22. [22]
    Oracle Berkeley DB Downloads
    Oracle Berkeley DB Downloads. Sign up for Berkeley DB release announcements so we can alert you to future releases and other Berkeley DB product updates.
  23. [23]
    Oracle Berkeley DB Licensing Information
    Full-time, dedicated development team provides ongoing maintenance and development, documentation, testing; Single vendor to hold accountable. Berkeley DB ...
  24. [24]
    Critical Patch Updates, Security Alerts and Bulletins - Oracle
    Critical Patch Updates provide security patches for supported Oracle on-premises products. They are available to customers with valid support contracts.April 2025 · Oracle Linux Bulletin - April 2025 · January 2025 · Oracle Europe
  25. [25]
    Oracle Berkeley DB System Properties - DB-Engines
    Oracle Berkeley DB System Properties ; Current release, 18.1.40, May 2020 ; License info Commercial or Open Source, Open Source info commercial license available.
  26. [26]
    [PDF] Getting Started with Berkeley DB
    Apr 25, 2008 · Once you have made this decision, you must choose between either BTree or Hash, or. Queue or Recno. This decision is described next. Choosing ...
  27. [27]
    [PDF] Oracle Berkeley DB Programmer's Reference Guide 11g Release 2
    Mar 30, 2010 · Cheap, powerful computing and networking have created countless new applications that could not have existed a decade ago.Missing: UC 1986
  28. [28]
    Oracle Berkeley DB Storage Layer
    Oracle Berkeley DB is an small and efficient software library, providing the basic building blocks for any data storage solution. Incorporating Berkeley DB ...
  29. [29]
    db_create
    The db_create() function creates a DB structure that is the handle for a Berkeley DB database. This function allocates memory for the structure.Missing: documentation | Show results with:documentation
  30. [30]
    DB->open()
    The DB->open() method opens the database represented by the file and database. The currently supported Berkeley DB file formats (or access methods) are Btree, ...Missing: db_open | Show results with:db_open
  31. [31]
    Btree access method specific configuration
    The user can specify the sort order for the Btree by using the DB->set_bt_compare() method. Sort routines are passed pointers to keys as arguments. The keys are ...
  32. [32]
    [PDF] Oracle Berkeley DB Programmer's Reference Guide 12c Release 1
    Jul 26, 2017 · Berkeley DB currently offers five access methods: Btree, Hash, Heap, Queue and Recno. ... The Berkeley DB Btree, Queue and Recno access methods ...
  33. [33]
    Chapter 2.  Access Method Configuration
    ### Summary of Access Method Configuration
  34. [34]
    Berkeley DB C++ API Reference
    Jul 26, 2017 · Berkeley DB C++ API Reference ; Db::get_dbname(), Return the file and database name ; Db::get_multiple(), Return if the database handle references ...
  35. [35]
    berkeleydb - PyPI
    berkeleydb 18.1.15. pip install berkeleydb. Copy PIP instructions. Latest version. Released: Oct 12, 2025. Python bindings for Oracle Berkeley DB. Navigation.
  36. [36]
    Error returns to applications
    Whenever a Berkeley DB function returns DB_LOCK_DEADLOCK, the enclosing transaction should be aborted. Any Berkeley DB function that attempts to acquire locks ...Missing: exceptions DB_RDONLY
  37. [37]
    Chapter 6. The DbException Class
    By default, the Berkeley DB C++ API is configured to throw an exception whenever a serious error occurs. This generally allows for cleaner logic for transaction ...
  38. [38]
    Locking granularity
    In the Btree access method, Berkeley DB uses a technique called lock coupling to improve concurrency. The traversal of a Btree requires reading a page, ...
  39. [39]
    Using Multiversion Concurrency Control
    Multiversion Concurrency Control (MVCC) enables snapshot isolation. Snapshot isolation means that whenever a transaction would take a read lock on a page, ...
  40. [40]
    Degrees of isolation
    Snapshot isolation also guarantees repeatable reads, but avoids read locks by using multiversion concurrency control (MVCC). This makes update operations more ...
  41. [41]
    [PDF] Oracle Berkeley Database 18.1
    • Recoverable ACID transactions with multiple isolation levels (including. MVCC), nested transactions and long running transactions.. • Replication for ...Missing: WAL | Show results with:WAL
  42. [42]
    [PDF] Berkeley DB - USENIX
    At roughly the same time, Seltzer and. Olson developed a prototype transaction system based on Berkeley DB, called LIBTP [Selt92], but never released the code.Missing: 1986 | Show results with:1986
  43. [43]
    The Locking Subsystem
    Allow DB to internally detect deadlocks as they occur. To do this, you use EnvironmentConfig. · Use a dedicated thread or external process to perform deadlock ...
  44. [44]
    Berkeley DB FAQ - Oracle
    A Berkeley DB database is a single relational database table. Also you can consider key/value pairs each as a single row in a table.Missing: acquisition | Show results with:acquisition
  45. [45]
    [PDF] Berkeley DB
    writing the log before the data pages — is called write-ahead logging. At any time during the transaction, the application can commit, making ...
  46. [46]
    Recovery Procedures
    ### Summary of Recovery Procedures, Auto-Commit, and Durability Options
  47. [47]
    [PDF] Oracle Berkeley DB Getting Started with Transaction Processing for ...
    Feb 19, 2019 · Using Transactions with DB. Page v. Preface. This document describes how to use transactions with your Berkeley DB applications. It is intended ...
  48. [48]
    DB_ENV->set_flags()
    The DB_TXN_SNAPSHOT flag may be used to configure Berkeley DB at any time during the life of the application. DB_TXN_WRITE_NOSYNC. If set, Berkeley DB will ...
  49. [49]
    [PDF] Oracle Berkeley Database Products
    The Oracle Berkeley DB family of high performance, self-contained databases provides developers with a fast, transactional database solution with a track record ...
  50. [50]
    Chapter 26. Building Berkeley DB for S60
    Building Berkeley DB for S60 requires S60 SDK version 3 or above with Symbian V9.1 or above; the 3rd Edition FP1 SDK is recommended. The NOKIA OpenC plugin ...Missing: mobile | Show results with:mobile
  51. [51]
    [PDF] Embedded databases & Berkeley
    Dec 18, 2017 · Oracle Berkeley DB is tested and certified to compile and run on all modern operating systems including Solaris, Windows, Linux, Android, Mac.<|control11|><|separator|>
  52. [52]
    A Guide to Key-Value Databases | InfluxData
    What makes Berkeley DB unique is that it is an embedded key-value store, meaning that by default it didn't provide network access and was meant to be embedded ...Missing: low- | Show results with:low-
  53. [53]
    Sleepycat License | Software Package Data Exchange (SPDX)
    Copyright (c) 1990-1999 Sleepycat Software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted.Missing: Public | Show results with:Public
  54. [54]
    Sleepycat Perks Up Berkeley DB Database - eWeek
    Sleepycat Software Inc. has updated Berkeley DB, its flagship open-source developers database, with new replication features and efficiency improvements.
  55. [55]
  56. [56]
    Oracle Juices Up Berkeley DB – 2 - eWeek
    Oracle Berkeley DB Release 4.5 is generally available under the same dual license that Sleepycat had before the Oracle purchase. To wit: A no-cost open ...
  57. [57]
    Open Source License for Berkeley DB - Oracle
    describes the open source license for Berkeley DB. Starting with release 12.1.6.0.x, we have moved under the standard AGPL license.Missing: Current | Show results with:Current
  58. [58]
  59. [59]
    Oracle Quietly Switches BerkeleyDB To AGPL - Slashdot
    Jul 5, 2013 · 5.0 is pretty ancient. MySQL abandoned BDB as a backend in 2006, shortly after Oracle acquired BDB. They couldn't use vanilla BDB, it required ...
  60. [60]
    Berkeley DB Library Version 18.1.40 Change Log
    This is the changelog for Berkeley DB Release 18.1 (library version 18.1.40). Changes between version 18.1.32 and version 18.1.40.Missing: introduction | Show results with:introduction<|control11|><|separator|>
  61. [61]
    1 Introduction to Oracle NoSQL Database
    Oracle NoSQL Database uses Oracle Berkeley DB Java Edition as its underlying storage engine. For more information about Oracle Berkeley DB Java Edition, see ...
  62. [62]
    [PDF] Oracle NoSQL Database 21.1 Enterprise Edition (EE)
    May 20, 2021 · It offers a data abstraction layer that allows developers to migrate applications effortlessly from other databases to Oracle NoSQL Database. ...<|separator|>