Solrを動かすのになんで64ビットにしないといけなかったのか

SolrはTomcat上で動くサーブレットです。
なので使えるメモリ(ヒープメモリ)の限界は
TomcatがのっかっているJVMのメモリの制約で決まっちゃいます。
ボクが使っていたSunの32bitJDK1.5.0.10は上限約2.6GBでした。
じゃあSolrを動かすのにそれじゃダメなのかというと
普通はそんなことなくって、数百万ドキュメントぐらいだったら
これだけあれば全然余裕です。
企業内システムはもちろんコンシューマ向けサービスであっても
ほとんどのサービスはこれだけあれば問題なくつかえるでしょう。
ただ、ボクが作っているシステムのように
毎日50万ドキュメントもクロールしてくるような仕組みだと
やっぱりいつか足りなくなっちゃいます。
だいたい1億ドキュメント超えるくらいで足りなくなっちゃいました。
最初はオプティマイズがOutOfMemoryになっちゃいました。
Solrのオプティマイズっていうのは
RDBのインデックス再構築みたいなもんで
ドキュメントの追加や削除で汚れてしまったインデックスを
きれいに作り直すという処理です。
これを適切なタイミングでやんないと検索性能が保てません。
で、この処理ってなんとなく想像つくと思うのですが
メモリがそーと必要になります。
そんなこんなで、1億ドキュメント超えるくらいから
2.6GBじゃ足りなくなっちゃいました。
今は64ビットにして4BG与えているので気持ちよく動いてます。
64ビットで幸せになれました。
64ビットの世界を作ってくれた沢山の方々に感謝です。