一、berkeley db的介绍

来源:互联网 发布:淘宝竞品是什么 编辑:程序博客网 时间:2024/05/02 06:45

一、            简介

Berkeley DBBDB)是一个高性能的,嵌入数据库编程库,和C语言,C++JavaPerlPythonTcl以及其他很多语言都有应用程序编程界面。Berkeley DB可以保存任意类型的键/值对,而且可以为一个键保存多个数据。Berkeley DB可以支持数千的并发线程同时操作数据库,支持最大256TB的数据,广泛用于各种操作系统包括大多数Unix类操作系统和Windows操作系统以及实时操作系统。

Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据。

Berkeley DB特征:

1.  数据存储能力很强(Large database support)

2.  支持多线程(Multiple thread and process support)

3.  数据库的记录很简单,只是简单的键值对(Database records)

4.  提供事务支持(Transactions)

5.  提供索引支持(Indexes)

6.  提供内存缓存的支持(In-memory cache)

7.  按照连续的记录文件存储数据(Log files)

8.  后台线程的支持(Background threads)

9.  数据库环境封装了一个或多个数据库(Database environments)

10. 支持数据库的备份和恢复(Backup and restore)

 

二、            获取JE

JE下载地址:http://www.oracle.com/technology/software/products/berkeley-db/je/index.html

解开包后 JE_HOME/lib/je-<version>.jar 中的jar文件添加到你的环境变量中就可以使用je了。相关帮助文档可以参考 JE_HOME/docs/index.html源代码见JE_HOME/src/*.*。(就是把你得到的jre文件导入到你的项目中)

 

三、            JE常见异常

DatabaseNotFoundException 当没有找到指定的数据库的时候会返回这个异常

DeadlockException 线程间死锁异常

RunRecoveryException 回收异常,当发生此异常的时候,你必须得重新打开环境变量。

 

四、            关于日志文件必须了解的六项

JE的日志文件跟其他的数据库的日志文件不太一样,跟C版的DBD也是有区别的

1JE的日志文件只能APPEND,第一个日志文件名是 00000000.jdb,当他增长到一定大小的时候(默认是10M),开始写第二个日志文件00000001.jdb,已此类推。

2.跟C版本有所不同,JE的数据日志和事务日志是放在一起的,而不是分开放的。

3. JE cleaner负责清扫没用到的磁盘空间,删除后,或者更新后新的记录会追加进来,而原有的记录空间就不在使用了,cleaner负责清理不用的空间。

4. 清理并不是立即进行的,当你关闭你的数据库环境后,通过调用一个cleaner方法来清理。

5. 清理也不是自动执行的,需要你自己手动调用cleaner 方法来定时清理的。

6. 日志文件的删除仅发生在检查点之后。cleaner准备出哪些log 文件需要被删除,当检查点过后,删掉一些不在被使用的文件。每写20M的日志文件就执行一次检查点,默认下。

原创粉丝点击