Vectơ phiên bản là gì?
Các bạn ơi, tôi hiện đang tìm hiểu về hệ thống dữ liệu phân tán qua cuốn sách "Thiết kế các ứng dụng chuyên sâu về dữ liệu".
Tôi nghĩ rằng tôi đã hiểu khá rõ về cách số phiên bản trong một hệ thống sao chép duy nhất cho phép máy chủ phát hiện các lần ghi đồng thời *. Tác giả bắt đầu với ví dụ này bởi vì một khi bạn hiểu về hệ thống sao chép đơn lẻ, việc mở rộng hiểu biết đó sang hệ thống sao chép nhiều người lãnh đạo hoặc không người lãnh đạo được cho là hiển nhiên, nhưng với tôi thì không rõ ràng chút nào.
Làm thế nào để số phiên bản trong một hệ thống mà nhiều bản sao có thể xử lý các yêu cầu ghi hoạt động? Nói cách khác, vectơ phiên bản là gì?
*Trong một hệ thống bản sao duy nhất, mỗi bản ghi được kèm theo một số phiên bản. Số phiên bản này là phiên bản của dữ liệu dựa trên việc ghi. Nếu một lần ghi dựa trên Phiên bản 1 của dữ liệu cho khóa đó và Phiên bản 2 đã tồn tại, chúng tôi biết rằng lần ghi đến là đồng thời với Phiên bản 2. Lần ghi đến chỉ có thể ghi đè lên dữ liệu trong Phiên bản 1, vì nó không biết về dữ liệu trong Phiên bản 2. Ví dụ: Phiên bản 1 là [trứng], Phiên bản 2 là [trứng] và [sữa]. Thư đến muốn cập nhật khóa này thành [trứng, thịt xông khói]. Phiên bản 3 của khóa này sẽ trở thành [trứng, thịt xông khói] và [sữa]. Việc ghi đến không thể ghi đè lên [milk] vì nó thậm chí không biết rằng [milk] là một giá trị trong khóa.
Trả lời
Các vectơ phiên bản là cách mỗi nút trong một cụm giao tiếp số phiên bản cục bộ của nó với tất cả các nút khác trong một cụm. Chúng còn được gọi là đồng hồ vectơ.
Về bản chất, khi một nút A chuyển một thông điệp đến một nút B khác, A sẽ đưa vào thông báo đó những gì nó biết về số phiên bản của tất cả các nút trong cụm. Bởi vì nó chứa các giá trị cho tất cả các nút khác, nó là một mảng hoặc vectơ, của số phiên bản. Nút B sử dụng thông tin này để cập nhật những gì nó biết về số phiên bản trên toàn cụm. Nó có thể sử dụng thông tin này để tìm ra thứ tự toàn cầu của các sự kiện từ toàn bộ cụm.
Đến lượt nút B bao gồm thông tin cập nhật này trong các thông báo mà nó gửi đến các nút khác, bao gồm cả nút A.
Tìm kiếm đồng hồ vectơ. Có rất nhiều lời giải thích, cả học thuật và thực tế.