Các giải thuật đƣợc xem xét và đề xuất ở trên không có khả năng kháng lỗi. Mọi lỗi xảy ra, ví dụ một bít dữ liệu của một bộ xử lý bị thay đổi, đều có thể làm cho giải thuật hoạt động không đúng đắn. Tuy nhiên, lỗi là vấn đề không thể tránh đƣợc, đặc biệt trong các hệ phân tán. Nhƣ vậy, chúng ta cần có phiên bản khác của các giải thuật này để chúng có khả năng khứ lỗi. Phƣơng pháp kháng lỗi hiệu quả nhất cho đến nay là khi có bất kỳ lỗi gì đã xảy ra, chỉ cần khoảng đủ dài, hệ thống có thể tự trở về trạng thái không lỗi và hoạt động bình thƣờng trở lại.
Với các giải thuật đã đƣợc xem xét hoặc đề xuất ở trên, một thực hiện đƣợc xem là hợp lệ nếu tại mọi cấu hình trong thực hiện đó tất cả dữ liệu của các bộ xử lý đều giống dữ liệu nguồn.
Để giải thuật Phát tỏa Đầy đủ có tính tự ổn định, chúng ta chỉ cần cho bộ xử lý nguồn phát sinh tiến trình phát tỏa theo chu kỳ. Xuất phát từ trạng thái ban đầu bất kỳ, giả sử thời gian từ 0 đến T hệ thống có thể có lỗi, nhƣng từ thời điểm T trở đi hệ thống không có lỗi. Vậy chỉ cần đến thời điểm T + n*m, tất cả các bộ xử lý đều có dữ liệu giống nhau và giống dữ liệu nguồn, đáp ứng yêu cầu giải thuật duy trì dữ liệu chung có tính tự ổn định.
Với các giải thuật còn lại, vấn đề không đơn giản nhƣ vậy. Giả sử xét ở trạng thái đầu tiên, dữ liệu của P1 khác hoàn toàn hiểu biết của P0 về dữ liệu của nó (các bít tƣơng ứng trong dữ liệu của P1 và khung nhìn của P0 về dữ liệu của P1 không giống nhau). Mỗi khi phát sinh tiến trình, P0 đối chiếu dữ liệu của nó (nguồn) với khung nhìn của nó về dữ liệu của P1, những bít giống nhau (nguồn khác với đích) không đƣợc thông báo sửa, những bít không giống nhau (nguồn giống với đích) đƣợc gửi thông báo “sửa lỗi”. Kết quả là những bít đã đúng của dữ liệu của P1 bị đảo, những bít sai không đƣợc đảo và toàn bộ dữ liệu của P1 khác hoàn toàn dữ liệu của P0. Ở mọi chu kỳ, vấn đề này luôn xảy ra làm cho dữ liệu của P1 không lúc nào giống dữ liệu nguồn.
Nhƣ vậy, nếu khung nhìn của một bộ xử lý về dữ liệu của bộ xử lý tiếp sau bị sai thì tính chất tự ổn định không thể có đƣợc trong hệ thống. Quan sát này gợi ý cho chúng ta một giải pháp để các giải thuật đạt tự ổn định đó là duy trì khung nhìn chính xác của mỗi bộ xử lý đến dữ liệu của bộ xử lý sau nó.
Để có tính tự ổn định trong các giải thuật Cập nhật Tăng trưởng, giải thuật AS, giải thuật AS cải tiến, ngoài bộ xử lý nguồn phát sinh tiến trình chính theo chu kỳ, các bộ xử lý khác nguồn còn có trách nhiệm thông báo theo chu kỳ dữ liệu hiện tại của nó cho bộ xử lý trƣớc nó để bộ xử lý trƣớc cập nhật khung nhìn của nó về dữ liệu của bộ xử lý sau. Khung chung cho các phiên bản tự ổn định của các giải thuật này nhƣ sau.
---
Bộ xử lý nguồn:
Thực hiện theo chu kỳ:
Phát sinh tiến trình chính
Khi nhận được dữ liệu của P1: cập nhật khung nhìn của P0 về dữ liệu của P1
Các bộ xử lý khác:
Thực hiện nhiệm vụ phát tỏa theo giao thức đã định
Khi nhận được dữ liệu của bộ xử lý liền sau: cập nhật khung nhìn về dữ liệu
của bộ xử lý liền sau.
Thực hiện theo chu kỳ: thông báo dữ liệu của mình cho bộ xử lý liền trƣớc.
---
Hình 5. Khung chung cho các phiên bản tự ổn định của các giải thuật Cập nhật Tăng trưởng, giải thuật AS, và giải thuật AS cải tiến.
Chứng minh tính tự ổn định của các phiên bản này không khó. Thật vậy, xuất phát từ trạng thái bất kỳ, sau chu kỳ thứ nhất, O(m) đơn vị thời gian, tất cả các bộ xử lý đã thông báo dữ liệu của nó cho bộ xử lý liền trƣớc, nghĩa là tất cả các khung nhìn về dữ liệu của bộ xử lý liền sau đã đúng. Một chu kỳ phát tỏa đƣợc thực hiện sau đó sẽ làm cho dữ liệu của tất cả các bộ xử lý giống nhau và giống dữ liệu nguồn.
Độ phức tạp thời gian (của một lần hội tụ) của các phiên bản tự ổn định không lớn hơn độ phức tạp thời gian của các phiên bản gốc vì các thông báo dữ liệu cho bộ xử lý trƣớc đƣợc thực hiện song song trên tất cả các bộ xử lý và hoàn tất trƣớc nhiệm vụ phát tỏa.
Về độ phức tạp thông báo, trong mỗi phiên bản tự ổn định, n*m bít thông báo dữ liệu cho bộ xử lý trƣớc đƣợc gửi và nhận trong mỗi chu kỳ.
KẾT LUẬN
Trong luận văn này, tôi đã:
- Hệ thống hóa các vấn đề của hệ phân tán và mô hình hệ phân tán.
- Xét bài toán Duy trì dữ liệu chung trong các hệ phân tán và phƣơng pháp
Phát tỏa với Tri thức Bộ phận.
- Tìm hiểu một số giải thuật cho bài toán Duy trì dữ liệu chung trong các hệ phân tán, bao gồm: Phát tỏa Đầy đủ, Cập nhật Tăng trưởng, giải thuật AS. - Đề xuất cải tiến giải thuật AS để đƣợc giải thuật với các chi phí thời gian và
thông báo thấp hơn.
- Trình bày các ý tƣởng sửa đổi các giải thuật cho phù hợp với một số vấn đề thực tiễn của hệ phân tán, đó là Hệ thống động với tôpô bất kỳ, Dữ liệu chung phân tán, Độ dài dữ liệu thay đổi, Khả năng kháng lỗi và tính tự ổn định.
Có thể nói, Duy trì dữ liệu chung trong các hệ phân tán là một bài toán cơ sở liên quan đến nhiều bài toán khác trong các hệ phân tán. Chính vì tầm quan trọng của nó, việc tối ƣu hoá các giải thuật cho bài toán cũng nhƣ tìm ra các giải thuật mới hiệu quả hơn đã và đang tiếp tục đƣợc nghiên cứu.
Luận văn đã tập trung vào việc nghiên cứu các giải thuật đã có, đề xuất cải tiến chúng. Hƣớng phát triển tiếp theo của luận văn sẽ là đi sâu nghiên cứu thiết kế các giải thuật cho bài toán Duy trì dữ liệu chung trong các hệ phân tán phù hợp với các hệ phân tán thực tiễn nhƣng nhƣ đã trình bày trong Chƣơng 5. Ngoài ra, tôi cũng cố gắng thực hiện cài đặt mô phỏng các giải thuật.
TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt:
[1]. Tho05 Nguyễn Đại Thọ, Tập các bài giảng Các giải thuật phân tán, 2005.
Tài liệu tiếng Anh:
[2] ACG+90 Baruch Awerbuch, Israel Cidon, Inder Gopal, Marc Kaplan, and Shay Kutten. Distributed control for paris. In Proc. 9th ACM Symp. On Principles of Distributed Computing, pages 145-160, 1990.
[3]. AS97 Baruch Awerbuch, Leonard J. Schulman, The maintenance of common data in a distributed system, Journal of the ACM (JACM), v.44 n.1, p.86-103, Jan. 1997
[4]. ACK90 Baruch Awerbuch, Israel Cidon, and Shay Kutten, Optimal maintenance of replicated information. In Proc. 31st IEEE Syrup. on Foundations of Computer Science, 1990.
[5]. ACK+91 Baruch Awerbuch, Israel Cidon, Shay Kutten, Yishay Mansour, and David Peleg, Broadcast with partial knowledge, In Proc. 10th ACM Symp. on Principles of distributed computing, 1991 [6] AGH90 Baruch Awerbuch, Oded Goldreich, Amir Herzberg, A
quantitative approach to dynamic networks, Proceedings of the ACM PODC 1990.
[7]. Dij73 Edsger W. Dijkstra, Self-stabilizing systems in spite of distributed control, Comm. ACM 17 November 1974, 643-644. [8]. Tel00 Gerard Tel, Introduction to Distributed Algorithms, Second
Edition. Cambridge University Press, 2000.
[9]. AW04 Hagit Attiya, Jenifer Welch, Distributed computing: Fundamentals, simulations and advanced topics, Second
Edition, John Wiley & Sons, 2004.
[10]. Met84 J.J. Metzner, An improved broadcast retransmission protocol. IEEE Trans. on Communications, COM- 32(6):679-683, June 1984.
[11]. Sch87 Mischa Schwartz, Telecommunication Networks: Protocols, Modeling and Analysis, Addition-Wesley, Massachusetts, 1987. [12]. Lyn97 Nancy A. Lynch, Distributed Algorithms. Morgan Kaufmann,
1997.
[13]. Gar02 Vijay K. Garg, Elements of Distributed Computing. John Wiley &
Sons, 2002.
[14]. SG89 John M. Spinelli and Robert G. Gallager. Broadcasting topology information in computer networks. IEEE Trans. on Commun., May 1989.
[15]. Sta00 William Stallings, Data & Computer Communications, Prentice Hall, New Jersey, Sixth Edition, 2000.
[16] MRR80 John McQuillan, Ira Richer, and Eric Rosen. The new routing algorithm for the arpanet. IEEE Trans. on Commun., 28(5):711- 719, May 1980
[17] BGJ+85 A.E. Baratz, J. P. Gray, P.E. Green Jr., J. M. Jaffe, and D.P. Pozefski. SNA networks of small systems. IEEE Jurnal on Selected Areas in Communications, SAC-3(3): 416-426, May 1985.
[18] CG88 I. Cidon and I. S. Gopal. Paris: An approach to integrated high- speed private networks. International Journal on Digital & Analog Cabled System, 1(2):77-86, April-June 1988.
[19] Wec80 S. Wecker. DNA: The digital networks architecture. IEEE Trans. on Commun, COM-28:510-526, April 1980.