0

サイズが 1kB (数億のオーダー) のデータ チャンクの大規模なコレクションがあり、これらのデータ チャンクを格納およびクエリする方法が必要です。データ チャンクは追加されますが、削除または更新されることはありません。当社のサービスは、S3、EC2 プラットフォームにデプロイされています。

Amazon SimpleDB が存在することは知っていますが、プラットフォームに依存しないソリューションが必要です (たとえば、AWS から移動する必要がある場合)。

私の質問は、データ チャンクを格納および取得するためのこれら 2 つのオプションの長所と短所は何かということです。パフォーマンスはどのように比較されますか?

  • データ チャンクをファイルとして S3 に保存し、必要に応じて取得する
  • データ チャンクを MySQL サーバー クラスターに保存する

そんなに性能差あるの?

4

2 に答える 2

2

S3 を一種の「データベース」として使用して、小さな XML ファイルを使用して構造化データ オブジェクトを保持し、S3 の「キー」に依存してこれらのオブジェクトを検索してみました。

EC2 からでも、パフォーマンスは受け入れられませんでした。S3 へのレイテンシが高すぎます。

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

于 2009-05-14T04:19:16.750 に答える
1

これらのデータ チャンクへのアクセスをアプリケーションのユーザーに直接提供する必要がありますか? そうでない場合、S3 および HTTP GET リクエストはやり過ぎです。S3 が安全なサービスであることも考慮すると、GET リクエストごとのオーバーヘッド (わずか 1KB のデータ) はかなり大きくなります。

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

于 2009-04-29T21:32:58.947 に答える