1

私は、メディアのアーカイブ、検索、アップロード、配布、および BLOB の処理に関するすべてのシステムを開発しています。

現在、BLOB を処理する最善の方法を見つけようとしています。大量のメモリと巨大なディスクを備えたハイエンド サーバーのリソースは限られていますが、中程度のパフォーマンスの市販のコンピューターの大規模なアレイにアクセスして、それらをインターネットに接続することができます。

したがって、BLOB を中央のリレーショナル データベースに格納しないことにしました。最悪の場合、平均的な 1 台のマシン上に非常に重いデータベース インスタンスが 1 つ存在する可能性があるからです。オプションではありません。

BLOB をファイルとしてファイル システムに直接保存し、そのパスをデータベースに保存するのもやや見苦しく、配布は手動で管理し、さまざまなコピーを自分で追跡する必要があります。近づきたくもありません。

CouchDB を調べたところ、ピア ツー ピア ベースの設計が気に入りました。これにより、インターネット全体でマシンの分散クラスターを実行できるようになります。つまり、次のことを意味します。

  • 低コストのハードウェア
  • すぐに使える冗長性とフェールオーバーの分散
  • 軽量 REST インターフェイス

したがって、私が正しければ、次のように要約できます:クラウドのような API と自己管理、分散、複製システム

システムの残りの部分は、セッション、セキュリティ、ユーザー、検索などの処理など、平均的な Web アプリケーションが行う通常の処理を行います。この部分では、やはりリレーショナル データモデルを使用したいと思います。(CouchDB は、リレーショナル データベースに代わるものではないと主張しています)。

したがって、BLOB のメタデータはリレーショナル データベースに含まれますが、BLOB 自体は CouchDB に含まれます。

このアプローチに問題はありますか? 私は何か重要なものを見逃していますか?より良い解決策を考えられますか?

ありがとうございました!

4

3 に答える 3

3

Amazon のリレーショナル データベース SimpleDB と S3 を SimpleJPA と一緒に試すことができます。SimpleJPA は、SimpleDB 上の JPA 実装です。SimpleJPA は、リレーショナル構造に SimpleDB を使用し、BLOB を格納するために S3 を使用します。

于 2009-07-18T19:59:17.840 に答える
2

MongoDBを見てみましょう。効率的な形式でのバイナリ データの格納をサポートし、信じられないほど高速です。

于 2009-07-23T09:21:01.530 に答える
0

問題ない。私はそれに非常に似たデザインをしました。また、データとメタデータを管理する方法として、CouchDB や Adaptive Object-Model アーキテクチャ パターンの代わりに HBase を検討することもできます。

于 2009-07-18T19:40:28.643 に答える