2016-07-05 63 views
0

Java Berkeley DB在我的系统中用于存储持久数据。Java Berkeley DB对于并发读取有上限吗?

由于我有大量的数据要加载,我试图用一些线程来做到这一点。当线程数很少时,例如10,它工作正常。然而,当它被设置为较高的值时,例如30,读取过程就卡住了。它看起来像Java Berkeley DB有一个并发读取的上限?我对吗?我将如何更新限制?

回答

0

你说...“是加载?”

呃嗯,以为你做到了!

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

而且,猜猜看:他们是互相竞争,猜猜他们在输什么!

不幸的是,你通过使用线程来加快速度的“尝试”是(恕我直言......)“真诚但误导了我。最终,Berkely DB是“一个单一的磁盘数据结构”,所以有通过使用多线程来加速进程的机会。

虽然其他各种策略可能会起作用。例如,您可能会发现,如果您通过某个适当的外部命令插入要记录的记录,那么插入这些记录的过程可能会更快地变得有用(很多?)(很多?)。 ”足够的速度差异,换句话说,超过(!)弥补了分类花费的时间。 (但是,只有一种方法可以确定您的的情况是否属实:“基准测试,您使用的实际数据,您的实际排序命令等等)”