什么条件导致东京柜阻塞

2 投票
1 回答
612 浏览
提问于 2025-04-15 16:07

我在用Python的tc模块使用Tokyo Cabinet。我把数据存储在TDB格式里。我原本以为在写入数据的时候,表格只会被锁定一小会儿。可是我发现,当文件处于“写入模式”时,其他进程就不能读取这个文件了。这是正常现象吗?是我用的工具有问题,还是我操作错了?或者还有其他情况会导致操作被锁定吗?

1 个回答

5

根据说明书

东京柜(Tokyo Cabinet)提供两种方式来连接数据库:一种是“读取者”,另一种是“写入者”。读取者可以用来获取数据,但不能存储或删除数据。写入者则可以进行所有的操作。在连接数据库时,系统会通过文件锁来控制不同进程之间的访问。当一个写入者连接到数据库时,其他的读取者和写入者都不能再连接。而当一个读取者连接到数据库时,其他的读取者可以连接,但写入者不能连接。通过这种机制,在多任务环境中可以保证数据的一致性。

你要么为每次写入操作创建并关闭一个写入者,要么使用东京暴君(Tokyo Tyrant)来提供同时访问的功能。

撰写回答