`
stephen80
  • 浏览: 105173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

berkeley db je 的几个问题

    博客分类:
  • j2se
阅读更多
1. cache 容量的规划
$ ./calBdb.sh 2000000 64 256 128
Inputs: records=2000000 keySize=64 dataSize=256 nodeMax=128 density=80% overhead=10%

    Cache Size      Btree Size  Description
--------------  --------------  -----------
   219,994,975     197,995,478  Minimum, internal nodes only 
   259,343,313     233,408,982  Maximum, internal nodes only 
   877,772,753     789,995,478  Minimum, internal nodes and leaf nodes 
   917,121,091     825,408,982  Maximum, internal nodes and leaf nodes 

Btree levels: 4
./calBdb.sh 10000000 64 256 128
Inputs: records=10000000 keySize=64 dataSize=256 nodeMax=128 density=80% overhead=10%

    Cache Size      Btree Size  Description
--------------  --------------  -----------
1,099,974,877     989,977,390  Minimum, internal nodes only 
1,296,716,566   1,167,044,910  Maximum, internal nodes only 
4,388,863,766   3,949,977,390  Minimum, internal nodes and leaf nodes 
4,585,605,455   4,127,044,910  Maximum, internal nodes and leaf nodes 

对内存的需求还是不小的。10m ,1G.

2.transaction 太慢,难以忍受
3.防止, "phantoms" when not using transactions?
这个我遇到了,不过,我没有按照bdb 的提示解决。

boolean exists = false;
boolean done = false;

while (!done) {
  OperationStatus status = cursor.putNoOverwrite(key, insertData);
  if (status == OperationStatus.SUCCESS) {
    /* A new record is inserted */
    exists = false;
    done = true;
  } else {
    status = cursor.getSearchKey(key, foundData, LockMode.RMW);
    if (status == OperationStatus.SUCCESS) {
      /* An existing record is found */
      exists = true;
      done = true;
    }
    /* else continue loop */
  }
}

4.cache percetage 一定要设,否则, outofmemory .

5.bdb ,nio 的时候,不能用thread.currentthread.interupt() 停止thread .






分享到:
评论

相关推荐

    Berkeley DB JE-7.0.6

    - **复制功能**:Berkeley DB JE支持数据复制,可以创建多个副本以提高系统的容错性和可用性。在节点故障时,其他节点可以接管服务,避免单点故障。 - **空间效率**:采用B树数据结构,使得数据库在存储和查找数据...

    Berkeley DB je3.3版

    综上所述,Berkeley DB je3.3版是一个强大且易用的嵌入式数据库解决方案,尤其适用于需要高性能、低延迟以及内存存储的Java应用。其丰富的功能、完善的API和强大的事务处理能力,使其在各种应用场景中都能表现出色。

    BerkeleyDB-JE je-6.0.11

    Oracle BerkeleyDB-JE je-6.0.11

    Berkeley DB Java Edition (JE)

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

    Berkeley DB Java 版 4.0.92

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

    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 DB4.8以上各版本

    Berkeley DB是一款由Oracle公司开发的嵌入式数据库系统,被广泛应用于许多软件项目中,尤其是在需要快速、轻量级数据存储解决方案的场景下。它提供了键值对存储模式,适用于构建高性能的数据缓存和数据库应用程序。...

    BerkeleyDB测试程序

    总结来说,"BerkeleyDB测试程序"是对BerkeleyDB性能的全面评估,涵盖了数据入库和读取速度两个关键方面。通过对这些操作的深入理解和优化,我们可以更好地利用BerkeleyDB的优势,提升应用的性能。在实际应用中,还...

    Berkeley DB数据库 6.2.32 64位

    Berkeley DB是一个嵌入式数据库,为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。 主要特点: 嵌入式:直接链接到应用程序中,与应用程序运行于同样的地址空间中,因此,无论是在网络上不同...

    Berkeley DB参考资料

    BerkeleyDB 多库联合操作 (Secondary Databases) - **3.1 二级数据库介绍** - **概念解释**:二级数据库是对主数据库的一个索引,用于提高查询效率。 - **应用场景**:快速查找、数据统计等。 - **3.2 创建二级...

    Berkeley DB参考手册PDF版本

    - **20.8 一个新的BerkeleyDB java持久API** - **Java API**:介绍一个新的用于Berkeley DB的Java持久化API。 - **20.9 如何操作BerkeleyDB的Records** - **记录操作**:说明如何在Berkeley DB中插入、更新和删除...

    Berkeley DB C++编程入门教

    在“BerkeleyDB概念”部分,文档会介绍Berkeley DB的基本概念,如BTree和Hash数据库的访问方式选择,以及Queue和Recno之间的选择。 接下来,教程会讨论数据库的限制与可移植性、环境设置、异常处理和错误返回。然后...

    Berkeley DB数据库最新版

    **Berkeley DB数据库详解** Berkeley DB(简称BDB)是一种高性能、轻量级的嵌入式数据库系统,由Oracle公司开发并维护。它最初在伯克利大学诞生,因此得名“Berkeley DB”。这款数据库系统广泛应用于需要快速、可靠...

    BerkeleyDB的参考书集

    5. **DBMessageTextReference.pdf**:这份文档包含了BerkeleyDB在运行时可能产生的错误消息和警告的解释,帮助开发者诊断和解决问题。 6. **BDB-Porting-Guide.pdf**:BerkeleyDB移植指南,提供了将BerkeleyDB部署...

    BerkeleyDB Manual C/C++

    这个部分将详细讲解如何开始、提交、回滚事务,以及如何处理并发控制和死锁问题。 接着,`BerkeleyDB-Core-Cxx-Txn.pdf`是关于C++接口的事务处理。C++接口通常提供更高级别的抽象和便利,使得代码更加简洁易读。这...

    BerkeleyDB_java_jar包

    BerkeleyDB是一个开源的、基于键值对的嵌入式数据库系统,由Oracle公司提供。它为Java开发者提供了丰富的API,使得在Java应用程序中轻松集成数据存储成为可能。标题中的"BerkeleyDB_java_jar包"指的是适用于Java开发...

    Berkeley DB JE tools-开源

    使用Berkeley DB JE的开发者需要注意以下几点: 1. **事务管理**:Berkeley DB JE支持ACID(原子性、一致性、隔离性和持久性)事务,确保数据的一致性和完整性。 2. **数据复制**:通过复制功能,可以实现数据的冗余...

    Berkeley DB 读取样例

    首先,我们需要了解Berkeley DB的一般操作流程,主要包括四个步骤: 1. **创建数据库环境(Environment)**: 这是使用Berkeley DB的第一步。我们通过创建一个`EnvironmentConfig`对象来设置数据库环境的配置,例如...

    Berkeley DB的java版本

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

Global site tag (gtag.js) - Google Analytics