`
mengyang
  • 浏览: 266110 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

BerkeleyDB-JE 简介

    博客分类:
  • BDB
阅读更多
Berkeley DB Java Edition(JE)是一个使用纯java编写的通用的,支持事务的,嵌入式的数据库。它让java开发人员可以安全而有效的在进程中存储和管理任意的数据。
JE提供了两种API供开发人员选择开和数据库交互。
  • 直接持久层(DPL),有点类似于Hibernate或JPA一样的ORM技术,通过DPL你可以很方便持久化任何类型的数据。
  • 基本API(Base API),属于那种原始的,但是功能十分完善的又很灵活的API。

JE是通过“键值对”来保存和检索数据的。JE中的每条记录(record)就是一个“键值对”,“值”代表了你要保存并且未来想检索的数据。“键”是你用于查找数据的索引。这有点像Java中的Map。但是JE是允许一个键有多个值的,这就是重复数据(Duplicate Data),如果你使用的是DPL,可以通过次键(secondary keys)来实现;如果你使用的是BaseAPI,你可以在打开数据库的时候设置允许重复属性来实现。
JE还支持事务。使用事务可以保证JE中数据的ACID。
JE中有个非常重要的资源是内存缓存(in-memory cache),对它的设置不当可能会造成内存的浪费或是非常频繁的I/O读写。
关于JE中保存的数据类型(schema)的变化比一般的数据库复杂。我们知道JE中的每个记录都是一个键值对,那个值实际上就是某个java类的实例。当这个java类发生了改变的时候,如果改变只是添加了几个字段之类的简单改变那还好办,如果是改变了字段名,那么就要使用一些特定的类和方法来转换了。
最后是关于JE的备份和恢复,这也比我们通常用的数据库简单很多。因为JE的所有数据都是记录在.log文件之中,所以大体上我们只要把所有的.log文件拷贝起来就可以了。关于JE中的.log文件,有几点要知道下:
  • JE中没有单独的“数据文件”,跟BerkeleyDB C Edition不同的是,JE中所有的事务日志和记录数据都保存在一个文件中,这就是.log文件。
  • .log文件是只能添加的(append only),记录数据的增删改都是加添在.log的末尾处。
  • 有一个JE清理器(JE cleaner)会负责回收没用的磁盘空间。比如发生了很多的删除和修改之后,一个比较早的.log文件里面的数据大部分都没有用了,这时有一个独立的线程,会把这个文件中有用的部分复制到最后一个.log文件末尾处,然后删除掉那个没用的.log文件。
  • 对没用的.log文件文件的删除只会发生在检查点(checkpoint)之后。检查点的执行在默认情况下是发生在写入了20M的内容到日志文件之中的时候。




0
0
分享到:
评论
1 楼 LinApex 2013-05-11  
不看。。。

相关推荐

    BerkeleyDB-JE je-6.0.11

    Oracle BerkeleyDB-JE je-6.0.11

    Berkeley DB JE-7.0.6

    **Berkeley DB JE 7.0.6:深入理解分布式数据存储** Berkeley DB JE(Java Edition)是Oracle公司提供的一款开源、嵌入式、基于Java的键值对数据库系统。它以其轻量级、高性能和高可用性而受到广泛的青睐,尤其适合...

    Java-Edition-BerkeleyDB-3.1.0.zip_BerkeleyDB

    在Je-3.1.0版本中,BerkeleyDB使用特定的数据库文件格式,这些文件可以在不同平台上进行迁移,确保了跨平台的兼容性。 **7. 性能优化** BerkeleyDB提供了多种性能调优选项,如缓存大小设置、日志文件管理等,...

    Berkeley DB Java Edition (JE)

    Berkeley DB Java Edition (JE) 官方7.5.11下载版本。 相关介绍 https://blog.csdn.net/hadues/article/details/80854288

    BerkeleyDB_java_jar包

    在压缩包子文件的文件名称列表中,只有一个条目"je-7.5.11"。这可能是BerkeleyDB Java Edition的jar文件,表示BerkeleyDB Java版的7.5.11版本。这个文件通常会包含以下组件: 1. **BerkeleyDB引擎**:这是数据库的...

    berkeley db je-6.4.9.gz

    在这个“berkeley db je-6.4.9.gz”压缩包中,包含了BDB Java Edition(JE)的6.4.9版本。这个版本的发布可能包含了性能优化、新功能、bug修复以及对先前版本的改进。下面将详细探讨BDB JE的相关知识点。 1. **键值...

    Berkeley DB je3.3版

    **Berkeley DB je3.3版详解** Berkeley DB(简称BDB)是Oracle公司提供的一款开源、轻量级、高性能的嵌入式数据库系统。它最初由Sleepycat Software开发,后被Oracle收购。Berkeley DB je是其增强版,专为Java环境...

    Berkeley DB Java Edition 4.1.10.zip

    Berkeley DB Java Edition (JE)是一个完全用JAVA写的,它适合于管理海量的,简单的数据。 能够高效率的处理1到1百万条记录,制约JE数据库的往往是硬件系统,而不是JE本身。 多线程支持,JE使用超时的方式来处理...

    Berkeley DB Java 版 4.0.92

    Oracle Berkeley DB Java 版是一个开源的、可嵌入的事务存储引擎,是完全用 Java 编写的。与 Oracle Berkeley DB 类似,Oracle Berkeley DB Java 版在应用程序的地址空间中执行,没有客户端/服务器通信的开销,从而...

    Berkeley DB的java版本

    Berkeley DB Java Edition JE 是一个完全用JAVA写的 它适合于管理海量的 简单的数据 能够高效率的处理1到1百万条记录 制约JE数据库的往往是硬件系统 而不是JE本身 多线程支持 JE使用超时的方式来处理线程间的死琐...

    Berkeley DB JE tools-开源

    Berkeley DB JE(Java Edition)是Oracle公司提供的一款开源、高性能、嵌入式数据库系统,主要针对Java应用程序设计。它提供了键值对存储,支持事务处理、数据复制、崩溃恢复等高级特性,常用于需要快速读写大量数据...

    Berkeley DB Java Edition学习报告

    Berkeley DB Java Edition (JE) 是一款开源的嵌入式数据库管理系统,由Sleepycat Software开发,现归Oracle公司所有。这款数据库系统以其键值(K/V)存储模型为特色,适用于需要高性能、可伸缩性及事务处理能力的应用...

    Berkeley DB Java Edition 5.0.73

    在提供的`je-5.0.73`压缩包中,可能包含以下内容: - **Berkeley DB Java Edition的JAR文件**:这是运行BDB JE所需的核心库文件,包含所有必要的类和资源。 - **文档**:可能包括用户指南、API参考、示例代码等,...

    berkeley db java

    自己稍微封装了一下,可以当成简单的map来使用。

    Berkeley DB Java Edition 4.0.92 开发包

    在4.0.92版本的压缩包"je-4.0.92"中,包含了所有必要的库文件、文档、示例代码和开发工具,便于开发者快速上手。其中,库文件提供了与数据库交互所需的类和方法,文档则详尽地解释了如何使用这些功能,示例代码可供...

    Berkeley_DB_Java_Edition_使用手册

    解压后,需要将`JE_HOME/lib/je-<version>.jar`中的JAR文件添加到项目的类路径中,才能正常使用JE。 #### 三、Berkeley DB Java Edition 常见异常 - **DatabaseNotFoundException**:当尝试访问的数据库不存在时抛...

    Berkeley DB Java Edition

    在提供的压缩包“je-4.1.10”中,包含了BDBJE的特定版本4.1.10。这个版本可能包含库文件、JAR包、文档以及示例代码,帮助开发者了解如何在项目中使用和配置BDBJE。通常,开发者可以通过解压此文件,导入相关的JAR包...

    Berkeley DB 教程.doc

    Berkeley DB Java Edition (简称 BDB JE) 是专门为 Java 平台设计的版本,提供了一套完整的 Java API 来操作数据库。该版本具有以下特性: - **跨平台性**:能够在多种操作系统上运行。 - **高性能**:利用内存映射...

Global site tag (gtag.js) - Google Analytics