KyotoCabinet和多个流程?

时间:2012-07-18 20:57:31

标签: nosql tokyo-cabinet kyotocabinet

我已经阅读了文档,发现很少有关于访问单个kyotocabinet数据库的多个进程(读者和编写者)。看来您可以创建多个读取器,但除非您指定ONOLOCK,否则多个编写器将阻止尝试打开数据库。任何人都可以阐明它是如何工作的或是否有可能?我理解KyotoTycoon是一种选择,但我特别关注KyotoCabinet。

2 个答案:

答案 0 :(得分:4)

在tokyocabinet手册页上找到了这个:

  

Tokyo Cabinet提供两种连接数据库的模式:“reader”和“writer”。读者可以执行检索但不能存储或删除。作者可以执行所有访问方法。通过文件锁定连接到数据库时,将执行进程之间的排除控制。当作者连接到数据库时,读者和作者都无法连接。当读者连接到数据库时,其他读者可以连接,但作者不能。根据这种机制,在多任务环境中同时连接可以保证数据的一致性。

然后猜测,这也适用于京都。

答案 1 :(得分:1)

Kyoto Cabinet是线程安全的,但你不能同时拥有单独的读写过程。只要没有连接编写器,就可以有多个读取器进程。

来自website

  

按多个流程共享一个数据库

     

多个进程无法同时访问一个数据库文件。一个   进程所在的数据库文件被读写器锁定锁定   连接到它。请注意,`BasicDB :: ONOLOCK'选项不应该是   用于逃避文件锁定机制。此选项适用于   针对某些文件系统(如NFS)的解决方法   支持文件锁定机制。

     

如果要让多个进程共享一个数据库,请使用Kyoto   大亨相反。它是一个轻量级的数据库服务器作为网络   与京都内阁的接口。