2011-01-03 50 views
9

Ý nghĩa của sự nhất quán cuối cùng trong Cassandra khi các nút trong một cụm đơn lẻ không chứa các bản sao của cùng một dữ liệu nhưng dữ liệu được phân phối giữa các nút. Bây giờ kể từ khi một mảnh duy nhất của dữ liệu được ghi lại tại một nơi duy nhất (nút). Tại sao Cassandra không trả lại giá trị gần đây từ nơi đó? Làm thế nào để phát sinh nhiều bản sao trong tình huống này?Ý nghĩa của sự nhất quán cuối cùng trong Cassandra?

Trả lời

1

Tùy thuộc vào khách hàng để quyết định mức độ nhất quán phù hợp (không, bất kỳ, một, nhóm hoặc tất cả). (Mức độ nhất quán kiểm soát cả hành vi đọc và ghi dựa trên nhân rộng của bạn.) Trong một cụm nút duy nhất, các mức nhất quán bất kỳ, một, số đại biểu và tất cả đều tương đương nhau.

+0

nhưng nhất quán giữa dữ liệu nào?, Vì một dữ liệu duy nhất được đặt tại một vị trí duy nhất trong cụm .. có nhiều dữ liệu không có bản sao..vì vậy, tính nhất quán là gì? –

+0

trên một cụm nút duy nhất bạn không phải lo lắng về tính nhất quán (miễn là bạn không viết không đồng bộ (CL.ZERO, không sử dụng cái này)). – Schildmeijer

+0

im xin lỗi tôi nghĩ rằng bạn đã cho tôi sai .. tôi có nghĩa là trong một cụm với một số nút, dữ liệu được phân phối/sharded (và ** không nhân rộng **) vì vậy không có nhiều bản sao của một mảnh duy nhất của dữ liệu giữa các nút khác nhau trong cụm cassandra n-node, sau đó làm thế nào là nhất quán được xác định trong trường hợp này, nơi có, infact, không có nhiều bản sao? ... tôi hy vọng bạn có quan điểm của tôi .. –

2

Ngay cả với nhân rộng = 1, tính nhất quán không nhất thiết ngay lập tức vì ghi được đệm trên nút mà bạn gửi chúng đến và do đó không nhất thiết phải gửi ngay tới nút chịu trách nhiệm cho khóa đó.

Nhưng tùy thuộc vào mức độ nhất quán mà bạn chọn.

Chủ yếu là trường hợp sử dụng cho Cassandra là với hệ số nhân bản> 1, đó là nơi sự nhất quán trở nên khó khăn hơn. RF = 3 có vẻ là một thiết lập chung (vì nó cho phép Quorum đọc/viết với một nút không có sẵn)

+1

Phải mất bao lâu trước khi ghi được xóa khỏi memtable (bộ nhớ đệm) vào đĩa (= đến nút chịu trách nhiệm)? – Kozuch

0

Cassandra có xu hướng thỏa hiệp trễ và nhất quán cho tính sẵn sàng . Đó là "cuối cùng nhất quán", một mô hình cho tính nhất quán của cơ sở dữ liệu NoSQL được sử dụng với các thiết lập được phân phối. Thay vì duy trì sự nhất quán nghiêm ngặt có thể thực sự làm chậm mọi thứ ở quy mô, sự nhất quán cuối cùng cho phép tính sẵn sàng cao — chỉ với chi phí của mọi trường hợp dữ liệu của bạn không được đồng bộ hóa trên tất cả các máy chủ ngay lập tức.

2

Tính nhất quán của Cassandra có thể điều chỉnh được. Điều gì có thể được điều chỉnh?
* Số lượng nút cần thiết để đồng ý trên dữ liệu cho lần đọc .. gọi là R * Số lượng nút cần đồng ý trên dữ liệu để ghi .. gọi là W
Trường hợp 3 nút, nếu chúng tôi chọn 2R và 2W .. sau đó trong khi đọc, nếu 2 nút đồng ý về một giá trị, đó là giá trị thực. Thứ 3 có thể hoặc không thể có cùng giá trị.
Trong trường hợp viết, nếu 2W được chọn, sau đó nếu dữ liệu được ghi vào 2 nút, nó được coi là đủ. Mô hình này là phù hợp.
Nếu R + w < = N trong đó N là số nút, cuối cùng nó sẽ nhất quán.
Cassandra duy trì một dấu thời gian với mỗi cột và mỗi trường của cột để cuối cùng trở nên nhất quán. Có một cơ chế ở chế độ nền để đạt được trạng thái nhất quán.
Nhưng như tôi đã nói, nếu R + W> N, thì nó chắc chắn. Đó là lý do tại sao sự nhất quán được coi là có thể điều chỉnh được trong Cassandra.

Các vấn đề liên quan