Oracle Berkeley DB

Oracle Berkeley DB is the industry-leading open source, embeddable database engine that provides developers with fast, reliable, local persistence with zero administration. Oracle Berkeley DB is a library that links directly into your application. Your application makes simple function calls, rather than sending messages to a remote server, eliminating the performance penalty of client-server architectures. Oracle Berkeley DB eliminates the overhead of SQL query processing, enabling applications with predictable access patterns to run faster.

Berkeley DB delivers the same robust data storage features as traditional, relational database systems, such as ACID transactions and recovery; locking, multiple processes and multi-threading for high concurrency; hot and cold backup; and single-master replication for high availability applications. Berkeley DB can manage databases in memory, on disk or both. Berkeley DB is designed to run in a completely unattended fashion, so all runtime administration is programmatically controlled by the application, not by a human administrator. It has been designed to be simple, fast, small and reliable.

Berkeley DB supports replication over multiple systems, enabling applications to scale massively with low latency and provide fault tolerance for high availability solutions. This technique works by having all updates go to a designated master, which distributes changes automatically to a set of replicas. The read workload can be spread across the replicas, and new replicas can join the group at any time to scale the system. If any replica fails, the remaining replicas can take over for it. If the master fails, the application can call for an election or simply designate a new master. Once the new master has been chosen, all of the replicas synchronize with the new master and move forward with normal processing with no interruption in service.

Berkeley DB is very flexible and puts developers in control of many aspects of its behavior, which allows it to be used across a wide range of applications and as a replacement for custom, home-grown solutions. For example, developers can control how resources are allocated, the amount of memory dedicated to caching records, the on-disk storage structure used for individual tables, durability and isolation guarantees, and replication policies. It includes full source code for easier porting, integration, debugging and optimization.

Berkeley DB provides very fast, reliable and scalable persistence for applications that need to store data locally, run unattended without interruption, and access data in a predictable fashion.

Key Features


New in Berkeley DB Release 4.6
Increased Performance—more efficient mutex implementation, and faster hash access method
Increased Ease of Use—quick start tool for developers to generate schema and configuration, new features such as cache size adjustment during runtime, cache operation prioritization, and replica-private temporary databases
Increased Portability—additional support for Windows CE, S60, and BREW, and simple platform verification tools to ease porting
   

Data Storage

Berkeley DB stores data quickly and easily without the overhead found in other databases. Berkeley DB is a C library that runs in the same process as your application, avoiding the interprocess communication delays of using a remote database server. Shared caches keep the most active data in memory, avoiding costly disk access.

  • Local, in-process data storage
  • Schema-neutral, application native data format
  • Indexed and sequential retrieval (Btree, Queue, Recno, Hash)
  • Multiple processes per application and multiple threads per process
  • Fine grained and configurable locking for highly concurrent systems
  • Multi-version concurrency control (MVCC)
  • Support for secondary indexes
  • In-memory, on disk or both
  • Online Btree compaction
  • Online Btree disk space reclamation
  • Online abandoned lock removal
  • On disk data encryption (AES)
  • Records up to 4GB and tables up to 256TB
Transactions

Berkeley DB stores data reliably and ensures data integrity, as all true databases are expected to do. Berkeley DB allows a group of database operations to be grouped together such that they either all complete successfully or none complete. In the event of system failure, Berkeley DB recovers automatically, and partially completed transactions will roll back to ensure the system is in a consistent state.

  • Full ACID compliance
  • Selectable isolation levels and durability guarantees, configurable on a per-transaction basis
  • Support for nested transactions
  • Distributed transactions (XA)
  • Catastrophic and routine failure recovery modes
  • Automated recovery serialization
  • Flexible and configurable deadlock detection
  • Support for application-specific log file records and recovery
  • Hot and cold backups, log file archival, and full database dumps
Replication

When high system scalability and/or availablity are required, Berkeley DB provides a state-of-the-art replication capability to enable a group of systems to service the workload. Replication can be among boards in a chassis, multiple servers in a datacenter or across geographically distributed sites. All aspects of this replication system - data integrity, transactional guarantees, throughput, network transport, and more—are configurable and can be tuned to meet your application's specific requirements.

  • Single master, multiple replica model
  • Automatic failover/re-election
  • Paxos-compliant election algorithm
  • New replicas can join the group at any time
  • Hot standby
  • Non-stop upgrades
  • Geographically distributed nodes
  • In-memory replication option
  • Client-to-client replication
  • Delayed client synchronization
  • Synchronization throttling
  • Network transport agnostic
  • Proven scalability to thousands of replica nodes
  • Pre-built replication framework for faster development
Deployment

Berkeley DB is very flexible, easy to deploy and easy to integrate. As a C library, it can be installed and configured along with your application. Berkeley DB was designed to operate a completely unattended fashion, so all administrative functions are controlled programmatically. It supports a wide variety of programming languages and operating system platforms. Berkeley DB is proven in millions of deployments, ranging from mission-critical, carrier-class applications to desktop and mobile device applications.

  • Programmatic administration and management - zero human administration
  • Language support (C, C++, Java, Perl, Python, PHP, Tcl, Ruby, etc.)
  • Operating system support (Linux, Windows, BSD UNIX, Solaris, Mac OS/X, VxWorks and any POSIX-compliant operating system)
  • Installer for Microsoft Windows
  • Apache integration
  • RPC enabled API
  • Support for memory constrained devices (footprint as small as 400KB)
  • Scalable to terabytes of data, billions of records
  • Source code, test suite included

Product Information
Data sheet: Oracle Berkeley DB (PDF)
Internet seminar: Discover Berkeley DB Series: Architecture (Flash)
Customer case study: Amazon.com, Inc. Delivers Superior User Experience with High Performance Cache (PDF)
Customer case study: Google Inc. Improves Service Levels with High- Availability Database (PDF)
Podcast: The Secret History of Oracle Berkeley DB (MP3)
Guide to Oracle Berkeley DB for SQL Developers

Technical Resources
Documentation: Berkeley DB
FAQ: Berkeley DB
Article: Dynamo: Amazon's Highly Available Key-Value Store, All Things Distributed (Oct 2007)
Article: Beyond Relational Databases, ACM Queue (May 2005)
Presentation: The B in LAMP, 4 th Annual So. California Linux Expo (PDF)
Discussion forum: Berkeley DB
Discussion forum: Berkeley DB High Availability
 
Free Download

Left Curve
Support
Right Curve
 · Get support for your Berkeley DB product via email: berkeleydb-info_us@oracle.com
 · Find out about new product releases by joining bdb@oss.oracle.com

Left Curve
Additional Resources
Right Curve
 · Community Resources
 · Berkeley DB Training Course
 · Berkeley DB Licensing Information

Left Curve
Related Technologies
Right Curve
 · Oracle Berkeley DB Java Edition
 · Oracle Berkeley DB XML
 · Oracle Database 11g
 · Oracle TimesTen In-Memory Database
 · Oracle Database Lite 10g

Left Curve
Berkeley DB Discussions
Right Curve
 · Oracle Berkeley DB
 · Oracle Berkeley DB High Availability
E-mail this page
Printer View Printer View
Oracle Is The Information Company About Oracle | Oracle RSS Feeds | Careers | Contact Us | Site Maps | Legal Notices | Terms of Use | Privacy