JE 是一种多用途,提供事务保护支持的 内嵌的数据库,她是由纯java语言编写 (JE没有使用JNI). 正因为如此, 她提供给java程序员安全高效的程序级存储以及管理任意类型数据的能力.

JE 提供一种基于java的企业级的数据管理方案. 通过调用java API的方式就可以使用JE.你需要做的就是把jar文件加入的你的classpath中

JE 提供一下主要特性:

  • 大数据量的支持. JE 数据库能够高效的处理一条至数百万条记录. 制约JE数据库的往往是硬件系统,而不是JE本身.

  • 支持多线程多进程. JE是基于多线程控制设计的.读写操作均可用于多线程. JE使用表级的锁应用于高并发的线程级应用. 进而, JE 使用超时发现控制死锁,借此保证两个线程不会无限制的死锁.

  • 数据库记录. 所有的数据库记录都是Key->Value对应的关系.key和value可以是任意的java基本类型甚至复杂的对象.

  • 事务. 事务能够把一个数据库或多个数据库的一步或多步操作看成是一个业务处理单元. JE 事务给开发人员提供了可恢复性,原子性,及孤立级的数据库操作.

    注意事务的保护是可选的

  • 索引. JE 允许你通过使用二级数据库来把基本数据创建二级索引并维护. 通过这种方式,可以通过一级key和二级key快速的访问数据库.

  • 缓存. 缓存能够避免大量的I/O操作,来快速的进行读写操作.缓存会逐步增长到预先设定好的最大值. 为了在系统刚启动的时候有个很好的性能,可以事先把数据装入cache,这样可以减少了请求调用的的IO操作.

  • Log 文件. JE 数据库是存储在环境设定的目录下的名字连续的文件,这些文件是由8位的十六进制数命名。这些Log文件可以在任意平台上使用.

    注意不同于其他的数据库,JE的Log文件与其他数据库的数据库文件并没有什么区别,而是JE使用了基于log的存储系统来保护数据库的修改.在一些改动写入数据库之前,JE会把一些相关信息写进日志文件中.

    注意JE的log文件并不是与Berkeley DB's数据库文件二进制兼容的.然而两种产品都提供了dump和加载的工具。

  • 后台线程. JE提供了多个线程来进行内部资源的管理. 检查点负责把cache中的事务commit后的处理结果写进磁盘. 压缩线程把由于删除操作导致空的子树移除. 最后, 清除线程负责清除不再需要的日志文件,来节省磁盘空间。

  • 数据库环境.数据库环境负责一个或多个数据库的封装和管理工作. 另外,环境管理着内部资源,比如缓存机制和后台线程.环境同样管理着并发和事务. 注意所有的应用程序,想使用JE,就必须使用数据库环境。

  • 备份和恢复. JE的备份程序把JE的日志文件拷贝到安全的存储区。当灾难发生时,你可以把这些归档的日志文件拷贝回你的应用程序目录中,并重新打开环境即可使用.

    注意当打开数据库环境时,JE总是执行常规的恢复. 常规的恢复根据日志文件的记录把数据库进行可靠的碎片整理,使其保持存储连续性.

  •  

评论
发表评论

您还没有登录,请登录后发表评论

Azi
搜索本博客
存档
最新评论