Oracle Berkeley DB Java 版
Oracle Berkeley DB Java 版是一个开源的、可嵌入的事务存储引擎,是完全用 Java 编写的。它充分利用 Java 环境来简化开发和部署。Oracle Berkeley DB Java 版的架构对于读密集型和写密集型的负载提供非常高的性能和并发性。您可以根据需要选择 Berkeley DB Java 版的 Direct Persistence Layer (DPL)、Persistent Collections API 或只存储任意数据的键/值对。如果关系数据库无法满足您的应用程序要求,那么 Berkeley DB Java 版将是您的最佳选择。
大多数 Java 解决方案都使用 Java Persistence API (JPA) 等对象关系映射 (ORM) 解决方案将类和实例数据映射为 RDBMS 的行和列。关系数据库非常适合数据存储和分析。然而,大多数保留的对象数据从未使用即席 SQL 查询进行分析;它们通常只作为 Java 对象进行检索和重构。您是因为 ORM 的存在而对其加以利用,还是因为确实需要 SQL 的特性?对于对象存储和检索这一基本任务,关系存储不能发挥作用。Berkeley DB Java 版则不同。Berkeley DB 将对象图形、集合对象或简单的键/值数据以 B 树的形式直接存储在磁盘上。这个简单、高效的方法可以避免 ORM 解决方案中的所有不必要开销。使用 Direct Persistence Layer (DPL),Java 开发人员可以使用存储信息对类进行批注,就像 JPA 一样。这种方法熟悉、高效且快速。DPL 可以降低数据存储的复杂性且不影响速度。
Berkeley DB Java 版不同于目前可用的其他所有 Java 数据库。Berkeley DB Java 版不是用 Java 构建的关系引擎。它是 Berkeley DB 样式的嵌入式存储,具有一个针对程序员(而非 DBA)设计的界面。该架构基于一个基于日志、无重写的存储系统,当提供 ACID 事务和记录级锁定时具有较高的并发性和较快的速度。Berkeley DB Java 版在内存中高效缓存最常用的数据,不会超出应用程序规定的限制。通过这种方式,Berkeley DB Java 版使用一个应用程序来使用可用的 JVM 资源,同时提供对非常大型的数据集的访问。
Berkeley DB Java 版通过在 J2EE 中实现三个关键的 API 来适应 J2EE 架构。通过 Java Transaction API (JTA),Berkeley DB Java 版可以在应用服务器中充当托管的事务资源。Berkeley DB Java 版还实现了 J2EE 连接器架构 (JCA) 以简化到应用服务器的集成。最后,进行集成后执行事务性操作时,大多数应用程序将需要某种能力来管理服务。Berkeley DB Java 版使用 Java 管理扩展 (JMX) 来导出信息和服务。JTA、JCA 和 JMX 三者相结合,从而使 Berkeley DB Java 版在基于 J2EE 的解决方案中以可预测的方式发挥其全部潜力。
Berkeley DB Java 版支持跨多个系统的复制,从而使应用程序能够以较短的时间进行大规模扩展并为高可用性解决方案提供容错。该技术的工作机制是让所有更新进入一个指定的主节点中,这个主节点自动将更改分发到一组副本节点。读负载可以跨这些副本节点分散,而新的副本节点可以随时加入该组来扩展此系统。如果任何副本将节点失败,其余的副本节点可以取代它。如果主节点发生故障,副本节点将进行选举,然后指定一个新的主节点。选定了新的主节点后,所有副本节点与新的主节点同步并在不中止服务的情况下继续进行正常处理。主-故障切换过程通常不到一秒,故障切换期间由副本节点针对读请求提供服务,从而确保不会停机。
数据存储
Berkeley DB Java 版可以轻松快速地存储数据,而不会导致像其他数据库中那么多的开销。Berkeley DB Java 版是与您的应用程序运行在同一 JVM 中的单个 JAR 文件,因此不需要远程服务器。本地缓存在内存中保存最活跃的数据以避免开销较大的磁盘访问,并将 JVM 内存的使用限制到一个可预测的数量。
- 本地、进程间数据存储
- 与模式无关的、应用程序原生数据存储
- 按关键字访问的数据检索和顺序数据检索
- 易于使用的 Java Collections API
- 用于访问 Java 对象的 Direct Persistence Layer (DPL)
- DPL 类的模式进化
- 单进程、多线程模型
- 用于高并发性的记录级锁定
- 支持辅助索引
- 内存中和/或磁盘上
- 可配置的后台清理器线程重新组织数据并优化磁盘使用
事务
Berkeley DB Java 版可靠地存储数据并确保数据完整性。如果系统发生故障,Berkeley DB Java 版将恢复事务数据并根据日志和数据库信息将系统重置为可运行的、一致的状态。
- 完全符合 ACID
- 可选择的隔离级别和持久性保证,可在每事务基础上进行配置
- 使用 Java Transaction API (JTA) 托管的事务
- 使用 J2EE 连接器架构 (JCA) 进行 J2EE 应用服务器集成
- 使用 Java 管理扩展 (JMX) 进行审计、监视和管理
- 灾难和例程故障恢复模式
- 基于超时的死锁检测
- 冷热备份、日志文件压缩和完整的数据库转储
部署
Berkeley DB Java 版高度可移植、非常灵活且易于集成。它从一开始就被设计为一个充分利用 Java 环境的纯 Java 产品。作为单个 Java 存档 (JAR) 文件,它在运行应用程序的 JVM 中运行。Berkeley DB Java 版旨在通过企业级、纯 Java 的数据存储解决方案为不断增长的大型 Java 社区提供服务。
- 100% 的纯 Java,便于移植且易于开发
- 单个 JAR 文件 — 易于安装,与应用程序运行在相同的 JVM 上
- 需要 Java 1.5 或更高的标准版 JVM
- 编程管理
- 无需人为管理
- 针对例行管理功能的 API
- 体积小 820KB
- 可扩展到数以 TB 计的数据,数百万条记录
- 包含源代码、测试套件