我通过 PyTyrant 模块使用 Tokyo Cabinet 数据库,将数据存储在哈希表(*.tch 文件)中。当文件大小达到 65 GB 时,会出现以下错误:当向数据库添加新条目时,查询新键会给出“没有这样的键错误”。但是,当我查询所有键的列表时,会列出新键。此外,不能从表中删除有问题的条目。
谁能解释一下?
编辑: 'tcrmgr inform -st -port 1978 localhost' 在错误之前的输出:
version 1.1.40
libver 323
protver 0.91
os Linux
time 1397633010.989177
pid 25308
sid 0
type hash
path tmp.tch
rnum 1104
size 68721564032
bigend 0
fd 8
loadavg 1.630000
memsize 153833472
memrss 2265088
ru_real 3272.949521
cnt_put 1105
cnt_putkeep 0
cnt_putcat 0
cnt_putshl 0
cnt_putnr 0
cnt_out 0
cnt_get 1166
cnt_mget 0
cnt_vsiz 2
cnt_iterinit 5
cnt_iternext 680
cnt_fwmkeys 0
cnt_addint 0
cnt_adddouble 0
cnt_ext 0
cnt_sync 0
cnt_optimize 0
cnt_vanish 0
cnt_copy 0
cnt_restore 0
cnt_setmst 0
cnt_rnum 102
cnt_size 0
cnt_stat 884
cnt_misc 0
cnt_repl 0
cnt_put_miss 0
cnt_out_miss 0
cnt_get_miss 2
并在添加另一条记录后,出现错误:
version 1.1.40
libver 323
protver 0.91
os Linux
time 1397633011.102457
pid 25308
sid 0
type hash
path tmp.tch
rnum 1105
size 68731564064
fatal 22: no record found
bigend 0
fd 8
loadavg 1.630000
memsize 153833472
memrss 2265088
ru_real 3273.062801
cnt_put 1106
cnt_putkeep 0
cnt_putcat 0
cnt_putshl 0
cnt_putnr 0
cnt_out 0
cnt_get 1167
cnt_mget 0
cnt_vsiz 2
cnt_iterinit 5
cnt_iternext 680
cnt_fwmkeys 0
cnt_addint 0
cnt_adddouble 0
cnt_ext 0
cnt_sync 0
cnt_optimize 0
cnt_vanish 0
cnt_copy 0
cnt_restore 0
cnt_setmst 0
cnt_rnum 102
cnt_size 0
cnt_stat 885
cnt_misc 0
cnt_repl 0
cnt_put_miss 0
cnt_out_miss 0
cnt_get_miss 3