estcmd merge で「ファイルサイズ制限を超過しました」
_ [comp] estcmd merge で「ファイルサイズ制限を超過しました」
Hyper Estraier 1.4.4 + qdbm 1.8.70 にて、多数のデータベースを estcmd merge でマージしてたら、途中で停止してしまった。数日がかりの作業なんだけど…。
estcmd: INFO: status: name=estindex dnum=288551 wnum=241395 fsiz=3247152363 crnum=0 csiz=0 dknum=0
estcmd: INFO: opening the target database: name=estindex dnum=288551 wnum=241395 fsiz=3247152363 crnum=0 csiz=0 dknum=0
estcmd: INFO: calculating ID mapping: name=estindex dnum=288552 wnum=241395 fsiz=3247152363 crnum=0 csiz=0 dknum=0
estcmd: INFO: importing documents: name=estindex dnum=288651 wnum=241395 fsiz=3247164567 crnum=0 csiz=0 dknum=0
estcmd: INFO: importing words: name=estindex dnum=288651 wnum=241395 fsiz=3247428969 crnum=0 csiz=0 dknum=0
../estindex-merge.sh: line 3: 28183 ファイルサイズ制限を超過しました
estcmd merge estindex $i
マージ先のデータベースを調べてみると、
% du -h estindex
19M estindex/_attr/0002
:
110M estindex/_attr
61M estindex/_text/0014
:
938M estindex/_text
8.0K estindex/_kwd/0002
:
56K estindex/_kwd
2.1G estindex/_idx
3.1G estindex
% ls -l estindex/_idx/0001
-rw-r--r-- 1 dai users 2147483647 9月 29 14:42 estindex/_idx/0001
_idx/0001 がファイルサイズ 2G に到達して、
% estcmd inform estindex
estcmd: ERROR: estindex: database problem
開けなくなった。estcmd repair で修復はできたっぽいので助かった。
% estcmd repair estindex
%
% ls -l estindex/_idx/0001
-rw-r--r-- 1 dai users 946882603 9月 29 15:52 estindex/_idx/0001
ファイルサイズも半分以下の大きさになったけど、マージ作業はまだまだ途中だし、また止まったら洒落にならない。 ということを ML に投げた。ulimit は調べたけどかかってたようなかかってなかったような。N-gram法での英文100 万件登録 という件を見つけた。症状としてはこっちのが近いかもしれない。