Câu hỏi Sự nhất quán cuối cùng bằng tiếng Anh đơn giản


Tôi thường nghe về sự nhất quán cuối cùng trong các bài phát biểu khác nhau về NoSQL, lưới dữ liệu, v.v. Dường như định nghĩa về sự nhất quán cuối cùng thay đổi theo nhiều nguồn (và thậm chí có thể phụ thuộc vào việc lưu trữ dữ liệu cụ thể).

Bất cứ ai có thể đưa ra một lời giải thích đơn giản những gì cuối cùng nhất quán là nói chung, không liên quan đến bất kỳ lưu trữ dữ liệu cụ thể?


76
2018-04-09 19:21


gốc


Ví dụ: Wikipedia không giúp được gì? en.wikipedia.org/wiki/Eventual_consistency - Oliver Charlesworth
@OliCharlesworth: không. Có lẽ nó chỉ là tôi, nhưng nó hoàn toàn không rõ ràng ngay cả sau khi đọc hai lần. - Roman


Các câu trả lời:


Tính nhất quán cuối cùng:

  1. Tôi xem báo cáo thời tiết và biết rằng trời sẽ mưa vào ngày mai.
  2. Tôi nói với bạn rằng trời sẽ mưa vào ngày mai.
  3. Người hàng xóm của bạn nói với vợ rằng ngày mai trời sẽ nắng.
  4. Bạn nói với hàng xóm của bạn rằng trời sẽ mưa vào ngày mai.

Cuối cùng, tất cả các máy chủ (bạn, tôi, hàng xóm của bạn) đều biết sự thật (rằng trời sẽ mưa vào ngày mai), nhưng trong khi đó khách hàng (vợ anh) đã nghĩ rằng trời sắp nắng, mặc dù cô ấy hỏi sau một hoặc nhiều máy chủ (bạn và tôi) có giá trị cập nhật hơn.

Trái với tuân thủ nghiêm ngặt / tuân thủ ACID:

  1. Số dư ngân hàng của bạn là 50 đô la.
  2. Bạn nạp 100 đô la.
  3. Số dư ngân hàng của bạn, được truy vấn từ bất kỳ máy ATM nào ở bất cứ đâu, là 150 đô la.
  4. Con gái của bạn rút $ 40 bằng thẻ ATM của bạn.
  5. Số dư ngân hàng của bạn, được truy vấn từ bất kỳ máy ATM nào ở bất cứ đâu, là $ 110.

Tại thời điểm nào, số dư của bạn có thể phản ánh bất kỳ điều gì ngoài tổng số thực tế của tất cả các giao dịch được thực hiện trên tài khoản của bạn vào thời điểm chính xác đó.

Các lý do lý do tại sao rất nhiều hệ thống NoSQL có sự nhất quán cuối cùng là hầu như tất cả chúng đều được thiết kế để phân phối, và với hệ thống phân phối hoàn toàn có chi phí siêu tuyến tính để duy trì tính nhất quán nghiêm ngặt (nghĩa là bạn chỉ có thể mở rộng cho đến trước khi mọi thứ bắt đầu chậm lại, và khi nào bạn cần phải ném thêm phần cứng theo cấp số nhân vào vấn đề để tiếp tục mở rộng quy mô).


130
2018-04-09 19:25



