私は、メディアのアーカイブ、検索、アップロード、配布、および BLOB の処理に関するすべてのシステムを開発しています。
現在、BLOB を処理する最善の方法を見つけようとしています。大量のメモリと巨大なディスクを備えたハイエンド サーバーのリソースは限られていますが、中程度のパフォーマンスの市販のコンピューターの大規模なアレイにアクセスして、それらをインターネットに接続することができます。
したがって、BLOB を中央のリレーショナル データベースに格納しないことにしました。最悪の場合、平均的な 1 台のマシン上に非常に重いデータベース インスタンスが 1 つ存在する可能性があるからです。オプションではありません。
BLOB をファイルとしてファイル システムに直接保存し、そのパスをデータベースに保存するのもやや見苦しく、配布は手動で管理し、さまざまなコピーを自分で追跡する必要があります。近づきたくもありません。
CouchDB を調べたところ、ピア ツー ピア ベースの設計が気に入りました。これにより、インターネット全体でマシンの分散クラスターを実行できるようになります。つまり、次のことを意味します。
- 低コストのハードウェア
- すぐに使える冗長性とフェールオーバーの分散
- 軽量 REST インターフェイス
したがって、私が正しければ、次のように要約できます:クラウドのような API と自己管理、分散、複製システム
システムの残りの部分は、セッション、セキュリティ、ユーザー、検索などの処理など、平均的な Web アプリケーションが行う通常の処理を行います。この部分では、やはりリレーショナル データモデルを使用したいと思います。(CouchDB は、リレーショナル データベースに代わるものではないと主張しています)。
したがって、BLOB のメタデータはリレーショナル データベースに含まれますが、BLOB 自体は CouchDB に含まれます。
このアプローチに問題はありますか? 私は何か重要なものを見逃していますか?より良い解決策を考えられますか?
ありがとうございました!