1

私のアプリケーションでは、列ファミリーのすべての行を取得したいのですが、一時的に使用できない行を無視します(たとえば、一部のノードがダウンしています)。

複数のノードがあります。ノードの1つがダウンしている場合、get_rangeはスローされUnavailableException、何も取得できません。

私が欲しいのは、現在利用可能なすべての行を取得することです。ユーザーにとっては、何もないよりはましだからです。これどうやってするの?

  • 私はpycassaを使用しています。
  • 私の列ファミリーの行キーはランダムな文字列のようなものなので、getすべての行を1つずつ取得するために使用することはできません。
4

2 に答える 2

0

get_rangeトークンによるサポートがpycassaに追加された場合、(によって報告されたようにdescribe_ring)各トークン範囲を個別にフェッチして、UnavailableExceptionが発生したものを破棄できます。それを除けば、ディーンが述べているように、一貫性レベルONEを使用することが最善の選択肢です。

于 2012-09-17T01:22:42.153 に答える
0

行キーのリストを取得するgetの呼び出しがあるはずなので、行キーを1つずつ取得する必要はありません。また、インデックスがある場合は、それが役立ちます。たとえば、playORMには、テーブルの各パーティションのインデックスがあります(必要な数のパーティションを持つことができます)。これで、各インデックスを反復処理して、getを呼び出してキーのリストを渡すことができます。

また、整合性読み取りもONEに設定されていることを確認してください;)。

後で、ディーン

于 2012-09-16T00:55:59.550 に答える