2013-03-22 31 views
7

Tôi đang thực hiện một số thử nghiệm với Cassandra và Trình điều khiển Node.JS của nó, Helenus. Có cách nào để thay đổi mức độ nhất quán của một truy vấn, bằng cách sử dụng CQL?Thay đổi mức độ phù hợp Helenus trong truy vấn CQL

Tài liệu Helenus chỉ hiển thị ví dụ về việc thực hiện điều này bằng cách sử dụng đầu nối Helenus Thrift, nhưng tôi muốn sử dụng đầu nối CQL.

tôi đã cố gắng để truy vấn Cassandra như thế này

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

nhưng nút ném lỗi này

ReferenceError: ANY is not defined 

Sau đó, tôi đã thay đổi 'BẤT CỨ' thành '1' và nút chạy mã này, nhưng tôi đã không 't nhận thấy bất kỳ sự khác biệt.

Trả lời

3

Vấn đề là bạn không thể sử dụng CL.ANY để đọc, chỉ để ghi. BẤT K means có nghĩa là đếm đăng nhập cam kết ghi là thành công, ngay cả khi không có bản sao nào có sẵn. Vì các bản ghi cam kết không thể đọc được bởi các truy vấn nên việc sử dụng CL.ANY cho các lần đọc không có nghĩa là Cassandra sẽ không cho phép bạn.

+1

Đúng vậy. Tôi đã xem Tài liệu Cassandra và không thể đọc bằng Mức độ nhất quán được đặt thành BẤT CỨ. Tuy nhiên, bên cạnh đó, kết nối Helenus CQL không sử dụng khóa tùy chọn JSON 'ConsistencyLevel'. Nếu tôi muốn thay đổi tùy chọn truy vấn ConsistencyLevel, tôi nên sửa đổi chuỗi truy vấn và không phải đối tượng tùy chọn. var cqlRead của tôi là "SELECT * FROM DUMMY" và tôi nên sử dụng "SELECT * FROM DUMMY USING CONSISTENCY ALL" để thay thế. Cảm ơn sự giúp đỡ! –

1

Tôi đã thấy các Helenus documentation và họ thiết lập sự nhất quán như vậy

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

Các bạn đã thử với tính nhất quán: helenus.ConsistencyLevel.ANY. Tôi nghĩ rằng bạn có thể nhận được một sự khác biệt hơn Tham chiếuError