2012-03-20 13 views
2

私たちは短い寿命(〜15分)で膨大な量のオブジェクト(〜1 000 000 /日)を格納するためにmongodbを実行しています。合計仮想mem(== dbファイルサイズ)の使用量は1日あたり〜50GBです。現在のワークフローは次のようになります。短いライフサイクルのmongodb

  1. Storeオブジェクト
  2. 夜の時点で、古いオブジェクトごとに15分
  3. を削除するファイル名を指定して実行の修理 - reparingながら、サーバは〜20分間ハングします。

mongoが短い生き物に適しているかどうかを教えてください。 yesの場合、デフォルトの設定に対してどの設定を変更する必要がありますか。そうでない場合 - どのnosql(ドキュメントベース、JSONのようなオブジェクトを格納する)ソリューションを使用する必要があります。あなたがよくサイズを見積もることができる場合

おかげ

+0

私はあなたの必要性に合わせて思いついたと思います。ドキュメントベースではありませんが、jsonエンコード文字列を値に格納することができます。そしてそれはexpire関数を組み込んでいます。 – Magic

+0

使用する力ルーク Redis –

+0

なぜredisですか?どのような利点がありますか? – Andrew

答えて

3

capped collectionはこの使用法のために良い選択かもしれません。通常のコレクションと同様に暗黙のうちに明示的にキャップ付きコレクションを作成し、最大サイズを指定します。 cappedコレクションに新しいドキュメントが追加されると、古いドキュメントは自動的に削除されます。スペースの使用は一定であり、削除は暗黙的であり、1日の終わりに修復するものは何もありません。同じ長さのドキュメントを維持するために、新しい(より大きい)キャップ付きコレクションを作成する必要があるため、サイズのニーズが実際に増加している場合は、欠点があります。

今後の可能性については、「TTLコレクション」(https://jira.mongodb.org/browse/SERVER-211)を参照してください。この機能は、出荷されたバージョンには含まれていませんが、必要なものと正確に一致するため、メンテナンスが自動化されます。リンク先のページで機能を「見る」ことができますが、次のリリースの予定です。

+0

Tadは、私たちが必要とするほとんどのものですが、1つのポイントを持つコレクションは、サイズを変更しても更新できません。 – Andrew

+0

更新しないでください。新しいバージョンのオブジェクトを代わりに挿入し、filter、sort、limitなどを使用して最新のものだけを取得します。 – Bittrance

関連する問題