2013-03-22 2 views
7

私はCassandraとそのNode.JSドライバHelenusでいくつかのテストを行っています。 CQLを使用してクエリの整合性レベルを変更する方法はありますか?CQLクエリのHelenus一貫性レベルを変更してください

Helenusのドキュメントでは、Helenus Thriftコネクタを使用してこれを行う例のみを示していますが、CQLコネクタを使用したいと思います。

私はこの

conn.cql(cqlRead, vals, {ConsistencyLevel:ANY, gzip:true}, cb); 

のようなカサンドラを照会しようとしましたが、ノードは

ReferenceError: ANY is not defined 

次に、このエラーを投げ、私は「ANY」「1」に変更し、ノードがコードを走ったが、私はdidnの差異に気付かなかった。

答えて

3

問題は、読み込みにCL.ANYを使用できず、書き込みにのみ使用できないことです。 ANYは、使用可能なレプリカがない場合でも、コミット・ログの書き込みを成功としてカウントすることを意味します。コミット・ログは問合せでは読めないため、CL.ANYを読取りに使用することは意味がありません。

+1

これは間違いありません。私はCassandraの文書を見ました。整合性レベルをANYに設定して読むことはできません。しかし、これ以外に、Helenus CQLコネクターは 'ConsistencyLevel' JSONオプションキーを使用しません。 ConsistencyLevelクエリオプションを変更する場合は、オプションオブジェクトではなくクエリ文字列を変更する必要があります。 私のcqlRead varは "SELECT * FROM DUMMY"で、代わりに "SELECT * FROM DUMMY CONSISTENCY ALL"を使用する必要があります。 助けてくれてありがとう! –

1

私はHelenus documentationを見ていると、彼らは道

cf.get('foo', {consistency:helenus.ConsistencyLevel.ONE}, function(err, row){ 
    // Your code here 
}) 

あなたは一貫してみました一貫性の設定:helenus.ConsistencyLevel.ANYを。 ReferenceError

関連する問題