Riak にバイナリデータを保存する際の問題は何ですか?
クラスタリングの保守性とパフォーマンスに影響しますか?
分散ファイル システムではなく、Riak を使用した場合のパフォーマンスの違いは何ですか?
Riak にバイナリデータを保存する際の問題は何ですか?
クラスタリングの保守性とパフォーマンスに影響しますか?
分散ファイル システムではなく、Riak を使用した場合のパフォーマンスの違いは何ですか?
@Oscar-Godson の優れた回答に加えて、50MB をはるかに超える値で問題が発生する可能性があります。Bitcask は、数 KB までの値に最適です。大きな値を格納している場合は、innostoreなどの代替ストレージ バックエンドを検討することをお勧めします。
バイナリ値を保存した経験はありませんが、中規模のクラスター (5 ノード、1 億個の値、数十 TB) を運用しており、値の挿入と取得に関連するエラーが頻繁に発生しています。サイズは数百 KB です。この場合のパフォーマンスには一貫性がありません。機能する場合もあれば、機能しない場合もあります。したがって、テストする場合は、大規模にテストしてください。
また、map-reduce クエリの実行時に大きな値の問題が発生することも確認されています。単純にタイムアウトになります。ただし、それはバイナリ値との関連性が低い場合があります...(@ Matt-Ranneyが述べたように)。
@Stephen-C の回答も参照してください。
私が考えることができる唯一の問題は、彼らがアドバイスする50MBを超えるバイナリデータを保存することです. Riak の要点はまさに次のとおりです。
Riak を選択するもう 1 つの理由は、データのモデル化における柔軟性です。Riak は、指定されたデータを内容にとらわれない方法で保存します — テーブル、列、または参照整合性を強制しません。これは、バイナリ ファイルを JSON や XML などのよりプログラマーに透過的な形式と一緒に保存できることを意味します。
個人的には、画像やドキュメント (DOC と PDF の両方) などのデータを Riak に保存する際の問題に気付いていません。パフォーマンスの数値はありませんが、覚えていればいくつか収集できるかもしれません。
Riakでは、大きなファイルを格納するための API を提供するLuwakを使用できます。これはかなり役に立ちました。
1 つの問題は、バイナリ データ全体で JavaScript の map/reduce を使用することが、不可能ではないにしても難しいことです。そのためにはおそらくErlangが必要です。