2009-04-29 9 views
0

私は1kB(数億のオーダー)のデータチャンクの大規模なコレクションを持っており、これらのデータチャンクを保存してクエリする方法が必要です。データチャンクは追加されますが、削除や更新は行われません。当社のサービスはS3、EC2プラットフォームに導入されています。S3からEC2多数の小さなファイルを取得するためのパフォーマンス

Amazon SimpleDBは存在しますが、私はプラットフォームに依存しない解決策を望んでいます(たとえばAWSから移動する必要がある場合)。

私の質問は、データチャンクの保存と取得のためのこれら2つのオプションのプロとコンシューマーは何ですか?パフォーマンスはどのように比較されますか?

  • ストアS3上のファイルなどのデータチャンクとの性能差がそれほどあるだろうMySQLサーバのクラスタ

  • ストアデータチャンクを必要なときにそれらをGET!

  • 答えて

    1

    これらのデータチャンクへのアクセスをアプリケーションのユーザーに直接提供する必要がありますか?もしそうでなければ、S3とHTTPのGETリクエストは過剰です。また、S3はセキュリティ保護されたサービスであることを念頭に置いて、すべてのGET要求(わずか1KBのデータ)に対するオーバーヘッドはかなり大きくなります。

    MySQLサーバクラスタはより良いアイデアですが、EC2で実行するには、Elastic Block Storageを使用する必要があります。最後に、SimpleDBを除外しないでください。これは、おそらくあなたの問題のための最良の解決策です。慎重にシステムを設計すると、将来他のデータベースシステム(分散型またはリレーショナル型)で簡単に移行できます。

    2

    S3を「データベース」のような小さなXMLファイルを使用して構造化データオブジェクトを保持し、これらのオブジェクトをルックアップするためのS3「キー」に依存するようにしました。

    EC2からのパフォーマンスでさえ、許容できませんでした.S3のレイテンシが大きすぎます。

    EBSデバイスでMySQLを実行すると、非常に多くのレコードがあっても1桁高速になります。

    関連する問題