Các giao thức cập nhật

Một phần của tài liệu Tối ưu hoá ứng dụng ngân hàng trên nền hệ thống phân tán777 (Trang 53 - 55)

Khi file bị thay đổi, nếu chỉ gửi đi một thông điệp cập nhật tới mỗi bản sao một cách tuần tự thì sẽ không tối ưu vì nếu tiến trình cập nhật bị lỗi trong khi đang cập nhật thì một số bản sao có thể đã bị thay đổi cũng như một số bản sao khác vẫn chưa cập nhật được. Kết quả là các thao đọc sau đó có thể lấy được các kết quả cũ trên một bản sao và lấy được các giá trị mới trên các bản sao đã được cập nhật. Để giải quyết vấn đề này, người ta đưa ra hai giải pháp.

Giải pháp thứ nhất gọi là primary copy replication, trong đó, một server được chỉ định là server chính, các server còn lại là server thứ cấp. Khi một file cần cập nhật, thông tin cập nhật sẽ được gửi tới server chính, làm cập nhật bản sao trên đó, sau đó nó sẽ gửi các lệnh tới các server thứ cấp để cập nhật bản sao trên các server này. Thao tác đọc có thể thực hiện trên bất kỳ bản sao nào, cả chính và thứ cấp. Để tránh trường hợp các bản sao không kịp cập nhật khi server chính bị lỗi, người ta thực hiện ghi các thông tin update lên một bộ nhớ ổn định để server chính có thể cập nhật sau khi hoạt động trở lại. Một phương pháp khác được Gifford đưa ra là voting, ý tưởng của phương pháp này là yêu cầu client gửi request để được sự cho phép của các server trước khi đọc hay ghi lên file đã sao. Giả sử có một file được sao trên N server, ta sẽ thiết lập một luật để khi cập nhật file, client phải liên hệ với một số lượng server nhất định (còn gọi là write quorum-NRrR) để được sự đồng ý cho cập nhật. Khi được đồng ý, file này sẽ được cập nhật và được cấp một số hiệu, số hiệu này được dùng để xác định phiên bản của file. Để đọc file, client phải liên hệ với một số lượng server nhất định (còn gọi là write quorum-NRwR ) để yêu cầu chúng gửi số hiệu file, khi đã thống nhất được số hiệu file thì sẽ được phép đọc file. Giá trị của NrRR và NRwR phải thoả mãn NRrR + NRwR> N (tổng số bản sao).

Ví dụ như trong hình 1.26(a) với NRrR=3 và NRwR=10. Giả sử các server đã cập nhật file là từ C đến L, nếu số lượng server mà client cần để thoả thuận là 3 thì có ít nhất một server đã cập nhật được số hiệu của file đó.

Một phần của tài liệu Tối ưu hoá ứng dụng ngân hàng trên nền hệ thống phân tán777 (Trang 53 - 55)

Tải bản đầy đủ (PDF)

(103 trang)