打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Oracle Berkeley DB 中国研发团队的博客 ? Berkeley DB Ja...

Berkeley DB Java版简介

2009年1月6日 chaohuang

Berkeley DB Java版简介

起源

加州大学伯克利分校的BSD 4.3及以前的所有版本包含了专属于AT&T Unix代码,而当时从AT&T获得源码许可证是非常地昂贵。为了不受许可证的支配,当时BSD的开发者Keith Bostic提议,BSD系统中应该有更多的非AT&T部分,以Net/1的协议发布。随后,在1991年,Keith Bostic和Margo Seltzer 以及 Mike Olson一起着手开发了Berkeley DB以替换当时的Unix下经典的数据库引擎ndbm(New Database Manager, http://en.wikipedia.org/wiki/Ndbm)。这之后Berkeley DB迅速流行起来,并促成了Sleepycat Software公司(在2006年2月时,Sleepycat Software被甲骨文收购)。 时间进入到2004年,随着Java语言的大行其道以及其对多线程机制的良好支持,Berkeley DB的开发者们为Java开源社区带来一味大餐,这便是今天的Oracle Berkeley DB Java版(下文简称为 JE)。

JE 介绍

关系数据库是开发人员可用来进行数据存储和分析的最复杂的工具之一。大多数持久化的对象数据并非为特定的SQL的查询分析而存在;它们通常在程序中被检索,然后重构成为具体Java 对象才能使用。我想这就是现在一些主流Java企业应用中用到的Object-Relational Mapping(ORM)的技术。但从Java面向对象编程的角度看,能否直接将要持久化的对象通过诸如IO serialization 的办法直接保存到文件上,并能享有关系数据库系统提供的事务,并发,和高效的好处呢? 设想一下,去掉了SQL解析和优化的开销,抛开了JDBC以及数据在客户端/服务器通信的巨大开销,应用的速度提升将会有多少?
JE正是居于这一设计思想而孕育出来的,是完全用 Java 设计,运行在应用程序的地址空间中,没有客户端/服务器通信的开销,从而使开发人员能够快速、简单、可靠地存储和检索信息。

主要特性

1. 轻松快速地数据存储
Berkeley DB Java 版可以轻松快速地存储数据,而不会导致像其他数据库中那么多的开销。Berkeley DB Java 版是与您的应用程序运行在同一 JVM 中的单个 JAR 文件,因此不需要远程服务器。本地缓存在内存中保存最活跃的数据以避免了开销较大的磁盘访问,并将 JVM 内存的使用限制到一个可预测的数量。

* 本地、进程间数据存储
* 与模式无关的、应用程序本机数据存储
* 按关键字访问的数据检索和顺据数据检索
* 易于使用的 Java 集合 API
* 用于访问 Java 对象的直接持久层 (DPL)
* DPL 类的模式进化
* 单进程、多线程模型
* 用于高并发性的记录级锁定
* 对辅助索引的支持
* 内存中和/或磁盘上
* 可配置的后台清理器线程重新组织数据并优化磁盘使用

2. 可靠地事务处理能力
Berkeley DB Java 版可靠地存储数据并确保数据完整性。如果系统发生故障,Berkeley DB Java 版将恢复事务数据并根据日志和数据库信息将系统重置为可运行的、一致的状态。

* 完全符合 ACID
* 可选择的隔离级别和持久性保证,可在每事务基础上进行配置
* 使用 Java 事务 API (JTA) 托管的事务
* 使用 J2EE 连接器体系结构 (JCA) 进行 J2EE 应用服务器集成
* 使用 Java 管理扩展 (JMX) 进行审计、监视和管理
* 灾难和例程故障恢复模式
* 基于超时的死锁检测
* 冷热备份、日志文件压缩和完整的数据库转储

3. 易于部署
Berkeley DB Java 版是高度可移植的、非常灵活且易于集成。它从一开始就被设计为一个充分利用 Java 环境的纯 Java 产品。作为单个 Java 存档 (JAR) 文件,它在运行您应用程序的 JVM 中运行。Berkeley DB Java 版旨在通过企业级、纯 Java 的数据存储解决方案为不断增长的大型 Java 社区提供服务。

* 100% 的纯 Java,便于移植且易于开发
* 单个 JAR 文件 – 易于安装,与应用程序运行在相同的 JVM 上
* 需要 Java 1.4.2 或更高的标准版 JVM
* 编程管理
* 无需人为管理
* 针对例行管理功能的 API
* 体积小 820KB
* 可扩展到数以 TB 计的数据,数百万条记录
* 包含源代码、测试套件

性能比较:JE vs Derby

正如一份关于JE和Derby的性能比较的Oracle白皮书(http://www.oracle.com/technology/products/berkeley-db/pdf/je-derby-performance.pdf)展示的那样: 在相同的硬件平台,JE只使用了相当于Derby一半的内存却达到了近乎于数量级的性能提升!

尾记

Oracle Berkeley DB Java 版的体系结构对于读密集型和写密集型的工作负载支持非常高的性能和并发性。有鉴于其良好的伸缩性,和易于部署性,JE成功应用到上至全球型的电子商务网站,下至终端设备。同时,由于其开源和双重licence特性,对于广大Java爱好者和数据库工程人员而言也是不可多得的参考宝典。


黄超

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
案例解读:Oracle目录由于TFA触发bug导致jdb文件未自动清理引起空间不足
csdn-新闻评论
Cloudscape数据库介绍及几个问题
点评主流开源数据库的技术特点 --SQLite 中文社区-- http://www.sqlite.com.cn/
常用内存数据库介绍(三) - titan - JavaEye技术网站
嵌入式数据库在 Java 中的应用
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服