[groonga-dev,01661] 仮想メモリサイズを超えるmroongaのインデックス構築について

Back to archive index

Naoya Murakami visio****@gmail*****
2013年 8月 22日 (木) 15:59:20 JST


お世話になっております。村上です。

インデックスを無効にした状態で大量にデータをinsertし、
alter table enable keysをすると、大容量のインデックスが
一気に構築されます。

このとき、仮想メモリサイズを超えるインデックスを作ろうとすると、
mysqldがクラッシュします。

swapを大きくして、作成されるインデックスサイズよりも仮想メモリサイズを
大きくすることでmysqldがクラッシュすることを回避することができます。

しかしながら、事前にインデックスサイズを正確に見積もるのは難しく、
あらかじめ、swapを大きくするのを忘れると、データが破壊されて悲しい
思いをします。

仮想メモリサイズを超える場合には、データディレクトリ上に一時ファイル
を作る等の挙動にしていただくことは可能でしょうか?
こうすると、びくびくswapをでかめにとる必要がなくなるので、
ご検討いただけるとうれしいです。

なお、swapを大きくするという対応策があるので、検討の優先度が低くても
実現できなくても大丈夫です!

・groongaログ
2013-08-19 21:35:57.243693|n|dc11e700|flushed: 3223 encsize:1892227
2013-08-19 21:35:57.244116|n|dc11e700|nblocks=3224,
update_buffer_size=57423251523
2013-08-19 21:36:18.862693|n|dc11e700|nterms=4 chunk=348 total=0KB
・・・
2013-08-19 21:37:19.234557|n|dc11e700|nterms=304 chunk=143017
total=3695955KB
2013-08-19 21:37:26.867652|n|b6964720|mroonga 3.06 started.

・mysqldログ
130819 21:37:24 - mysqld got signal 11 ;

このときは、実メモリ32G、swap8Gでした。
このあと、swapを数十GB足したらうまくインデックス構築できました。

以上、よろしくお願いします。



groonga-dev メーリングリストの案内
Back to archive index