_ [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 万件登録 という件を見つけた。症状としてはこっちのが近いかもしれない。