トピックに浮かぶスレッドがいくつかありますが、私のユースケースは多少異なると思います。私が何をしたいかGoogle App Engine(Java)の全文検索
:
私のGAE/Jアプリ- 全文検索コンポーネントは、インデックスのサイズが小さい:25〜50メガバイトかそこら
- 私はにライブアップデートを必要としません。インデックスは定期的に再インデックスするのが良い
- これは自動完了などのために非常に高速である必要があります(データストアで逆インデックスを実装するとかなりの遅延が発生するという印象を受けます)
これまでに(ちょうど計画し、まだ何を実装しようとしていない)私の戦略:RAMDirectory
- 使用Luceneの定期的なcronジョブには、インデックスを作成し、データストアにそれをシリアル化し、更新を保存しますID(又はタイムスタンプ)
- 検索サーブレットは、起動時にインデックスをロードしRAMDirectoryで
- 各サーブレットは、現在の更新IDをチェックし、必要に応じて、インデックスを再ロード要求を作成
私があまり気にしていない主なことは、インスタンス間でメモリ内のデータを同期する方法です。これは動作するのでしょうか、何か不足していますか?
また、メモリ使用上の問題が発生する前に、どれくらい前にプッシュすることができますか? GAEのRAMクォータで何も見つかりませんでした。 (この指数は小さいですが、私は追加したいことを考えています)
もちろん、より良いアプローチについての考えはありますか?
メモリはGAEのインスタンス間で独立しているので、ストレートアップRAMのディレクトリは、それらの間で共有することはないだろうが。起動時にインスタンスごとに初期化する必要があります。新しいスタンバイサーバーとウォームアップ要求があればそれほど悪くないかもしれません。 –
まあ、ええ、私が上に概説したものの一部です – Dmitri