Oracle Berkeley DB
Oracle Berkeley DB 是行业领先的可嵌入开源数据库引擎,它为开发人员提供了无需管理的快速、可靠的本地持久性。Oracle Berkeley DB 是一个直接链接到您应用程序的库。您的应用程序进行简单的函数调用,而不是向远程服务器发送消息,从而消除了客户端-服务器体系结构的性能损耗。Oracle Berkeley DB 消除了 SQL 查询处理的开销,从而使应用程序按可预测的访问模式更快地运行。

Berkeley DB 提供与传统关系数据库系统同样强健的数据存储特性,例如,ACID 事务和恢复;用于高并发性的锁定、多进程和多线程;冷热备份;以及用于高可用性应用程序的单主复制。Berkeley DB 可以在内存和/或磁盘中管理数据库。Berkeley DB 的运行完全无需人为管理,因此所有运行时管理都由应用程序(而非管理员)通过编程方式控制。它被设计为简单、快捷、小型和可靠的。
Berkeley DB 支持跨多个系统的复制,从而使应用程序能够以较短的时间进行大规模扩展并为高可用性解决方案提供容错。该技术的工作机制是让所有更新进入一个指定的主中,该主自动将更改分发到一组副本。读负载可以跨这些副本分散,而新的副本可以随时加入该组来扩展此系统。如果任何副本失败,其余的副本可以取代它。如果主失败,应用程序可以进行选举或者简单地指定一个新主。选择新主后,所有副本与新主同步并在不中止服务的情况下继续进行正常处理。
Berkeley DB 非常灵活并却允许开发人员控制其行为的众多方面,这使它可以跨大量应用程序使用并作为自主开发的解决方案的替代品。例如,开发人员可以控制资源的分配方式、专门用于缓存记录的内存量、用于单个表的磁盘存储结构、持久性和隔离保证以及复制策略。它包括用于较容易的移植、集成、调试和优化的完整源代码。
Berkeley DB 为需要本地存储数据、在无需人为管理连续运行并且以可预测的方式访问数据的应用程序提供非常快速、可靠和可伸缩的持久性。
主要特性
数据存储
Berkeley DB 可以轻松快捷地存储数据,而不会导致其他数据库中的开销。Berkeley DB 是一个与您的应用程序运行在同一进程中的 C 库,避免了使用远程数据库服务器的进程间通信延迟。共享缓存在内存中保存最活跃的数据,避免了开销较大的磁盘访问。
- 本地、进程间数据存储
- 与模式无关的、应用程序本机数据格式
- 索引检索和顺序检索(B 树、队列、Recno、散列)
- 每应用程序多进程和每进程多线程
- 针对高并发系统的细粒度、可配置的锁定
- 多版本并发控制 (MVCC)
- 对辅助索引的支持
- 内存中和/或磁盘上
- 联机 B 树压缩
- 联机 B 树磁盘空间回收
- 联机放弃的锁删除
- 硬盘上数据加密 (AES)
- 记录最大可达 4GB,表最大可达 256TB
事务
Berkeley DB 可靠地存储数据并确保数据完整性,就像对所有实际数据库的预期一样。Berkeley DB 允许将一组数据库操作组合在一起,这样它们要么都成功完成,要么都不完成。如果系统出现故障,Berkeley DB 将自动恢复,而部分完成的事务将回滚以确保系统处于一致的状态。
- 完全符合 ACID
- 可选择的隔离级别和持久性保证,可在每事务基础上进行配置
- 支持嵌入式事务
- 分布式事务 (XA)
- 灾难和例程故障恢复模式
- 自动恢复序列化
- 灵活、可配置的死锁检测
- 支持应用程序特定的日志文件记录和恢复
- 冷热备份、日志文件存档和完整的数据库转储
复制
当需要较高的系统伸缩性和/或可用性时,Berkeley DB 提供一流的复制功能,从而使一组系统可以处理工作负载。复制可以跨一个机架中的多个主板、一个数据中心中的多台服务器或地理上分散的位置。该复制系统的所有方面(数据完整性、事务保证、吞吐量、网络传输等)都是可配置的,并且可以调整以满足应用程序的特定要求。
- 单主、多副本模型
- 自动故障切换/重选
- 符合 Paxos 的选举算法
- 新副本可随时加入组中
- 热备份
- 无停止升级
- 地理上分散的节点
- 内存中复制选项
- 客户端到客户端复制
- 延迟的客户端同步
- 同步终止
- 网络传输不可知
- 已证实对数千个副本节点具有可伸缩性
- 预置的复制框架,用于更快速的开发
部署
Berkeley DB 非常灵活、易于部署且易于集成。作为一个 C 库,它可与您的应用程序一同安装和配置。Berkeley DB 的运行完全无需人为管理,因此所有的管理功能都是通过编程方式控制。它支持的编程语言和操作系统平台范围广泛。Berkeley DB 在数百万个部署中得到了证明,从任务关键的电信运营商级别应用程序到桌面和移动设备应用程序。
- 编程管理 — 无需人为管理
- 语言支持(C、C++、Java、Perl、Python、PHP、Tcl、Ruby 等等)
- 操作系统支持(Linux、Windows、BSD UNIX、Solaris、Mac OS/X 和任何符合 POSIX 的操作系统)
- 适用于 Microsoft Windows 的安装程序
- Apache 集成
- 支持 RPC 的 API
- 支持内存限制下的移动设备(只有 400KB 大小)
- 可扩展到数以 TB 计的数据,数十亿条记录
- 包含源代码、测试套件
|