Bài giảng Nhân bản và nhất quán

Chương này đề cập đến 1 vấn đề quan trọng trong hệ phân tán đó là các bản sao của dữ liệu . Dữ liệu nói chung trong hệ phân tán được nhân lên thành nhiều bản để tăng thêm tính tin cậy và tăng hiệu năng . Vấn đề chính của các bản sao là sự nhất quán giữa các bản sao khi một hoặc 1 số bản sao bị thay đổi . Chương này sẽ : giới thiệu về xem tại sao bản sao lại tốt và tập trung vào tính nhất quán của các bản sao Vấn đề về nhất quán mới là ½ toàn bộ nôi dung cần chú ý . chúng ta cần quan tâm xem nó hoạt động thế nào : 2 vấn đề : quản lý bản sao và giữ các bản sao được nhất quán .

doc20 trang | Chia sẻ: haohao89 | Lượt xem: 2779 | Lượt tải: 5download
Bạn đang xem nội dung tài liệu Bài giảng Nhân bản và nhất quán, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 7 : NHÂN BẢN VÀ NHẤT QUÁN Chương này đề cập đến 1 vấn đề quan trọng trong hệ phân tán đó là các bản sao của dữ liệu . Dữ liệu nói chung trong hệ phân tán được nhân lên thành nhiều bản để tăng thêm tính tin cậy và tăng hiệu năng . Vấn đề chính của các bản sao là sự nhất quán giữa các bản sao khi một hoặc 1 số bản sao bị thay đổi . Chương này sẽ : giới thiệu về xem tại sao bản sao lại tốt và tập trung vào tính nhất quán của các bản sao Vấn đề về nhất quán mới là ½ toàn bộ nôi dung cần chú ý . chúng ta cần quan tâm xem nó hoạt động thế nào : 2 vấn đề : quản lý bản sao và giữ các bản sao được nhất quán . 7.1 Giới thiệu 7.1.1 Có 2 lý do chính để thực hiện việc nhân bản dữ liệu. Để tăng tín tin cậy cho hệ thống : Trong quá trình đọc hoặc ghi dữ liệu , nếu một bản sao bị hỏng hoặc vì lý do nào đấy nó không sẵn sàng để dùng thì ta có thể sử dụng một bản khác. Tránh việc sử dụng dữ liệu sai lạc, không chính xác. Để tăng hiệu năng của hệ thống : Tăng quy mô của hệ thống cả về số lượng lẫn phạm vi địa lý. Ví dụ như nếu số lượng máy tăng => tải trên mỗi máy trong hệ phân tán cũng ko tăng lên nhiều hơn . phạm vi địa lý tăng => có thể sử dụng các bản nhân bản gần khu vực địa lý đó . Một cái giá phải trả cho việc nhân bản dữ liệu đấy là phải chắc chắn rằng khi một bản sao được cập nhật thì tất cả những bản còn lại cũng phải được cập nhật theo để đảm bảo tính nhất quán của dữ liệu. Điều này ảnh hưởng rất lớn đến hiệu năng của hệ thống. Ví dụ : khi sử dụng các chương trình xem web => dữ liệu được ghi vào bộ nhớ máy tính ( bản sao ) , nếu trang web nội dung thay đổi . người dùng vẫn chỉ xem nội dung trên máy => cũ . Vấn đề đồng bộ dữ liệu trên máy khách và trên máy chủ Có 2 hướng tiếp cận cho việc nhân bản đối tượng. Ứng dụng tự chịu trách nhiệm nhân bản. Do đó ứng dụng cần giải quyết được vấn đề nhất quán. Hệ thống (middleware) đảm trách việc nhân bản. Vì thế vấn đề nhất quán do middleware đảm trách. Hướng này đơn giản hóa cho việc phát triển ứng dụng nhưng lại khiến các giải pháp đặc tả đối tượng trở nên phức tạp hơn. 7.1.2 Nhân bản như 1 kỹ thuật mở rộng Các bản sao có thể tăng hiệu năng của hệ thống vì chúng giúp làm giảm các trễ truy cập. Tuy nhiên chúng lại là nguyên nhân gây khó khăn cho việc duy trì tính nhất quán của dữ liệu. Các bản sao được phân tán trên diện rộng , vấn đề đặt ra là làm sao xác định được bản sao ở đâu đang được cập nhật 1 cách nhanh chóng nhất . Nếu các bản sao ở xa thì rõ ràng là việc cập nhật 1 bản được update sẽ gây ra tốn đường truyền trong mạng ( đồng bộ toàn bộ các bản sao ) mà việc thực hiện nhân bản này nhằm tăng hiệu năng của hệ thống => nếu đồng bộ không hợp lý thì sẽ làm giảm hiệu năng của toàn hệ thống : “The cure may be worse than the disease. “ . Đồng bộ từng phần tử rồi lan truyền sang các phần tử kế bên , việc này sẽ làm tăng hiệu năng nhưng sẽ dẫn đến việc có những thời điểm các bản sao là ko giống nhau Trong một số trường hợp ta cần phải nới lỏng những ràng buộc về tính nhất quán dựa trên: Tần suất truy cập và cập nhật dữ liệu. Mục đích sử dụng. 7.2. Các mô hình nhất quán lấy dữ liệu làm trung tâm. Mô hình nhất quán được sử dụng rộng rãi nhất là mô hình lấy dữ liệu làm trung tâm. Trong mô hình này, bất kì người sử dụng nào truy cập vào kho dữ liệu cũng sẽ nhìn thấy các thao tác được sắp xếp theo mô hình. Điều này trái ngược với các mô hình lấy client làm trung tâm nơi client được yêu cầu một mô hình nhất quán cụ thể và các client khác nhau sẽ nhìn thấy các thao tác theo những trật tự khác nhau. Kho dữ liệu có thể được đọc hay ghi bởi bất cứ tiến trình nào trong một hệ phân tán. Tuy nhiên dữ liệu ghi vào một bản sao cục bộ phải đảm bảo cũng được truyền tới tất cả các bản sao ở xa. Vì nguyên nhân này mà các mô hình nhất quán đã ra đời, mục đích là để giúp chúng ta có thể hiểu rõ về các cơ chế khác nhau được sử dụng để thực hiện phần việc này. Một mô hình nhất quán có thể được coi là một bản hợp đồng giữa một kho dữ liệu của hệ phân tán với các các tiến trình của nó. Nếu các tiến trình đồng ý với các điều khoản của hợp đồng thì kho dữ liệu sẽ hoạt động đúng như tiến trình mong muốn. 7.2.1 Nhất quán tuyến tính Phương pháp này hoạt động dựa trên việc xác định xem việc ko nhất quán nào là có thể chấp nhận được dựa vào việc xác định các thông tin sau : Độ lệch bằng số giữa các bản sao Độ lệch theo trạng thái giữa các bản sao Độ lệch trong thứ tự các lần cập nhật Như vậy trong hệ thống sẽ quy định một độ lệch giữa các bản sao . Nếu một phiên bản được cập nhật mà độ lệch chưa đạt tới giá trị quy định thì giữa bản sao đó và các bản sao khác vẫn được coi là nhất quán và ko phải thực hiện cập nhật . Độ lệch bằng số giữa các bản sao : thường sử dụng với các chương trình có dữ liệu là số . Có 2 dạng của độ lệch này là độ lệch tương đối và độ lệch tuyệt đối .Có thể xác định số này có thể xác định là số lượng bản cập nhật cho 1 bản sao nào đó . Độ lệch về trạng thái giữa các bản sao : liên quan đến thời gian cuối cùng 1 bản sao đã được cập nhật . Với 1 số ứng dụng thì nó có thể chấp nhận dữ liệu cũ , miễn là ko quá cũ . vd : trong dự báo thời tiết , máy chủ liên tục nhận được các thông tin về thời tiết nhưng chỉ đồng bồ 30’ 1 lần … Độ lệch trong thứ tự cập nhật : thứ tự cập nhật được phép khác nhau ở các bản khác nhau khi sự khác nhau vẫn trong giới hạn . Khi nhận được yêu cầu cập nhật , thì bản sao tạm thời cập nhật và chờ sự đồng ý của các bản sao khác về quá trình cập nhật . Như vậy cần có thêm 1 bản sao phụ để nếu không nhận được sự đồng ý cập nhật của các bản sao khác thì quay lại bản cũ . Có thể sau nhiều lần cập nhật tạm thời thì bản sao mới được cập nhật lâu dài Tóm lại , các bản sao có thể vẫn được sử dụng nếu sự khác nhau vẫn nằm trong giới hạn được chấp thuận . Một cách khác nữa là khi 1 bản sao được cập nhật thì nó sẽ chờ để được xác nhận trước khi cập nhật lên tất cả các bản sao khác . => thứ tự cập nhật rắc rối . Cách làm này cần lưu trữ thêm 1 bản để có thể quay lại nếu bản cập nhật không được chấp thuận . Conit : Consistent Unit 7.2.2 Nhất quán theo thứ tự thực hiện Các mô hình nhất quán ở mục này sẽ đề cập đến : khi 1 bản sao cập nhật tạm cần được đồng bộ ở 1 bản sao , nó sẽ yêu cầu 1 sự đồng ý ở trên “ thứ tự cập nhật chung “ hoặc cần sự đồng ý cho sự cập nhật của mình ( thứ tự cập nhật của bản này ) a.Nhất quán tuần tự Một kho dữ liệu được gọi là nhất quán tuần tự nếu nó thỏa mãn yêu cầu sau : “Kết quả của bất kì sự thực hiện nào là như nhau nếu các thao tác (đọc và ghi) của tất cả các tiến trình lên dữ liệu được thực hiện môt cách tuần tự và các thao tác của mỗi tiến trình xuất hiện trong chuỗi thao tác này phải theo thứ tự đã được chỉ ra trong chương trình của nó” Vd : với 2 tiến trình Với 4 tiến trình : b.Mô hình nhất quán nhân quả Nhất quán nhân quả là mô hình yếu hơn nhất quán tuần tự, mô hình này chỉ quan tâm đến các thao tác ghi có quan hệ nhân quả với nhau. “Các thao tác ghi có quan hệ nhân quả tiềm năng phải được nhìn thấy bởi tất cả các tiến trình theo cùng một trật tự, còn các thao tác ghi đồng thời có thể được nhận biết theo thứ tự khác nhau trên những máy khác nhau”. Hai thao tác ghi được coi là có quan hệ nhân qủa với nhau nếu việc thực hiện một thao tác có khả năng gây ảnh hưởng đến dữ liệu được ghi bởi thao tác kia. Đặc biệt, hai thao tác bất kì được coi là có quan hệ nhân quả với nhau nếu: Một thao tác đọc có quan hệ nhân quả với thao tác ghi cung cấp dữ liệu cho nó. Một thao tác ghi có quan hệ nhân quả với một thao tác đọc xảy ra trước nó trong cùng một tiến trình. Nếu write1 ® read và read ® write2 thì write1 ® write2. Nếu các thao tác không có quan hệ nhân quả với nhau thì chúng được coi là xảy ra đồng thời. Các thao tác đọc đồng thời có thể được thực hiện theo bất kì trật tự nào miễn là chúng tuân theo trình tự của chương trình. c. Nhóm hoạt động Một thao tác yêu cầu để truy cập vào một biến đồng bộ hóa không được phép thực hiện trong một tiến trình cho đến khi tất cả các cập nhật lên dữ liệu bị gác trong tiến trình đó được thực hiện. Trước khi một truy cập trong chế độ dành riêng của một tiến trình tới một biến đồng bộ hóa được phép thực hiện thì không tiến trình nào khác còn được giữ các biến đồng bộ hóa, trong chế độ không dành riêng thì không cần yêu cầu như vậy. Sau khi một truy cập trong chế độ dành riêng lên một biến đồng bộ hóa được thực hiện thì bất kì sự truy cập của tiến trình nào khác trong chế độ không dành riêng lên biến đó cũng không được thực hiện cho đến khi chủ nhân của biến đồng bộ thực hiện xong việc truy cập của mình. Điều kiện đầu tiên nói rằng : Khi 1 tiến trình nào đó có 1 yêu cầu thì yêu cầu này có thể không được thực hiện cho đến khi tất cả các cập nhật được thực hiện trên các dữ liệu chia sẻ . Nói cách khác là các dữ liệu phải được đồng bộ trước khi thực hiện 1 yêu cầu nào đó . Điều kiện thứ 2 nói rằng trong quá trình cập nhật thì tiến trình thực hiện cập nhật sẽ chuyển sang 1 chế độ độc quyền để không cho phép bất kỳ tiến trình nào khác có thể can thiệp vào quá trình cập nhật ( tiến trình cập nhật khác … ) Điều kiện thứ ba nói rằng nếu một quá trình muốn vào một khu vực quan trọng trong chế độ không độc quyền, nó trước tiên phải kiểm tra với chủ sở hữu của biến đồng bộ hóa đang bảo vệ khu vực quan trọng để lấy các bản sao gần đây nhất của chia sẻ dữ liệu bảo vệ. 7.3 Nhất quán hướng người dùng Tất cả các mô hình nhất quán hướng dữ liệu đều cho rằng số thao tác đọc là xấp xỉ với số thao tác ghi và các thao tác ghi đồng thời thì xảy ra thường xuyên. Trái lại, các mô hình nhất quán hướng người dùng lại cho rằng client thực hiện các thao tác đọc thường xuyên hơn các thao tác ghi và có rất ít các thao tác ghi xảy ra đồng thời. Mục đích của nhất quán hướng người dùng là tập trung vào những gì mà client muốn chứ không phải những gì do server đề ra. Các mô hình này cũng cho phép người dùng linh động trong việc có thể kết nối tới nhiều bản sao khác nhau trong quá trình thực hiện của mình. Trong phần này chúng ta cũng được làm quen với khái niệm tập các thao tác ghi (WS-write set). Một tập các thao tác ghi chứa lịch sử các thao tác ghi mà dẫn đến một giá trị các định của một mục dữ liệu xác định trên một bản sao xác định. Ở mục này chúng ta sẽ xem xét 1 lớp đặc biệt của lưu trữ dữ liệu phân tán . Yêu cầu về sự nhất quán là yếu , nó xẩy ra rất nhiều sự không nhất quán . Các mô hình nhất quán hướng người dùng tương đối rẻ để xây dựng trong thực tế. 7.3.1 Nhất quán cuối cùng Yêu cầu duy nhất của mô hinh này là tất cả các bản sao cuối cùng rồi sẽ phải giống nhau. Tất cả các cập nhật phải đảm bảo là cuối cùng cũng sẽ được truyền tới tất cả các bản sao khác. Yêu cầu này sẽ được thực hiện tốt nếu mỗi client luôn chịu khó cập nhật cho các bản sao. Nhưng vấn đề sẽ xẩy ra nếu quá trình đó diễn ra liên tục và sẽ làm ảnh hưởng đến hiệu năng của hệ thống => giải pháp là chỉ áp dụng với các hệ phân tán chỉ đọc và ít cập nhật . Các bản cập nhật sẽ được cập nhật tuy nhiên tiến trình của người dùng sẽ truy cập được vào bản cập nhật này sau 1 thời gian nhất định , để đảm bảo ko có vấn đề lỗi khi 1 tiến trình đang ghi trong lúc 1 tiến trình khác đọc . Tuy nhiên mô hinh này sẽ gặp một chút khó khăn nếu các client là di động. Khi người dùng cập nhật tại 1 địa điểm ( ghi dữ liệu vào database chẳng hạn ) ( Trong 1 khoảng thời gian đủ ngắn ) Rồi đến 1 địa điểm khác , truy cập vào dữ liệu đó . Người đó sẽ tương tác với 1 cơ sở dữ liệu khác , và sẽ thấy rằng công việc mình làm hôm nay biến mất . 7.3.2 Nhất quán chỉ đọc : Mô hình nhất quán đọc đều đảm bảo rằng một client sẽ luôn nhìn thấy những dữ liệu mới hơn và không bao giờ phải nhìn thấy những dữ liệu cũ hơn những gì mà mình đã đọc trước đó. Điều đó có nghĩa là khi một client thực hiện một thao tác đọc trên một bản sao rồi tiếp theo lại đọc trên một bản sao khác thì bản sao thứ hai kia ít nhất cũng phải được ghi giống với bản sao đầu tiên. Vd : Hòm mail , thì mô hình này đảm bảo nếu ở nhà mà mở ra được 10 cái thư , thì đến cơ quan ít nhất vẫn mở ra được 10 cái thư đó ( nếu chưa có thư nào thêm và ko xóa thư đi ) Để đảm bảo đây là nhất quán chỉ đọc , thì tất cả các hoạt động ghi WS(x1) ở L1 cần phải được chuyển sang L2 trước khi thực hiện quá trình đọc . Việc WS(x1) đã được chuyển sang L2 thể hiện qua WS(x1;x2) . Ở đây chỉ có 1 tiến trình P đọc dữ liệu từ x ở L1 và L2 . (b) không có gì đảm bảo là WS(x2) có chứa các cập nhật ở L1 => đây không phải là nhất quán chỉ đọc . 7.3.3 Nhất quán chỉ ghi Mô hình nhất quán ghi đều đảm bảo rằng một thao tác ghi lên một mục dữ liệu xác định sẽ được hoàn tất trước khi có bất kì tao tác ghi nào khác lên mục dữ liệu đó bởi cùng một client. Nói cách khác thì các thao tác ghi lên một mục dữ liệu sẽ được sắp xếp một cách có trật tự. Hình (a) Kho dữ liệu theo mô hình nhất quán ghi đều (b) Kho dữ liệu không theo mô hình nhất quán ghi đều. Giống như nhất quán chỉ đọc , nhất quán chỉ ghi cần đảm bảo rằng các thao tác cập nhật trên L1 cần được chuyển sang L2 trước khi P thực hiện tiếp thao tác ghi W(x2) . 7.3.4 Nhất quán đọc kết quả ghi Trong mô hình nhất quán này, người dùng được đảm bảo rằng sẽ luôn được nhìn thấy những kết quả ghi mới nhất. “Tác động của một thao tác ghi của một tiến trình lên mục dữ liệu x sẽ luôn được nhìn thấy bởi một thao tác đọc lần lượt trên x của cùng tiến trình đó”. Tiến trình nhận nhiệm vụ ghi thì sẽ đảm trách luôn việc đọc như vậy thì quá trình ghi bắt buộc sẽ phải hoàn tất trước khi việc đọc được thực hiện => người dùng sẽ nhìn thấy kết quả ghi mới nhất . Vd : đồng bộ mật khẩu hoặc xem 1 trang web ( khi web browser sử dụng cache ) 7.3.5 Nhất quán ghi theo sau đọc Mô hình nhất quán này ngược với nhất quán đọc kết quả ghi, nó đảm bảo rằng một người dùng sẽ luôn thực hiện thao tác ghi lên một phiên bản dữ liệu mà ít nhất cũng phải mới bằng phiên bản cuối cùng của nó. “Tác động bởi một thao tác ghi của một tiến trình lên mục dữ liệu x sẽ luôn được nhìn thấy bởi một thao tác đọc liên tiếp lên x của cùng tiến trình đó”. Hình (a) Kho dữ liệu theo mô hình nhất quán ghi theo sau đọc (b) Kho dữ liệu không theo mô hình ghi theo sau đọc. 7.4 Quản lý các bản sao Một vấn đề hết sức quan trọng đối với các hệ phân tán sử dụng bản sao là việc quyết định xem ở đâu , khi nào và ai sẽ là người thiết lập ra các bản sao . Việc này chia ra làm 2 vấn đề nhỏ hơn : Đặt bản sao ở đâu ( địa điểm nào là tốt để tìm ra dữ liệu nhanh ) Nội dung bản sao như thế nào ( vẫn là đỉa điểm để sao cho nội dung bản sao sẽ được sử dụng hiệu quả nhất ) 7.4.1 Sắp xếp các bản sao máy chủ Có nhiều cách để tính toán vị trí tốt nhất cho các máy chủ đặt bản sao , nhưng tất cả các cách này đều phải giải quyết chung 1 vấn đề đó là vấn đề về hiệu năng khi chọn k vị trí trong N vị trí có thể đặt bản sao . Vd : Giải pháp của họ là chọn một máy chủ tại một thời điểm nào đó sao cho khoảng cách trung bình giữa các máy chủ và khách hàng là tối thiểu trong khi trong hệ thống đã có k máy chủ được đặt . tuy nhiên , cách này có chi phí lớn về mặt thời gian , độ phức tạp tính toán . Thuật toán : các nút được giả định vị trí trong một không gian m chiều , chúng ta đã thảo luận ở chương trước . Ý tưởng cơ bản là phát hiện ra k cụm và phân 1 nút cho mỗi cụm để nhân bản nội dụng . Để phát hiện ra cụm này , toàn bộ không gian được phân thành các tế bào . K tế bào dầy đặc nhất được chọn đặt máy chủ nhân bản . Một tế bào là một khối hình siêu lập phương m chiều . Cho không gian 2 chiều thì nó là 1 hình chữ nhật . Kích thước của các tế bào này là rất quan trọng , như trong hình mỗi tế bào được chọn quá rộng , nhiều cụm các nút bị chứa trong cùng 1 tế bào . trong trường hợp này , quá ít máy chủ đã được đặt cho cụm đó . Tuy nhiên , chọn các tế bào nhỏ lại dẫn đến trường hợp 1 cụm lại đặt trên nhiều tế bào dẫn đền việc chọn nhiều máy chủ nhân bản . 7.4.2 Nội dung bản sao và sắp xếp Bỏ qua chuyện vị trí của bản sao . h sẽ tập trung vào nội dung của bản sao . Có 3 kiểu bản sao: Các bản sao thường xuyên Bản sao thường xuyên có thể coi là 1 tập các bản sao tạo thành 1 kho lưu trữ dữ liệu phân tán . Thông thường thì số lượng các bản sao thường xuyên này là nhỏ . Ví dụ : Phan tán của các trang web có thể chia làm 2 dạng sau : 1 bản sao của website có thể được đặt trong 1 giói số lượng giới hạn máy chủ trong cùng 1 địa điểm . khi mà 1 yêu cầu tới nó sẽ chuyển tới 1 trong các máy chủ đó , đây sử dụng cơ chế round-robin . Dạng thứ 2 là bản phụ ( mirror ) Bản sao do server khởi tạo Các bản sao này được sử dụng để làm tăng hiệu năng. Các bản sao này được xếp đặt động dựa vào yêu cầu của server khác. Một ví dụ điển hình là chúng được các công ty web hosting nhận được các yêu cầu từ một vị trí xa , họ sẽ tạo ra 1 bản sao tạm thời ở vùng mà yêu cầu đến . Việc đưa ra các máy chủ bản sao như vậy sẽ đơn giản hơn việc phải tạo tìm ra vị trí để đặt bản sao . Đặc điểm Giảm tải trên máy chủ Các tệp tin được chỉ định sẽ được đưa tới các vị trí gần với máy khách hơn Mỗi máy chủ theo dõi việc truy cập vào các tệp tin ( đếm ) và vị trí mà yêu cầu đến từ . Ví dụ như , mỗi máy chủ có thể biết được máy khách nào là gần với 1 máy chủ nào đó nhất , nếu có 2 máy trạm cùng chung 1 máy chủ gần nhất nào đó thì tất cả các yêu cầu tới máy chủ ban đầu sẽ được chuyển tới máy chủ đó . Nếu như số yêu cầu tới máy chủ ban đầu mà giảm xuống dưới 1 giá trị nào đó thì tệp tin đó sẽ bị xóa khỏi máy chủ đó . Điều đó sẽ làm giảm số lượng các bản sao và làm tăng các yêu cầu tới các bản sao khác . Tuy nhiên vẫn phải đảm bảo rằng ít nhất còn có 1 bản sao tồn tại Các bản sao do client khởi tạo Một loại bản sao quan trọng là bản sao được tạo ra bởi máy khách , nó có thong thường được gọi là bộ nhớ đệm ( cache ) . Các bản sao này được tạo ra từ yêu cầu của client, chẳng hạn như việc cache dữ liệu của một trình duyệt. Chúng được xếp đặt động dựa vào yêu cầu của client. Bộ nhớ đệm của máy khách được sử dụng để tăng thời gian truy cập dữ liệu . Thông thường , khi máy khách muốn truy cập 1 số dữ liệu nào đó nó kết nối tới bản sao gần nhất của dữ liệu đó và lấy dữ liệu nó cần về để đọc và lưu trữ dữ liệu mà nó mới thay đổi . Nếu các thao tác đều là đọc dữ liệu thì hiệu năng có thể tăng lên nhờ để máy trạm lưu trữ dữ liệu trong bộ nhớ tạm . Các dữ liệu này được giữ trong bộ nhớ tạm trong 1 thời gian nhất định nào đó . Thông thường bộ nhớ tạm nằm ngay trên máy client . 7.4.3 Phân tán nội dung ( lan truyền cập nhật ) Có 3 khả năng lan truyền các cập nhật Chỉ lan truyền thông báo về cập nhật tới các bản sao khác. Thông báo về việc mất hiệu lực của một giao thức. Tức là việc nó truyền đi 1 thông báo rằng các bản sao khác đã không nhất quán với bản sao hiện tại Thực hiện tốt khi tỉ lệ các thao tác đọc so với thao tác ghi nhỏ. ( ghi nhiều ) Truyền dữ liệu cập nhật từ bản sao này tới một bản sao khác. Thực hiện tốt khi có nhiều thao tác đọc. Ghi lại các thay đổi và tập hợp các cập nhật lại để truyền đi (chỉ truyền đi các thay đổi chứ không truyền cả dữ liệu đã bị thay đổi, vì thế tiết kiệm được băng thông). Lan truyền các thao tác cập nhật tới các bản sao khác (nhân bản chủ động). Tốn ít băng thông nhưng đòi hỏi năng lực xử lý cao vì trong nhiều trường hợp thì các thao tác là rất phức tạp. Trong 3 phương pháp tiếp cận trên thì không phương pháp nào có thể coi là tốt nhất vì nó còn tuỳ thuộc vào băng thông sẵn có cũng như tỉ lệ các thao tác đọc so với thao tác ghi lên các bản sao. Các giao thức kéo và đẩy Đẩy cập nhật: là giao thức do server khởi tạo, trong giao thức này các cập nhật được lan truyền tới các bản sao khác mà không cần các bản sao này yêu cầu cập nhật . Giao thức này làm việc tốt khi tỉ lệ đọc/ghi là cao . Kéo cập nhật: là giao thức do client khởi tạo khi client muốn được cập nhật. Giao thức này làm việc tốt khi tỉ lệ đọc/ ghi là nhỏ . 7.5 Các giao thức nhất quán. Các giao thức nhất quán mô tả việc thực thi những mô hình nhất quán xác định. Ở đây chúng ta chỉ tập trung vào mô hình nhất quán tuần tự. 7.5.1 Nhất quán tuyến tính Bounding Numerical Deviation : Đầu tiên ,chúng ta tập trung vào một trong
Tài liệu liên quan