1 つのマルチメディア システムを開発したいのですが、そのシステムには数百万のビデオと画像を保存する必要があるため、分散ストレージ サブシステムを選択したいと考えています。誰が私にいくつかの提案を与えることができますか? ありがとう!
5 に答える
「何百万ものビデオと画像」の最良の選択肢は、コンテンツ配信/配信ネットワーク(CDN)だと思います。
CDNは、メディアファイルのより高速で効率的な配信を可能にするサーバーセットアップです。これは、グローバルネットワークに沿ってさまざまなポイントオブプレゼンス(POP)でメディアのコピーを維持することにより、クライアントへの迅速なアクセスと可能な限り最速の配信を保証します。
CDNを使用する場合は、多くの問題(配信、高速アクセス)を気にする必要はありません。CDNとの統合も非常に簡単です。
@yi_H
クライアントに戻る前に、最初に複数のノードに複製されるように書き込みを構成できます。もちろん、それが必要かどうかはユースケースに依存します。そして間違いなくパフォーマンスのヒットを伴います。したがって、書き込みの多い分析データベースを実装している場合は、書き込みスループットに大きな影響があります。
要件の欠如などの点であなたが質問についてする他のすべてのポイント、私はそれを2番目にしています。
nosqlデータベースにメタデータを含むファイルシステムを複製することは、非常に一般的な方法です。@なぜこのようなアプローチを検討したのですか?
Mongodb gridfsを見たことがありますか?私はこれを使ったことがありませんが、それがあなたに何かアイデアを与えるかどうかを確かめるために見てみたいものです。
Yo は、あなたの要件について (ほぼ) ゼロの情報を提供してくれました。例えば:
- アトミック トランザクションが必要ですか?
- システムの読み取りまたは書き込みが重いですか?
- 高速なクエリが必要ですか、それともデータ セットをバッチ処理したいですか?
- 動画の大きさは?
- データをローカル (LAN 上) に分散したいですか、それとも複数のデータセンター / 大陸にまたがって分散したいですか?
何をサポートする必要があるのかわからない場合、適切なツールをどのように選択すればよいでしょうか?
システムに関する知識がなくても、ビデオと画像にある種の FS レプリケーションを使用し、アイテムに関連付けられたメタデータを MongoDB、MySQL Master-Master、または MySQL Cluster に保存することをお勧めします。
何に関連して配布されますか?
配布するレプリケーションについて話している場合:
MongoDbはマスタースレーブレプリケーションのみに制限されているため、読み取り/書き込みが可能なノードは1つだけであり、実際に分散されたシステムでは単一障害点が発生します。CouchDBはピアツーピア複製が可能です。
こことここでもhbaseと比較した非常に良い比較を見つけてください。
CouchDBを使用する場合は、httpをデータベースと通信し、Webサービスを組み込むことにも注意する必要があります。
よろしく、クリス
別の方法として、MongoDB の GridFS を使用する方法があります。これは、(非常に管理しやすい) 冗長な分散ファイルシステムとして機能します。
読み取りが遅いと言う人もいますが(主にその設計の性質によるものです)、システム全体の取引を妨げるものである必要はありません。後でパフォーマンスが必要な場合は、常に Varnish または Squid をファイルシステム層の前に置きます。
私が知る限り、Squid はすべてのあまりホットでないファイルのオンディスク キャッシュもサポートしています。
ソース: