ユーザーが作成したコンテンツのストレージと高速な取得を処理するライブラリまたはコンポーネントはありますか?

StackOverflow https://stackoverflow.com/questions/2148711

質問

大規模でアクティブなユーザー ベースがあり、各ユーザーがプロフィール写真や追加の画像、その他の成果物を保存したい場合を考えると、そのようなデータの簡単な保存とクエリを可能にするライブラリやフレームワークはありますか?

リファレンス実装は Facebook のものになります。 干し草の山の写真インフラストラクチャ.

次の特性が重要です

  • データ ストアは適切に拡張する必要があります。リソースの追加は、ストアを使用するアプリケーションに対して透過的である必要があります (同様の質問 について言及した答えがありました LinkedInのヴォルデモート).
  • 保存されているデータと一緒にメタデータを追加する機能。
  • メタデータは良好なパフォーマンスでクエリできます (例:Lucene/Solr などの構成可能なインデックスに保存されます)。
  • 迅速なキーベースのアクセスといくつかの中間キャッシュ層

Java Web アプリケーションに簡単に統合できるライブラリやフレームワークに関する推奨事項は大歓迎です。

アップデート:最初のいくつかの回答に感謝します。どのような種類の回答が期待されるのかについて、さらに詳しく説明する必要があります。 東武の答え, 、Java関連ではありませんが、これは非常に優れています(賛成票を投じただけです)。ファイル システム アクセスと DB を組み合わせてソリューションを実装し、その間にキャッシュのレイヤーを追加することは可能ですが、私よりも有能な誰かがすでにより優れたソリューションを設計、実装、実行しているのであれば、それは時間の無駄だと思います。解決。基盤となる DB または JCR 実装を備えたソリューションに基づくものは適切ですが、他のインフラストラクチャを実装することは私がやりたいことではありません。

役に立ちましたか?

解決

私たちは、Fedoraのコモンズからメディアリポジトリとの良好な経験をしてきました(のhttp://www.fedora- commons.org/ に)、あなたはそれに関連するメタデータと一緒にメディア資産を保管することを可能にします。私たちは、拡張性やカスタマイズに問題があるにも(これはあなたのケースで必要とされるであろうあれば)、それは難しいトリプルストアとなるストレージ層を交換することだったしませんでした。あなたはSolrのを使用して索引にデータが必要な場合は、ストアのXMLベースのデータに(「RELS-EXT」)事前に定義されたメタデータフィールドを使用することができます。

他のヒント

MogileFS には何LiveJournalの用途です。ではない、特にJavaのいえます。

私はあなたの要件が非常に近いデータベースを提供しているものにしている感じ。ジャスト(たとえば、あなたがメタデータとは別のテーブル内の画像のような大きなデータを持つことができます)あなたのニーズに必ずテーブルの設計対応を行います。

あなたのすべての要件は、データベース内のキャッシュ層を含む、カバーされるだろう(と、必要に応じて、あなたはおそらく、あなたのアプリケーションの残りの部分にも使用されることを、アプリケーションに追加のキャッシング層を持つことができます)。

のApache Jackrabbitのの中で指定されたJava技術API(JCR、用コンテンツリポジトリの完全に準拠した実装でありますJSR 170および283)。 それは(少なくとも2年以上古いバージョンのIの使用で)いくつかのパフォーマンスの問題を持っている。しかし、それらを克服するための最良の方法は、ウェブサーバに静的なイメージを複製しています。 (WebDAVの、davfsとrsyncの使用)

これは、「大規模かつアクティブなユーザーベース」の定量化に依存して...

ウェブサイトの80%は、単にy_serialのようなのNoSQLスキーマフリーのアプローチを使用することができます:

y_serial.pyモジュール::倉庫PythonはSQLiteの

とオブジェクト

「シリアライズ+永続性::数行のコードでは、圧縮および注釈PythonはSQLiteのにオブジェクトを、後から任意のSQLなしのキーワードで時系列にそれらを取得するほとんどの役に立つ。 『ストアスキーマレスデータへのデータベースのための標準的な』モジュール。 "

http://yserial.sourceforge.netする

圧縮ユーザーごとに写真やアーティファクトが2M下にある場合は、パフォーマンスが良いことがあります。

今のFacebook、ディグ、及びツイッターによって採用されている -

残りの20%の場合の使用のために、一方が容易カサンドラにyserialからデータをインポートします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top