Tôi không hiểu. Sự tăng trưởng là tuyến tính hay theo cấp số mũ? - Maciek Kreft
Sự tăng trưởng trong chi phí truyền thông của một hệ thống N nút phù hợp chặt chẽ thường được hiểu là siêu tuyến tính (nghĩa là, nhiều hơn tuyến tính). Có thể được theo cấp số nhân, có thể là khối ... Phụ thuộc vào giao thức truyền thông, v.v. - Chris Shain
Câu trả lời tốt. Một số câu hỏi tiếp theo: không phải là "xấu" mà yêu cầu đến máy chủ có thể giúp bạn nhận được thông tin sai lệch / lỗi thời không? Mọi người có ổn với điều đó hay liệu có giải pháp cho nó không? Ngoài ra, làm thế nào là dữ liệu cuối cùng được nhân rộng trên các máy chủ khác nhau? Nếu một trong các máy chủ bị trục trặc và dữ liệu đang được nhân rộng trên các máy chủ, nếu máy chủ đó sao lưu, thì dữ liệu của nó sẽ cập nhật như thế nào? - noblerare
@ noblerare nó "xấu" cho các mức độ khác nhau của badness. Sẽ rất tệ nếu số dư ATM của tôi hết hạn. Sẽ không tệ nếu cơ sở dữ liệu ghi nhật ký của tôi không bị bắt kịp hoặc nếu nguồn cấp dữ liệu Facebook của tôi chỉ mất vài giây. Cơ chế sao chép và độ bền dữ liệu rất đa dạng và phụ thuộc vào nền tảng cụ thể. Đối với Cassandra (như một ví dụ), người viết có thể quyết định liệu một bài viết cụ thể có thành công hay không, nó cần phải được cam kết trên một, tất cả hoặc một nhóm túc số (đa số) các nút. HBase có cách tiếp cận khác, trong đó một nút cụ thể là "chính" cho mỗi hàng dữ liệu. - Chris Shain


Tính nhất quán cuối cùng:

  1. Dữ liệu của bạn được sao chép trên nhiều máy chủ
  2. Khách hàng của bạn có thể truy cập bất kỳ máy chủ nào để truy xuất dữ liệu
  3. Ai đó viết một mẩu dữ liệu cho một trong các máy chủ, nhưng nó chưa được sao chép vào phần còn lại
  4. Máy khách truy cập máy chủ với dữ liệu và nhận bản sao cập nhật nhất
  5. Một ứng dụng khách khác (hoặc thậm chí cùng một máy khách) truy cập một máy chủ khác (một máy chủ chưa nhận được bản sao mới) và nhận bản sao cũ

Về cơ bản, bởi vì nó cần có thời gian để tái tạo dữ liệu trên nhiều máy chủ, yêu cầu đọc dữ liệu có thể đi đến một máy chủ với một bản sao mới, và sau đó đi đến một máy chủ với một bản sao cũ. Thuật ngữ "cuối cùng" có nghĩa là cuối cùng dữ liệu sẽ được nhân rộng đến tất cả các máy chủ, và do đó tất cả chúng sẽ có bản sao cập nhật.

Sự nhất quán cuối cùng là điều bắt buộc nếu bạn muốn đọc độ trễ thấp, vì máy chủ phản hồi phải trả lại bản sao dữ liệu của chính nó và không có thời gian để tham khảo các máy chủ khác và đạt được thoả thuận chung về nội dung của dữ liệu. Tôi đã viết một bài viết trên blog giải thích chi tiết hơn.


67
2017-09-29 16:01



Bài đăng trên blog đẹp. Đáng đọc cho một người mới với ý tưởng về sự nhất quán cuối cùng. Câu trả lời này sẽ tốt hơn nếu nó được viết lại để giải thích thêm về những gì có trong bài đăng trên blog. - axiopisty
Cũng được giải thích trong blog của bạn. Cám ơn vì đã chia sẻ. - Ataur Rahman Munna


Hãy suy nghĩ bạn có một ứng dụng và bản sao của nó. Sau đó, bạn phải thêm mục dữ liệu mới vào ứng dụng.

enter image description here

Sau đó, ứng dụng đồng bộ hóa dữ liệu với các bản sao khác hiển thị ở bên dưới

enter image description here

Trong khi đó, khách hàng mới sẽ nhận dữ liệu từ một bản sao chưa cập nhật. Trong trường hợp đó anh ta không thể có được dữ liệu ngày chính xác. Bởi vì đồng bộ hóa có được một chút thời gian. Trong trường hợp đó nó chưa cuối cùng nhất quán

