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 计的数据,数百万条记录
  • 包含源代码、测试套件

Oracle Berkeley DB Java 版的更多相关文章

  1. 了解 Oracle Berkeley DB 可以为您的应用程序带来 NoSQL 优势的原因及方式。

    将 Oracle Berkeley DB 用作 NoSQL 数据存储 作者:Shashank Tiwari 2011 年 2 月发布 “NoSQL”是在开发人员.架构师甚至技术经理中新流行的一个词汇. ...

  2. Berkeley DB Java Edition 简介

    一.             简介        Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据. l         能够高效率的 ...

  3. Berkely DB Java Edition学习笔记

    Berkely DB对于高并发.要求速度快的应用来说是个不错的选择,mysql就是用BDB实现的(mysql的后台) ,mysql快,BDB比mysql还要快N倍.BDB是一种嵌入式的.非关系数据库, ...

  4. The Architecture of Open Source Applications: Berkeley DB

    最近研究内存关系数据库的设计与实现,下面一篇为berkeley db原始两位作为的Berkeley DB设计回忆录: Conway's Law states that a design reflect ...

  5. Berkeley DB (VC6.0 编译环境配置)

    操作系统:winxp VC环境:VC6.0 必需文件:Berkeley DB安装文件(db-.msi) 下载地址:http://www.oracle.com/technology/software/p ...

  6. C# 使用Berkeley DB

    Berkeley DB是一个开源的文件数据库,介于关系数据库与内存数据库之间.简称BDB Berkeley DB是嵌入式键值数据库库,为应用程序提供可扩展的高性能数据管理服务. Berkeley DB ...

  7. 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Express-C、Oracle XE)

    SQLite数据库是中小站点CMS的最佳选择 SQLite 是一个类似Access的轻量级数据库系统,但是更小.更快.容量更大,并发更高.为什么说 SQLite 最适合做 CMS (内容管理系统)呢? ...

  8. java.util.MissingResourceException: Can't find resource for bundle oracle.sysman.db.rsc.LoginResourc

    http://blog.itpub.net/197458/viewspace-1055358/   oracle 10.2.0.4 windows 2003 X64 平台 系统安装EMCA正常.第一次 ...

  9. 「JAVA」:Berkeley DB的JAVA连接

    Berkeley DB是一个嵌入式的数据库,它适合于管理海量的.简单的数据.关键字/数据(key/value)是Berkeley DB用来进行数据管理的基础.每个key/value构成了一条记录,而整 ...

随机推荐

  1. mongodb的地理空间索引常见的问题

    创建地理空间索引注意事项 创建地理空间索引失败,提示错误信息如下 > db.places.ensureIndex({"loc":"2dsphere"}){ ...

  2. JQuery图片轮换 nivoSlider图片轮换

    效果图: 第一步:添加引用 <script src="jquery-ui-1.9.2.custom.min.js" type="text/javascript&qu ...

  3. mysql 存储引擎MYSIAM和INNODB特性比较

    事物:MYISAM不支持事物,MyISAM类型的表强调的是性能,其执行数度比InnoDB 类型更快.如果不考虑事物,大量的select和insert适合MYISAM表 锁:MYISAM支持表锁    ...

  4. 【转】深入理解Java内存模型(二)——重排序

    数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性.数据依赖分下列三种类型: 名称 代码示例 说明 写后读 a = 1;b = a; 写一个变量之 ...

  5. sql server使用说明

    什么是sql server? SqlServer是微软的一款数据库系统产品. 是DBMS中的一种. 当每一个数据库安装到每一台电脑后,都会与计算机名称(有的是IP地址)关联.因为服务器用途的电脑不能经 ...

  6. mysql学习(用户权限管理)

    1. 添加数据库用户 create user 'username'@'host' identified by 'password'; 提示: 如果想让该用户可以从其他主机登陆,host可以设置为'%' ...

  7. JQuery 解析xml

    JQuery 可以通过 $.get() 或 $.post() 方法来加载 xml.     JQuery 解析 XML 与解析 DOM 一样, 可以使用 find(), children() 等函数来 ...

  8. js获取url?后的参数

    function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new O ...

  9. php的冒泡算法

    <?php /* 冒泡算法  * @para $arr 传人进去排序的数组  * @return $newArr 排序之后的数组  */   function maopao($arr){     ...

  10. 我是一个云Hosts文件,用来干啥你懂的

    Smarthosts是一个托管在谷歌代码上的项目,您可以轻松利用本项目使用到一份稳定的Hosts文件. 这份Hosts文件可以帮助您顺利打开一些网站,提高某些国外服务的打开或下载速度. http:// ...