Oracle Berkeley DB

Oracle Berkeley DB 是业界知名的开源、可嵌入的存储引擎,为开发人员提供了快速、可靠、无需管理的本地数据库。Oracle Berkeley DB 是一个直接链接到您应用的库。应用只进行简单的函数调用,而不必向远程服务器发送消息,从而消除了客户端-服务器架构的性能损失。

告诉我们您希望在 Berkeley DB 中看到的特性。参加 Berkeley DB 未来特性调查。 

Berkeley DB 提供与传统关系数据库系统同样强健的数据存储特性,例如,ACID 事务和恢复;用于实现高并发性的锁定、多进程和多线程;冷热备份;以及用于实现高可用性应用的复制。Berkeley DB 可以管理内存中和/或磁盘上的数据库。Berkeley DB 的运行完全无需人为管理,因此所有运行时管理都由应用(而非管理员)通过编程方式控制。Berkeley DB 提供了一个快速、可扩展、可靠、占用空间很小的库。

Berkeley DB 将数据作为不透明的数据字节数组存储在键/值对中,然后通过上图所示的任一访问方法对这些键/值进行索引检索。使用 BDB get/put 或基于游标位置的 API 对这些键/值对进行创建、读取、更新或删除 (CRUD) 操作。Berkeley DB 还支持 Java Collections API 和 Java Direct Persistence Layer API。

或者,您可能更喜欢 SQL 查询语言和关系数据类型。Berkeley DB 11gR2 中的新增内容就是 SQL API,如下所示。

我们将 SQLite 的优点与 Berkeley DB 的优点相结合。如果您选择 SQL API,那么 Berkeley DB API 将完全隐藏,您的程序将编写成使用 SQLite API。因为这是一个纯 SQL 的数据库引擎,所以您可以随意使用 JDBC、ODBC 或其他任何兼容的访问层。Berkeley DB 的所有优点都已纳入该组合产品中。在某些情况下,您可能希望在 Oracle 数据库和 Oracle Berkeley DB 之间同步全部或部分关系数据。现在,使用 Oracle Mobile Data Sync 即可实现这一目的。将这些产品(从企业 Oracle 数据库到 Oracle Berkeley DB)组合,可以提供实用的嵌入式解决方案,从而使 SQL 存储在应用、设备和移动软件中占用的空间更少。

Berkeley DB 非常灵活,开发人员可以控制其行为的许多方面,从而可以在大量应用中使用,取代自主开发的解决方案。例如,开发人员可以控制资源的分配方式、专门用于缓存记录的内存量、用于单个表的磁盘存储结构、持久性和隔离保证以及复制策略。它包括完整的源代码,便于移植、集成、调试和优化。

Berkeley DB 为需要本地存储数据、无人值守连续运行并且以可预测的方式访问数据的应用提供非常快速、可靠和可扩展的持久性。

数据管理

Berkeley DB Java 版可以轻松快速地存储数据,而不会产生像其他数据库中那么多的开销。Berkeley DB 是一个 C 库,与您的应用运行在同一进程中,这就避免了使用远程数据库服务器的进程间通信延迟。共享缓存将比较活跃的数据保存在内存中,从而避免了开销较大的磁盘访问。

  • 一个链接到嵌入进程的用于数据管理的库
  • 数据可以是来自不透明的键/值对的数据,也可以是通过 SQL 访问的关系数据
  • 索引检索和顺序检索(B 树、队列、Recno、散列)
  • 多进程和多线程支持
  • 针对高并发系统的细粒度、可配置的锁定
  • 多版本并发控制 (MVCC)
  • 辅助索引
  • 每个键多个重复的值
  • 引用完整性
  • 根据需要将数据存储在内存中、磁盘上或以任何组合方式进行存储
  • 联机 B 树优化和压缩
  • 联机 B 树磁盘空间回收
  • 自动放弃的锁定删除
  • 使用 AES 标准对磁盘上存储的数据进行强加密
  • 跨多种平台的高度可移植性和高度可用性

事务

Berkeley DB 配置为使用 ACID 事务时,可以可靠地存储您的数据。Berkeley DB 允许将一组数据库操作组成一组,这样,这些操作要么全部成功完成,要么全部失败。如果系统出现故障,Berkeley DB 将自动恢复,而部分完成的事务将回滚以确保系统处于一致的状态。

  • ACID — 原子性、一致性、隔离性和持久性的事务保证
  • 可选择的隔离级别和持久性保证,可基于每个事务进行配置
  • 支持嵌入式事务
  • 灾难性故障和常规故障恢复方法
  • 高度可配置的图表和基于超时的死锁检测
  • 支持应用特定的日志文件记录和恢复
  • 冷热备份、日志文件存档和完整的数据库转储

复制

当需要较高的系统可扩展性和/或可用性时,Berkeley DB 提供优秀的复制功能,让一组系统可以处理负载。复制可以跨一个机箱中的多个主板、一个数据中心中的多台服务器或地理上分散的站点。此复制系统的所有方面(数据完整性、事务保证、吞吐量、网络传输等)都是可配置的,并且可以调整以满足应用的特定要求。

  • 单主、多副本模型
  • 自动故障切换/重新选举
  • 符合 Paxos 的选举算法
  • 新副本可随时加入组中
  • 热备份
  • 不间断升级
  • 地理上分散的节点
  • 内存中复制选项
  • 客户端到客户端复制
  • 延迟的客户端同步
  • 同步限制
  • 与网络传输无关
  • 经证实可扩展到数千个副本节点
  • 预构建的复制框架,可加快开发速度

部署

Berkeley DB XML 非常灵活,易于部署且易于集成。它是一个非常小(大约 1 MB)的库,可以轻松地随您的应用一起安装和配置。Berkeley DB 的运行完全无需人为管理,因此所有的管理功能都以编程方式进行控制。它支持各种编程语言和操作系统平台。Berkeley DB 已在数百万次部署中得到验证,从任务关键的运营商级应用到桌面和移动设备应用。

  • 编程管理 — 无需人为管理
  • 语言支持(C、C++、Java、Perl、Python、PHP、Tcl、Ruby 等等)
  • 操作系统支持(Linux、Windows、BSD UNIX、Solaris、Mac OS/X、VxWorks 和任何符合 POSIX 的操作系统)
  • 适用于 Microsoft Windows 平台的二进制安装程序
  • 支持内存受限的移动设备(只有 600KB 大小)
  • 可扩展到数 TB 的数据,数十亿条记录
  • 包含源代码、测试套件

 


更多资源


您想为 Berkeley DB 社区做出贡献吗?请给我们发送电子邮件,我们会将您添加到我们的列表中!