Cấp độ consistency trong Cassandra có thể được set trên mỗi câu truy vấn đọc ghi. Cái này cho phép nhà phát triển ứng dụng điều chỉnh consistency trên mỗi câu truy ván dựa vào yêu cầu của họ là nhận được thời gian đáp ứng nhanh hay kết quả trả về chính xác. Cassandra offer 1 số cấp độ nhất quán cho cả đọc và ghi
• Nhất quán ghi
Khi bạn ghi trong Cassandra, consistency level đặc tả có bao nhiêu bản sao được viết thành công trước khi trả về kết quả cho client
Theo những consistency level được cung cấp, ANY là consistency thấp nhất (nhưng độ sẵn sang cao nhất). QUORUM ở khoảng giữa đảm bảo nhất quán tốt nhất nhưng vẫn còn chịu 1 vài cấp độ lỗi
Quorum được tính toán là (replication_factor / 2) + 1
Ví dụ nếu repilation_factor là 3 thì quorum là 2 (có thể cho phép 1 bản sao bị hư). Nếu repilation_factor là 6 thì quorum là 4 (cho phép 2 bane sao bị hư)
ONE: Trả về phản hồi từ bản sao gần nhất (được quyết định bởi snitch). Mặc định, read repair sẽ chạy ở back ground để để nhất quán dữ liệu với các bản sao còn lại
QUORUM: trả về record với timestamp gần nhất mỗi khi 1 quorum của những bản sao đã phản hồi
LOCAL_QUORUM: trả về record với timestamp gần nhất mỗi lần 1 quorum của bản sao trong data center hiện tại đã phản hồi. Bỏ qua độ trễ do giao tiếp giữa các node trong data center
EACH_QUORUM: Trả về record với timestamp gần nhất mỗi lần 1 quorum của bản sao trong mỗi data center của cluster được trả về
ALL: Trả về record với timestamp gần nhất khi tất cả bản sao trả về. Fail khi một trong các bản sao không trả về
• Choosing Client Consistency Levels
Chọn consistency level để đọc ghi bao gồm việc quyết định yêu cầu của bạn giữa kết quả nhất quán và độ trễ đọc ghi
Nếu độ trễ đọc ghi là ưu tiên hàng đầu, xem xét consistency level ONE. Nếu nhất quán là ưu tiên hàng đầu, bạn có thể đảm bảo rằng đọc ghi sẽ luôn phản ánh tác vụ ghi gần nhất bằng cách dùng công thức
(nodes_written + nodes_read) > replication_factor