berkeley db java edition 源码_Berkeley DB Java Edition教程

目录:

概述

特性

下载

参考

[一]、概述

Berkeley DB是历史悠久的嵌入式数据库系统,在06年被 Oracle 收购了。现在我们在 Oracle 网站上会看到: BerkeleyDB、BerkeleyDB XML 和 BerkeleyDB JAVA Edition 这个三个东东。简单的说最开始 BerkeleyDB 是只有 C 语言版本的,但是 JAVA 也可以使用,只不过需要通过 JNI 调用,效率可能有点影响。后来出了 JAVA Edition ,用纯 JAVA 实现了一遍,也就是我们看到的 BerkeleyDB JAVA Edition (简称 JE )。

JE是一个通用的事务保护的,100%纯Java(JE不作任何JNI调用)编写的嵌入式数据库。因此,它为Java开发人员提供了安全高效的对任意数据的存储和管理。

您可以通过一系列的Java API来使用JE,这些API能够读写数据,管理你的数据库,而且可以执行一些更高级的活动,如管理事务。和JE进行交互的Java API有两种基本形式。第一个是高层次的API,可让您的Java类的持久性。第二个是一个低级别的API,它提供了额外的灵活性与JE数据库。

[二]、特性

大型数据库的支持:它支持从1到数百万级的数据量,数据库的大小限制基本上受限于你的硬件支持。

Database Environment:Database Environment提供了一个单元的封装和管理一个或多个数据库。Database Environment也是内部资源管理的一个单元,如内存中的缓存和后台线程。最后,使用它管理并发性和事务。请注意,所有应用程序使用JE都需要使用Database Environment。

多线程,多进程支持:JE是专为控制多线程设计的。读写操作都可以是多线程。JE使用记录级锁定为线程应用程序提供高并发性。此外,JE使用死锁超时检测的机制来确保不会有两个线程无限期的死锁。JE允许多个进程访问同一个DB,但在这种情况下, Berkeley 只允许一个线程进行写操作,读操作随意。

事务:原子性,可恢复,隔离性。

内存Cache:为了减少IO操作提高性能,将数据暂存在内存里面。

索引。

日志文件:JE数据是存储在主目录下一个或多个数字命名的日志文件。日志文件一次写成并且非常便于跨平台的移植。

后台线程:JE提供了几个线程为你管理内部资源。 checkpointer是负责数据库中的数据刷新到磁盘上的;compressor线程从数据库中删除由于删除活动产生的子树是空的数据;cleaner线程负责清理和删除不需要的日志文件,从而帮助您节省磁盘空间。

备份和恢复:JE的备份就是将log文件copy到一个安全的存储介质, 它的灾后重建的做法就是把备份的日志文件拿出来,放到原位置, 重启JE即可。

[三]、下载

截止2012-08-22最新版本为5.0.58,可在官网下载(需要注册账号)。

如果是Maven构建项目的,可在POM.xml中增加如下内容:

<dependency>

<groupId>com.sleepycatgroupId>

<artifactId>jeartifactId>

<version>4.0.92version>

<type>jartype>

<scope>compilescope>

dependency>

目前资源库中的版本才更新到4.0.92

[四]、参考

http://docs.oracle.com/cd/E17277_02/html/GettingStartedGuide/introduction.html

标签:Java,数据库,DB,Edition,线程,Berkeley,JE

来源: https://blog.csdn.net/kebu12345678/article/details/104761161

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值