【问题标题】:Does Java Berkeley DB have an upper limit for concurrent reading?Java Berkeley DB 是否有并发读取的上限?
【发布时间】:2016-07-05 21:36:04
【问题描述】:

Java Berkeley DB 在我的系统中用于存储持久数据。

由于我要加载大量数据,因此我尝试使用多个线程来执行此操作。当线程数较少时,例如 10,它可以正常工作。但是,当它设置为更高的值(例如 30)时,读取过程会卡住。看起来 Java Berkeley DB 有并发读取的上限?我对吗?如何更新限制?

【问题讨论】:

    标签: java berkeley-db-je


    【解决方案1】:

    你是不是说...“要加载?”

    呃,你以为你做到了!

    因此,您所说的线程不是“读取”线程:它们是“写入”线程!

    然后,你猜怎么着:他们正在竞争,你猜怎么着,他们输了!

    不幸的是,您通过使用线程来加快速度的“尝试”是(恕我直言...)“真诚,但被误导了”。归根结底,Berkely DB 是“一个单一的磁盘数据结构”,因此 (恕我直言...) 没有机会通过多线程的使用。

    不过,其他各种策略也可能奏效。例如,您可能会发现,如果您通过一些适当的外部命令对要插入的记录进行排序,那么插入这些记录的过程很可能会变成“有用(很多?) 更快。​​”换句话说,速度差异足以弥补(!)花费在排序上的时间。 (但是,在您的情况下,只有一种方法可以确定这是否正确:“基准测试、您使用的实际数据、您的实际排序命令等等。”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多