我通过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