2012-05-02 4 views
2

私はすでに完全なhadoop分散ファイルシステムを設定するのではなく、それを使用しているので、いくつかのファイルをcassandraに流し込みたいと思います。 atyanaxまたはhectorに非同期型のputがあるので、完了時のコールバックを提供します.1000ミリ秒のネットワーク遅延を避けることができます.1000件のエントリを書きます(いくつかの行と列を分割してストリームします)。並行していくつかのサーバーに接続し、ストリーミングが完了するとすべての応答/コールバックが返されます)。ヘクターや天才たちはこれをサポートしていますか?cassandraまたはhector用のastyanaxで非同期式の処理を行う方法はありますか?

astyanaxがクエリコールバックをサポートしているように見えるので、プライマリキーを使用してastyanaxでファイルをストリーミングすることができますか?

おかげで、 ディーン

答えて

1

カサンドラは、実際にリサイクルAPIを介してストリーミングをサポートしていません。さらに、ファイルを複数の行と列にまたがる単一の変異バッチに分割することは非常に危険です。その結果、cassandraにヒープが吹き飛ばされることがあります。また、1MBのソケット書き込みバッファの制限に遭遇することもあります。これは特定のエラーの場合、実際におススメ接続が無期限にハングアップする可能性があります(これは最新バージョンのcassandraで修正される可能性があります) 。

Astyanax(https://github.com/Netflix/astyanax/wiki/Chunked-Object-Store)の新しいチャンクオブジェクトストアレシピは、Netflixでの経験を基にして、Cassandraに大きなオブジェクトを格納し、シンプルなAPIを提供しますあなたのためのすべてのチャンクと並列化を処理します。それはまだあなたのファイルサイズとチャンクサイズに依存して、(あなたのファイルサイズとチャンクサイズに依存して)1000秒間の呼び出しを行うことができますが、すべての再試行と並列化を処理します。同じことがファイルの読み込みにも適用されます。 APIはチャンクを読み込んで、それらを順番にOutputStreamに再アセンブリします。

+0

私はthrift apiを通過しません、そして、最近は倹約が非同期的にサポートされていると聞いています(依然としてリクエスト/返信ですが、回答はうまくいけば私のチャンネルとは別にnioチャンネルのスレッドプールから戻ってきます)。また、私はastyanaxチャンクを見て、Xスレッドを構成することによって混乱しました。なぜなら、非同期の場合は、書き込み、書き込み、読み取りを行わずに書き込むことができます。私のケースでは、私はastyanaxを介してHTTPアップロードをストリームするだけです。なぜアップロード操作ごとに複数のスレッドを使用するのですか? –

関連する問題