Vấn đề là làm sao chúng ta có thể cuối cùng nhất quán?

Để làm điều đó, chúng tôi sử dụng ứng dụng hòa giải để cập nhật / tạo / xóa dữ liệu và sử dụng truy vấn trực tiếp để đọc dữ liệu. giúp làm cuối cùng nhất quán 

enter image description here enter image description here


6
2017-12-10 14:40





Khi một ứng dụng thực hiện thay đổi đối với một mục dữ liệu trên một máy tính, thay đổi đó phải được truyền sang các bản sao khác. Vì tuyên truyền thay đổi không diễn ra tức thì, có một khoảng thời gian trong đó một số bản sao sẽ có thay đổi gần đây nhất, nhưng những người khác sẽ không thay đổi. Nói cách khác, các bản sao sẽ không đồng nhất. Tuy nhiên, sự thay đổi cuối cùng sẽ được truyền cho tất cả các bản sao, và do đó thuật ngữ "sự nhất quán cuối cùng". Thuật ngữ nhất quán cuối cùng chỉ đơn giản là một sự thừa nhận rằng có một sự chậm trễ vô biên trong việc truyền một thay đổi được thực hiện trên một máy cho tất cả các bản sao khác. Sự nhất quán cuối cùng không có ý nghĩa hoặc có liên quan trong các hệ thống tập trung (một bản sao) vì không cần truyền bá.

nguồn: http://www.oracle.com/technetwork/products/nosqldb/documentation/consistency-explained-1659908.pdf


1
2017-11-11 07:12





Sự nhất quán cuối cùng cũng giống như một quang phổ. Trên một đầu, bạn có tính nhất quán mạnh mẽ và mặt khác, bạn có sự nhất quán cuối cùng. Ở giữa có những cấp độ như Snapshot, đọc bài viết của tôi, độ cứng bị ràng buộc. Doug Terry có một lời giải thích tuyệt vời ở bài báo về sự nhất quán cuối cùng của anh ấy .

Theo tôi tính nhất quán cuối cùng về cơ bản là chấp nhận dữ liệu ngẫu nhiên theo thứ tự ngẫu nhiên mỗi khi bạn đọc từ một kho dữ liệu. Bất cứ điều gì tốt hơn đó là một mô hình nhất quán mạnh mẽ hơn. Ví dụ: ảnh chụp nhanh có dữ liệu cũ nhưng sẽ trả về cùng một dữ liệu nếu đọc lại để có thể dự đoán được. Đôi khi, ứng dụng có thể chịu đựng được dữ liệu đã cũ trong một khoảng thời gian nhất định mà nó đòi hỏi dữ liệu nhất quán.

Nếu bạn nhìn vào ý nghĩa nhất quán, nó liên quan nhiều hơn đến tính đồng nhất hoặc thiếu độ lệch. Vì vậy, trong điều khoản hệ thống không máy tính nó có thể có nghĩa là khoan dung cho các biến thể bất ngờ. Nó có thể được giải thích rất tốt qua ATM. Máy ATM có thể ngoại tuyến do đó khác nhau so với số dư tài khoản từ các hệ thống lõi. Tuy nhiên có một sự khoan dung cho thấy sự cân bằng khác nhau cho một cửa sổ thời gian. Khi máy ATM trực tuyến, nó có thể đồng bộ với các hệ thống lõi và phản ánh sự cân bằng tương tự. Vì vậy, một máy ATM có thể được cho là cuối cùng phù hợp.


0
2017-10-31 12:02





trong câu tiếng Anh rất đơn giản, chúng ta có thể nói: Mặc dù hệ thống của bạn có thể ở trong trạng thái không nhất quán, nhưng mục tiêu luôn đạt được sự nhất quán tại một số điểm cho từng phần dữ liệu.


0
2017-10-31 07:58