Thiết kế và phân tích giải thuật duy trì dữ liệu chung phân tán

  • Số trang: 65 |
  • Loại file: PDF |
  • Lượt xem: 16 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI ĐỖ HIỀN THIẾT KẾ VÀ PHÂN TÍCH GIẢI THUẬT DUY TRÌ DỮ LIỆU CHUNG PHÂN TÁN LUẬN VĂN THS CÔNG NGHỆ THÔNG TIN Người hướng dẫn TS :NGUYỄN ĐẠI THỌ Hà nội: 2007 MỤC LỤC LỜI CẢM ƠN .......................................................................................................................... 1 MỤC LỤC ................................................................................................................................ 2 CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT ............................................................................... 4 DANH SÁCH CÁC HÌNH VẼ ............................................................................................... 6 MỞ ĐẦU .................................................................................................................................. 7 CHƢƠNG 1. HỆ PHÂN TÁN ............................................................................................... 9 1.1. Khái niệm hệ phân tán....................................................................................... 9 1.2. Vai trò của hệ phân tán ...................................................................................... 9 1.3. Đặc trƣng của các hệ phân tán ......................................................................... 11 1.4. Mô hình hóa các hệ phân tán ........................................................................... 12 1.4.1. Mô hình chuyển thông báo ........................................................................ 13 1.4.2. Mô hình với bộ nhớ dùng chung ............................................................... 13 1.4.3. Mô hình xen kẽ ......................................................................................... 14 1.4.4. Thực hiện và những tính chất của thực hiện .............................................. 14 1.5. Đánh giá độ phức tạp ...................................................................................... 16 1.6. Khả năng kháng lỗi và tính tự ổn định ............................................................. 17 1.6.1. Khả năng kháng lỗi................................................................................... 17 1.6.2. Tính chất tự ổn định.................................................................................. 17 1.6.3. Vai trò của tự ổn định ............................................................................... 18 1.6.4. Đánh giá độ phức tạp ............................................................................... 19 CHƢƠNG 2. CÁC GIẢI THUẬT SƠ ĐẲNG ................................................................... 21 2.1. Giới thiệu ........................................................................................................ 21 2.2. Bài toán........................................................................................................... 23 2.3. Đánh giá độ phức tạp ...................................................................................... 24 2.4. Giải thuật Phát tỏa Đầy đủ .............................................................................. 25 2.5. Giải thuật Cập nhật Tăng trƣởng [4] ................................................................ 27 2 CHƢƠNG 3. GIẢI THUẬT CẬP NHẬT VỚI TRI THỨC BỘ PHẬN [3] ...................... 32 3.1. Tƣ tƣởng ......................................................................................................... 32 3.2. Giải thuật ........................................................................................................ 33 3.3. Tính đúng đắn và độ phức tạp ......................................................................... 37 3.4. Ví dụ một thực hiện ........................................................................................ 38 CHƢƠNG 4. GIẢI THUẬT AS CẢI TIẾN ........................................................................ 44 4.1. Đặt vấn đề ....................................................................................................... 45 4.2. Thực hiện cải tiến............................................................................................ 45 4.3. Tính đúng đắn và độ phức tạp ......................................................................... 49 4.4. Ví dụ một thực hiện ........................................................................................ 52 CHƢƠNG 5. GIẢI THUẬT DUY TRÌ DỮ LIỆU CHUNG PHÂN TÁN ÁP DỤNG TRONG THỰC TIỄN ........................................................................................................... 58 5.1. Hệ thống động với tôpô bất kỳ ........................................................................ 58 5.2. Dữ liệu chung phân tán ................................................................................... 59 5.3. Độ dài dữ liệu không cố định .......................................................................... 59 5.4. Khả năng kháng lỗi và tính tự ổn định ............................................................. 60 KẾT LUẬN ............................................................................................................................ 63 TÀI LIỆU THAM KHẢO ..................................................................................................... 64 3 CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT TT Tiếng Việt Tiếng Anh Ý nghĩa 1 Bộ xử lý Processor Một thực thể trong mạng 2 Cập nhật Tăng Incremental Cập nhật đƣợc thực hiện lần lƣợt trên trưởng Update từng bộ xử lý Cập nhật Tăng trưởng theo Phân đoạn Dữ Incremental Updates with Data segments Thực hiện nhiều Cập nhật Tăng trƣởng đồng thời, mỗi Cập nhật Tăng trƣởng cho một đoạn dữ liệu. Configuration Trạng thái toàn cục của hệ thống bao gồm trạng thái của các thực thể và trạng thái của các kênh truyền giữa các thực 3 liệu 4 Cấu hình thể 5 Cây bao trùm Spanning tree Cây bao gồm tất cả các nút của một đồ thị, và mỗi nút xuất hiện duy nhất một lần. 6 Đồ thị phụ thuộc Dependency graph Độ thị có hƣớng không chu trình có thêm các phụ thuộc hàm 7 Dẫn ống Khi nhận đƣợc thông báo từ bộ xử trƣớc Pipeline thì chuyển ngay thông báo này cho bộ xử lý liền sau. 8 Dữ liệu chung Common data Dữ liệu đƣợc nhìn nhận nhƣ nhau bởi mọi thực thể trong hệ thống 9 Hệ phân tán Distributed system Hệ thống bao gồm các thiết bị tính riêng rẽ có thể giao tiếp với nhau 10 Khứ lỗi Fault tolerance Khả năng hệ thống bỏ qua một số hữu 4 hạn lỗi để những bộ phận chƣa bị lỗi vẫn hoạt động bình thƣờng 11 Phát tỏa Gửi thông tin đến tất cả các bộ xử lý Broadcast trong thành phần liên thông 12 Phát tỏa Đầy đủ Full Broadcast Phát tỏa mọi thông tin có 13 Phát tỏa với Tri thức Bộ phận Broadcast with Partial Knowledge Phát tỏa chỉ những phần dữ liệu thay đổi với mục đích sửa lỗi tại các bộ xử lý nhận 14 Sai khác cục bộ Local Số bít trong dữ liệu riêng khác với dữ discrepancy liệu nguồn 15 Sai khác tổng Total discrepancy Tổng tất cả các sai khác cục bộ 16 Tiến trình Process Một chƣơng trình đang thực thi 17 Trạm Site Một thực thể trong mạng 18 Tự ổn định Self-stabilizing Tính chất của hệ thống có thể xuất phát từ trạng thái bất kỳ luôn thể hiện đƣợc hành vi hợp lệ mong muốn. 19 Khung nhìn View “Hình ảnh” mà một bộ xử lý nhận đƣợc từ một bộ xử lý khác 20 Nguồn Source Bộ xử lý nguồn 5 DANH SÁCH CÁC HÌNH VẼ Hình 1.1 Mô hình tổng quát hệ thống phân tán (12) Hình 1.2 Mô hình chuyển thông báo (13) Hình 1.3 Mô hình với bộ nhớ dùng chung (14) Hình 2.1 Ví dụ minh họa bài toán Duy trì dữ liệu chung trong hệ phân (24) tán. Trong ví dụ này, có n+1 = 5 bộ xử lý duy trì một khung nhìn với m = 4 mục. Nguồn là bộ xử lý 0. Các mục sai so với nguồn được gạch chân. Độ sai khác cục bộ là số mục gạch chân tại một bộ xử lý. Độ sai khác tổng là ∆ = 7 Hình 2.2 Một thực hiện của giải thuật Phát tỏa Đầy đủ (n = 4, m =4, (27) ∆ = 7) Hình 2.3 Sửa lỗi cho hai bộ xử lý đầu trong một thực hiện của giải thuật Cập nhật Tăng trưởng (n = 4, m =4, ∆ = 7) (28) Hình 3.1 Một trạng thái của hệ thống khi thực hiện giải thuật AS (33) Hình 3.2 Vùng quét của bộ xử lý Q (34) Hình 3.3 Hình chữ nhật của các tiến trình con của tiến trình Q (35) Hình 3.4 Hoạt động của một tiến trình (mũi tên biểu diễn thông báo sửa lỗi ) (36) Hình 3.5 Một thực hiện của giải thuật AS (vùng chữ nhật đầu tiên). (39) Hình 4.1 Giải thuật AS cải tiến (48) Hình 4.2 Một thực hiện của giải thuật AS cải tiến (vùng chữ nhật đầu tiên). (53) 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. (61) 6 MỞ ĐẦU Trong tính toán phân tán có rất nhiều công việc liên quan đến việc duy trì khung nhìn (view) đến các đối tƣợng chung tại các trạm (sites) khác nhau của hệ thống phân tán. Với đối tƣợng chung là tôpô của hệ thống ta có yêu cầu cập nhật tôpô, hay nếu đối tƣợng chung là một tài nguyên cụ thể đƣợc lƣu trữ trên một trạm nào đó ta có yêu cầu liệt kê danh sách tài nguyên trên mỗi trạm, hoặc một cơ sở dữ liệu tổng quát. Các đối tƣợng này bị tác động bởi những thay đổi, ví dụ liên kết giữa hai nút mạng đƣợc thêm mới hay mất đi làm thay đổi tôpô mạng, một tài nguyên đƣợc chiếm dụng rồi giải phóng, một bản ghi cơ sở dữ liệu đƣợc sửa đổi. Nhƣ vậy, vấn đề đặt ra ở đây là cần có một cơ chế hiệu quả cho việc cập nhật khung nhìn về đối tƣợng chung tại các trạm khác nhau. Mục tiêu của luận văn này là xem xét, đánh giá một số giải thuật cập nhật “khung nhìn” về đối tƣợng chung đó, đồng thời đƣa ra đề xuất cải tiến các giải thuật đã xem xét nếu có thể. Các giải thuật duy trì dữ liệu chung trong hệ phân tán, và đặc biệt phƣơng pháp Phát tỏa với Tri thức Bộ phận, đƣợc tìm hiểu trong luận văn này bao gồm Phát tỏa Đầy đủ, Cập nhật Tăng trưởng [4], giải thuật AS [3]. Từ các tìm hiểu về giải thuật trên, tác giả luận văn đã đƣa ra một đề xuất cải tiến giải thuật AS. Cải tiến này đƣợc thực hiện bằng cách cắt bỏ các thông báo dƣ thừa đƣợc sử dụng trong giải thuật AS. Kết quả cải tiến đƣợc tác giả luận văn đánh giá và chứng minh. Ngoài ra, trong luận văn này, tác giả đã quan tâm đến các khía cạnh thực tế khi áp dụng những giải thuật đƣợc xem xét hoặc đề xuất, trong đó khả năng kháng lỗi với tính tự ổn định [7] đƣợc đặc biệt chú ý. Với mỗi giải thuật đã đƣợc xem xét hoặc đề xuất, tác giả đã chỉ ra một phiên bản tự ổn định của nó. Luận văn đƣợc trình bày trong năm chƣơng với nội dung mỗi chƣơng nhƣ sau: Chương 1 giới thiệu hệ phân tán, các mô hình hệ phân tán, vai trò, đặc trƣng của các hệ phân tán, các khái niệm cơ bản về cấu hình, thực hiện và phƣơng pháp đánh giá 7 độ phức tạp của giải thuật phân tán [1], [8], [9]. Phần cuối chƣơng trình bày các vấn đề về khả năng kháng lỗi với tính chất tự ổn định [7]. Tiếp theo, Chương 2 trình bày bài toán duy trì dữ liệu chung trong hệ phân tán và các giải thuật sơ đẳng, bao gồm giải thuật Phát tỏa Đầy đủ và giải thuật Cập nhật Tăng trưởng [4]. Mô hình bài toán, tiêu chuẩn đánh giá độ phức tạp đƣợc trình bày. Với mỗi giải thuật, sau phần xem xét và trình bày giải thuật, tác giả đều đƣa ra một ví dụ minh họa thực hiện của giải thuật. Chương 3 trình bày giải thuật cập nhật với tri thức bộ phận, giải thuật AS [3]. Sau phần trình bày tƣ tƣởng và chi tiết giải thuật là phần chứng minh tính đúng đắn và đánh giá các độ phức tạp. Một ví dụ đƣợc tác giả đƣa ra để minh họa cho hoạt động của giải thuật AS. Trong Chương 4, tác giả đƣa ra một đề xuất cải tiến giải thuật AS bằng cách cắt bỏ các thông báo không cần thiết trong giải thuật AS. Hiệu quả tiết kiệm thời gian và thông báo của giải thuật AS cải tiến so sánh với giải thuật gốc đƣợc phát biểu và chứng minh. Giải thuật cũng đƣợc mô tả bằng mã hình thức.Cuối cùng là minh hoạ một thực hiện của giải thuật AS cải tiến. Chương 5 bàn về các thay đổi cần thực hiện để các giải thuật duy trì dữ liệu có thể thực thi đƣợc trong một số vấn đề hiện thực của hệ phân tán, đó là các vấn đề về Hệ thố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ự ổn định. Chắc chắn, luận văn còn có những thiếu sót trong nội dung cũng nhƣ trong trình bày. Tác giả của luận văn rất mong nhận đƣợc sự đóng góp ý kiến của các thầy cô giáo và của các anh/chị học viên. 8 CHƯƠNG 1. HỆ PHÂN TÁN 1.1. Khái niệm hệ phân tán Có rất nhiều khái niệm khác nhau về hệ phân tán. Một cách tổng quan, hệ phân tán là tập hợp các thiết bị tính riêng rẽ có thể giao tiếp với nhau. Đây là một khái niệm hết sức tổng quát, bao trùm một phạm vi rộng các hệ thống máy tính ngày nay, từ các bộ chíp VLSI đến các bộ đa xử lý, các mạng cục bộ, và Internet. Nếu nhƣ hệ song song phối hợp nhiều bộ xử lý nhằm giải quyết một vấn đề cho trƣớc một cách nhanh nhất thì hệ phân tán bao gồm một tập các bộ xử lý có chƣơng trình làm việc riêng bán độc lập, vì những lý do gì đó, ví dụ chia sẻ tài nguyên, tăng tính sẵn sàng, khứ lỗi, các bộ xử lý cần phối hợp hành động với nhau. Ta có thể thấy các hệ phân tán ở khắp mọi nơi. Điển hình, các hệ phân tán đƣợc sử dụng để chia sẻ tài nguyên và chia sẻ dữ liệu. Các máy tính kết nối mạng với nhau có thể dùng chung máy in, máy quét, chia sẻ các tệp tài liệu, chƣơng trình… Tính toán ngang hàng là một kiểu thực hiện của hệ phân tán ngày càng trở nên phổ biến cho việc cung cấp các thiết bị và dịch vụ tính toán. Các hệ phân tán nhiều tham vọng hơn cho hiệu năng hoạt động cao bằng cách kết hợp giải các bài toán con một cách song song, đồng thời tăng tính sẵn sàng của hệ thống trong trƣờng hợp một số thiết bị gặp lỗi. 1.2. Vai trò của hệ phân tán Ngày nay hệ phân tán đang trở nên phổ biến vì những vai trò ứng dụng quan trọng của chúng. Trƣớc hết, phải kể đến đó là vai trò trao đổi thông tin. Các hệ phân tán cho khả năng chia sẻ thông tin rộng rãi và tức thời. Lấy ví dụ, thông tin từ hệ thống máy tính đặt tại Sở giao dịch chứng khoán TPHCM có thể đƣợc sử dụng bởi hệ thống máy tính đặt tại trụ sở của các công ty chứng khoán thành viên hay cũng có thể chia sẻ đến tận các nhà đầu tƣ. Các thông tin chứng khoán cũng luôn yêu cầu phải có tính chính xác cũng nhƣ tức thời rất cao, và hệ phân tán cũng có thể cung cấp những khả năng đảm bảo đƣợc điều này. Hệ phân tán cũng cho khả năng chia sẻ thông tin giữa các thiết bị hỗn tạp. Một máy tính có thể "nói chuyện" với các máy tính khác loại, các điện thoại cố định, di động, 9 các PDA, … Các hệ phân tán cho khả năng chia sẻ tài nguyên cả phần cứng lẫn phần mềm. Các máy tính kết nối mạng có thể dùng chung máy in, có thể chia sẻ các tệp dữ liệu, các tệp chƣơng trình. Thứ hai, bằng việc sao lặp, nhân bản, các hệ phân tán cho độ tin cậy cao. Nếu toàn bộ dữ liệu của một chi nhánh ngân hàng lƣu trong máy tính đột nhiên biến mất, ngƣời ta có thể khôi phục lại bằng cách sao phần nhân bản đã đƣợc lƣu tại một nơi khác trên hệ thống máy tính của ngân hàng. Thứ ba, thông qua song song hóa, các thực thể trong hệ phân tán có thể chia sẻ công việc, thực hiện đồng thời công việc chung, do vậy làm tăng hiệu suất hoạt động của hệ thống. Thứ tư, hệ phân tán làm đơn giản việc thiết kế các hệ thống phức tạp. Ngƣời ta thƣờng phân một hệ thống phức tạp thành các hệ thống con chuyên dụng và hợp tác với nhau. Làm nhƣ vậy, không những việc thiết kế đơn giản mà việc thực hiện cũng đơn giản. Các ƣu điểm của hệ phân tán so với máy tính cá nhân và so với hệ tập trung đƣợc chỉ ra ngắn gọn trong các bảng sau. Bảng 1.1. Ưu điểm của hệ phân tán so với máy tính cá nhân. Ưu điểm Mô tả Chia sẻ dữ liệu Cho phép nhiều người dung cùng truy cập vào một cơ sở dữ liệu chung Chia sẻ thiết bị Cho phép nhiều người dung dung chung các thiết bị đắt tiền như máy in màu, máy quét, ... Truyền thông Giúp truyền thông giữa người với người dễ dàng hơn, ví dụ bằng thư điện tử Mềm dẻo Phân công việc cho bất kỳ máy nào sẵn sàng 10 Bảng 1.2. Ưu điểm của hệ phân tán so với hệ tập trung. Ưu điểm Mô tả Hiệu năng Máy tính đa bộ xử lý có hiệu năng cao hơn máy tính mainframe Tốc độ Tổng năng lực tính toán của một hệ phân tán có thể cao hơn máy tính mainframe Phân tán Một số ứng dụng chạy trên nhiều máy tính xa nhau về mặt không gian Tính tin cậy Khi một máy gặp lỗi, toàn bộ hệ thống vẫn có thể làm việc Mở rộng Năng lực tính toán có thể được nâng lên nhờ them các bộ xử lý bình thường Mặc dù các hệ phân tán có những hạn chế nhƣ hiện tại có ít phần mềm cho chúng, đòi hỏi an ninh và tính bảo mật cao nhƣng những ƣu điểm lớn kể trên làm cho vai trò của các hệ phân tán ngày càng trở nên quan trọng. 1.3. Đặc trưng của các hệ phân tán Ba đặc trƣng, và cũng là những khó khăn điển hình khi thiết kế, của hệ phân tán là: không đồng bộ, thiếu thông tin toàn cục, và không có cơ chế phát hiện sự cố chính xác. Một hệ phân tán không có đồng hồ chung. Ta cũng không thể đồng bộ hóa đồng hồ của các bộ xử lý khác nhau vì không biết chắc độ trễ truyền thông. Để đạt đƣợc tính đồng bộ, ta không thể dùng đồng hồ vật lý mà phải vận dụng các khái niệm và giải thuật nhân quả. Tƣơng tự, một hệ phân tán không có bộ nhớ toàn cục chung. Các bộ xử lý không thể biết đƣợc trạng thái toàn cục của hệ thống. "Hiểu biết" của mỗi bộ xử lý chỉ có tính cục bộ. Do vậy, ngƣời thiết kế hệ phân tán, cụ thể là ngƣời xây dựng giải thuật phân tán phải xây dựng cơ chế đánh giá các tính toàn cục. Ngoài ra, chúng ta không có cơ chế phát hiện sự cố chính xác trong hệ phân tán vì không thể phân biệt đƣợc bộ xử lý chậm hay bị sự cố. Khi một bộ xử lý gặp sự cố, các bộ xử lý còn lại vẫn 11 phải tiếp tục làm việc để đạt đƣợc kết quả nhƣ mong muốn. Những đặc trƣng này thực sự là những khó khăn khi thiết kế các hệ phân tán. 1.4. Mô hình hóa các hệ phân tán Trong một hệ phân tán, mỗi thực thể (máy tính, bộ xử lý, tiến trình) chạy một chƣơng trình riêng bao gồm tập các lệnh. Khi thực hiện lệnh, thực thể thay đổi trạng thái cục bộ của nó. Ta có thể mô hình hóa sự thay đổi này bằng cách xem mỗi thực thể là một máy trạng thái. Một hệ phân tán đƣợc mô hình hóa bằng tập n máy trạng thái. Ký hiệu máy thứ i là Pi. Truyền thông giữa các thực thể có thể thực hiện bằng cách chuyển thông báo hay sử dụng bộ nhớ dùng chung. Truyền thông bằng cách ghi vào và đọc ra từ bộ nhớ dùng chung thƣờng hạn chế hệ thống với các thực thể gần nhau về mặt địa lý, ví nhƣ hệ thống đa bộ xử lý hay các máy tính đa nhiệm. Truyền thông theo cách chuyển thông báo không có giới hạn nhƣ vậy, có thể thực hiện trong cả hệ thống mà các thực thể rất xa nhau về mặt địa lý nhƣ các mạng máy tính. Hình 1.1. dƣới đây là minh họa mô hình tổng quát của các hệ thống phân tán. Hinh 1.1. Mô hình tổng quát hệ thống phân tán. Tùy theo phƣơng pháp truyền thông đƣợc sử dụng, ta có mô hình chuyển thông báo hay mô hình với bộ nhớ dùng chung. 12 1.4.1. Mô hình chuyển thông báo Trong mô hình chuyển thông báo, các láng giềng trao đổi thông tin cho nhau bằng cách gửi và nhận thông báo. Liên kết giữa các thực thể có thể đơn hoặc lƣỡng hƣớng. Liên kết đơn hƣớng từ thực thể Pi đến thực thể Pj đƣợc sử dụng để chuyển thông báo từ Pi đến Pj. Ta có thể trừu tƣợng hóa liên kết đơn hƣớng trên bằng hàng đợi FIFO q i, j chứa tất cả các thông báo đƣợc Pi gửi cho Pj nhƣng Pj chƣa nhận đƣợc. Mỗi khi P i gửi cho Pj một thông báo m, m đƣợc đƣa vào hàng đợi q i,j. Pj có thể nhận m khi nó trên đỉnh hàng đợi qi,j. Liên kết lƣỡng hƣớng giữa Pi và Pj có thể đƣợc mô hình hóa bằng hai hàng đợi: qi,j cho hƣớng từ Pi đến Pj và qj,i cho hƣớng từ Pj đến Pi. Trạng thái của hệ thống phân tán chuyển thông báo tại một thời điểm cụ thể đƣợc xác định bởi trạng thái của các bộ xử lý và nội dung của các hàng đợi chứa thông báo tại thời điểm đó. Cấu hình hệ thống (hay cấu hình) đƣợc dùng để chỉ trạng thái này. Một cấu hình đƣợc ký hiệu c = (s1, s2, …, sn, q1,2 q1,3, …, qi,j, …., qn, n-1), trong đó si, 1 ≤ i ≤ n , là trạng thái của P i và qi, j, i  j, là hàng đợi chứa thông báo Pi gửi cho Pj nhƣng Pj chƣa nhận đƣợc. Sau đây là minh họa mô hình chuyển thông báo. Hình 1.2. Mô hình chuyển thông báo. 1.4.2. Mô hình với bộ nhớ dùng chung Trong mô hình với bộ nhớ dùng chung, các bộ xử lý trao đổi thông tin cho nhau bằng cách sử dụng chung các ô nhớ. Các bộ xử lý có thể ghi vào một tập các ô nhớ và 13 đọc ra từ một tập các ô nhớ khác. Cấu hình hệ thống bao gồm trạng thái của các bộ xử lý và nội dung của các ô nhớ dùng chung. Một cấu hình của hệ thống gồm n bộ xử lý và m ô nhớ dùng chung đƣợc ký hiệu c = (s1, s2, …, sn,, r1, r2, …, rm), trong đó si, 1 ≤ i ≤ n, là trạng thái của Pi, rj, 1 ≤ j ≤ m, là nội dung của ô nhớ dùng chung thứ j. Hình 1.3. Mô hình với bộ nhớ dùng chung. 1.4.3. Mô hình xen kẽ Mô hình xen kẽ đƣợc sử dụng để lý giải hành vi của hệ thống phân tán. Trong mô hình này, tại mỗi thời điểm có duy nhất một bộ xử lý thực hiện một bƣớc tính (còn gọi là bƣớc nguyên tử). Mỗi bƣớc nguyên tử bao gồm một số phép tính bên trong bộ xử lý, hay còn gọi là sự kiện tính, và một phép giao, hay còn gọi là sự kiện giao - một phép gửi hoặc nhận trong hệ thống chuyển thông báo hay một phép ghi hoặc đọc trong hệ thống sử dụng bộ nhớ dùng chung. 1.4.4. Thực hiện và những tính chất của thực hiện Trong một hệ thống phân tán, các bộ xử lý có thể thực hiện các bƣớc tính một cách đồng thời; tuy nhiên, chúng ta giả thiết bƣớc tính này không ảnh hƣởng đến bƣớc tính khác. Điều này đúng trong mô hình chuyển thông báo vì một thông báo đƣợc gửi đi không thể nhận đƣợc bởi thao tác nhận xảy ra đồng thời với thao tác gửi. Trong mô hình bộ nhớ dùng chung, chúng ta giả thiết kiến trúc bộ nhớ dùng chung đảm bảo tuần tự hóa: có thể sắp xếp các thao tác đọc và ghi theo thứ tự hoàn toàn để kết quả của 14 thao tác đọc từ một ô nhớ là giá trị đƣợc ghi vào ô nhớ tại lần ghi cuối cùng vào ô nhớ trƣớc thao tác đọc. Trong các phần sau đây, chúng ta sử dụng thuật ngữ bước cho bƣớc nguyên tử và ký hiệu một bƣớc (cùng với định danh của bộ xử lý thực hiện bƣớc tính) là a. Cấu hình c2 đƣợc gọi là đến được trực tiếp từ cấu hình c1, ký hiệu là c1 a c2, nếu tồn tại một bƣớc tính a để từ cấu hình c1, thực hiện bƣớc a, ta đƣợc cấu hình c2. Cấu hình c’ đƣợc gọi là đến được từ cấu hình c, ký hiệu c  c’, nếu tồn tại các cấu hình c i, 0 ≤ i ≤ n, và các bƣớc aj, 0 ≤ j < n, để c = c0 a0 c1 a1 c2  … cn-1an-1 cn = c’. Bƣớc tính a’ đƣợc gọi là áp dụng được trên cấu hình c nếu tồn tại cấu hình c’ để c a' c’. Một thực hiện E = (c1, a1, c2, a2, …) là một dãy xen kẽ các cấu hình và bƣớc tính trong đó ci-1 ai-1 ci (i > 1); nói cách khác, cấu hình ci (i > 1) đến đƣợc trực tiếp từ cấu hình ci-1 bằng việc áp dụng bƣớc tính ai-1. Ví dụ, trong mô hình với bộ nhớ dùng chung, nếu tại bƣớc ai, bộ xử lý Pj ghi giá trị x vào ô nhớ dùng chung rk, thì chỉ hai thành phần có giá trị khác nhau trong ci và ci+1 là Pj và rk. Một thực hiện đƣợc gọi là thỏa đáng nếu trong thực hiện đó mọi bƣớc tính áp dụng đƣợc vô hạn lần đƣợc thực hiện vô hạn lần. Nói cách khác, nếu một bộ xử lý có một bƣớc để thực hiện thì bộ xử lý sẽ thực hiện bƣớc tính đó. Trong các hệ thống phân tán chuyển thông báo, một thông báo có thể bị mất trong khi thực hiện giải thuật. Các mã phát hiện lỗi đƣợc sử dụng để nhận biết và loại bỏ các thông báo bị ngắt, những thông báo này đƣợc xem là thông báo bị mất. Để mô hình hóa các hệ thống này, chúng ta mở rộng định nghĩa bƣớc tính để bao hàm sự kiện mất thông báo (sự kiện môi trƣờng) dạng lossi, j(m) – thông báo m đƣợc Pi gửi cho Pj nhƣng bị mất và Pj không nhận đƣợc. Sự kiện lossi, j(m) áp dụng đƣợc trên cấu hình ck nếu trong ck, qi,j chứa m. Kết quả áp dụng lossi, j(m) trên ck đƣợc cấu hình ck+1 trong đó m bị loại khỏi qi,j còn các thành phần khác không thay đổi so với trong ck. Khác với các sự kiện tính đƣợc thực hiện bởi các bộ xử lý, trong các thực hiện thỏa đáng, chúng ta không yêu cầu các sự kiện môi trƣờng áp dụng đƣợc trên vô hạn lần phải xảy ra vô hạn lần. Nói cách khác, ta không yêu cầu tính thỏa đáng phải áp dụng đối với các sự kiện môi trƣờng. 15 Một thực hiện thỏa đáng kéo dài vô hạn không có nghĩa là các chƣơng trình cục bộ không bao giờ kết thúc. Để mô hình hóa tính kết thúc của giải thuật, chúng ta định ra một số trạng thái kết thúc của các bộ xử lý. Đây là trạng thái của các bộ xử lý mà một khi đạt đƣợc, các bộ xử lý sẽ không bao giờ thay đổi, không gửi/nhận thông báo (đối với mô hình chuyển thông báo) hoặc không làm thay đổi nội dung các biến dùng chung (đối với mô hình với bộ nhớ dùng chung). Cấu hình trong đó tất cả các bộ xử lý không lỗi ở trạng thái kết thúc và không có thông báo treo (đã đƣợc gửi nhƣng chƣa đƣợc nhận) nào (với mô hình chuyển thông báo) đƣợc gọi là cấu hình kết thúc. Một thực hiện kết thúc khi nó đạt đến cấu hình kết thúc. Các hệ thống phân tán đƣợc mô tả ở trên thuộc lớp không đồng bộ. Trong thực tế, tồn tại một lớp các hệ phân tán đồng bộ. Các thành phần trong hệ phân tán đồng bộ thƣờng gần nhau về mặt địa lý và đƣợc điều khiển bởi một đồng hồ sung. Các bộ xử lý thực hiện các phép tính đồng bộ theo nhịp sung đồng hồ. Tuy nhiên, chúng ta không quan tâm đến cấu trúc vật lý của hệ thống mà chỉ quan tâm đến tính đồng bộ của nó. Vì tất cả các bộ xử lý thực hiện các phép tính đồng thời nên một thực hiện của hệ thống phân tán đồng bộ đơn giản đƣợc ký hiệu là E = (c1, c2, …) và hoàn toàn đƣợc xác định từ cấu hình ban đầu, c1. 1.5. Đánh giá độ phức tạp Rõ ràng, để xây dựng các hệ phân tán, chúng ta cần xây dựng các giải thuật phân tán. Thực hiện của giải thuật phân tán diễn ra phân tán trên nhiều bộ xử lý. Cũng nhƣ các giải thuật khác, giải thuật phân tán đƣợc đánh giá độ phức tạp trên hai khía cạnh: độ phức tạp tính toán và độ phức tạp bộ nhớ. Thoạt nhìn, việc đánh giá độ phức tạp tính toán dƣờng nhƣ trái ngƣợc với tính không đồng bộ của hệ thống phân tán. Theo định nghĩa về các hệ thống không đồng bộ, không có giới hạn trên về thời gian xử lý/truyền thông báo. Tuy nhiên, để có thể đánh giá và so sánh các giải thuật với nhau, ngƣời ta sử dụng số vòng không đồng bộ để đánh giá độ phức tạp của một thực hiện cụ thể. Vòng không đồng bộ (hay vòng) thứ nhất trong thực hiện E là tiền tố ngắn nhất E’ của E sao cho mỗi bộ xử lý thực hiện ít nhất một bƣớc trong E’. Gọi E’’ là hậu tố của E theo liền sau E’, E=E’E’’. Vòng thứ hai của E là vòng thứ nhất của E’’, vv… Số 16 vòng trong thực hiện của một giải thuật phân tán đƣợc dùng để đánh giá độ phức tạp thời gian của giải thuật. Một cách trực quan, định nghĩa vòng không đồng bộ bỏ qua tốc độ của các bộ xử lý bằng việc kéo dài vòng đủ dài để trong mỗi vòng, bộ xử lý có tốc độ chậm nhất cũng thực hiện đƣợc một bƣớc tính. Độ phức tạp thời gian của một hệ thống đồng bộ là số sung trong thực hiện (bằng số vòng). Độ phức tạp bộ nhớ của một giải thuật là tổng số bit nhớ (dùng chung và cục bộ) đƣợc sử dụng để cài đặt giải thuật. Độ phức tạp thông báo là tổng số thông báo (hoặc tổng kích thƣớc các thông báo) đƣợc gửi/nhận khi thực hiện giải thuật. 1.6. Khả năng kháng lỗi và tính tự ổn định 1.6.1. Khả năng kháng lỗi Khả năng kháng lỗi là một trong những đặc tính quan trọng của bất cứ hệ thống nào, không chỉ các hệ phân tán. Khả năng kháng lỗi của một hệ thống đƣợc thể hiện ở số lƣợng và số loại lỗi mà hệ thống có thể gặp phải nhƣng có thể khắc phục để hoạt động bình thƣờng trở lại sau khi gặp lỗi. Nhƣ vậy, một hệ thống thực sự tin cậy phải có khả năng kháng lỗi tốt. Có nhiều phƣơng pháp kháng lỗi, trong đó phƣơng pháp lý tƣởng nhất là làm cho hệ thống có tính tự ổn định để sau khi hệ thống gặp bao nhiêu, bất kỳ loại lỗi gì cũng có thể tự trở lại trạng thái bình thƣờng và tiếp tục hoạt động tốt. 1.6.2. Tính chất tự ổn định Khái niệm tự ổn định đƣợc Dijkstra đƣa ra đầu tiên năm 1973 trong bài báo nổi tiếng “Self-stabilizing systems in spite of distributed control” [7]. Tự ổn định, sau đó, đƣợc nghiên cứu nhƣ một chuyên ngành thuộc tính toán phân tán. Một hệ tự ổn định có thể xuất phát từ một cấu hình bất kỳ, luôn đảm bảo sẽ thể hiện được hành vi “hợp lệ” mong muốn. Nói cách khác, với thực hiện bất kỳ, sau hữu hạn lần biến đổi cấu hình, ta có chuỗi cấu hình hợp lệ. 17 Ta định nghĩa hành vi hợp lệ mong muốn bằng tập các thực hiện hợp lệ đƣợc ký hiệu là LE. Một tập các thực hiện hợp lệ đƣợc xác định cho một hệ thống cụ thể và một bài toán cụ thể. Mọi thực hiện của hệ thống tự ổn định có hậu tố xuất hiện trong LE. Ví dụ, với bài toán loại trừ lẫn nhau, thực hiện hợp lệ là thực hiện trong đó tại mọi cấu hình, có nhiều nhất một bộ xử lý nằm trong đoạn găng, và trong đó mọi bộ xử lý đƣợc vào đoạn găng vô hạn lần. Một cấu hình c đƣợc gọi là an toàn đối với tập thực hiện hợp lệ LE và một giải thuật A nếu mọi thực hiện thỏa đáng của giải thuật A xuất phát từ c đều thuộc LE. Một giải thuật đƣợc gọi là tự ổn định đối với tập thực hiện hợp lệ LE nếu mọi thực hiện thỏa đáng của giải thuật đều đạt đến một cấu hình an toàn đối với giải thuật và LE. 1.6.3. Vai trò của tự ổn định Một hệ thống tự ổn định có thể bỏ qua mọi lỗi. Ta tƣởng tƣợng, lỗi xuất hiện đẩy hệ thống về một trạng thái nào đó. Nhờ khả năng tự ổn định, sau lần xuất hiện lỗi cuối cùng, và sau hữu hạn bƣớc chuyển trạng thái nữa, hệ thống trở lại trạng thái hợp lệ và hoạt động bình thƣờng. Tính tự ổn định đặc biệt hữu ích đối với các hệ thống động (các bộ xử lý và liên kết có thể đƣợc thêm mới, mất chức năng, đƣợc khôi phục lại). Tự ổn định cho chúng ta một cách giải quyết triệt để trong khắc phục lỗi. Một hệ thống không thể tránh đƣợc lỗi. Lỗi có thể do phần cứng, phần mềm, do ngƣời sử dụng thiết lập hay nhập liệu sai, … Cách khắc phục lỗi truyền thống là liệt kê ra các lỗi, đồng thời, đƣa ra cách giải quyết cho mỗi lỗi. Tuy nhiên, cách này chỉ giải quyết đƣợc một số lỗi thƣờng gặp. Chúng ta không thể kể ra tất cả các lỗi tiềm tàng, do vậy không thể đảm bảo hệ thống không còn lỗi. Một khi, hệ thống gặp lỗi lạ, tức là lỗi không có trong danh sách lỗi, nó không biết giải quyết nhƣ thế nào và mãi mãi trong trạng thái nhƣ vậy. Một cách giải quyết khác là khứ lỗi [AS04, Lyn97]. Tuy nhiên, cách này cũng chỉ khắc phục đƣợc hữu hạn lỗi. Khi số lỗi vƣợt quá hệ số kháng lỗi, hệ thống rơi vào trạng thái lỗi và không thể hoạt động bình thƣờng trừ khi nó đƣợc khởi động lại. 18 1.6.4. Đánh giá độ phức tạp Cũng nhƣ các giải thuật phân tán khác, giải thuật tự ổn định đƣợc đánh giá độ phức tạp thời gian dựa trên số vòng không đồng bộ. Số vòng trong thực hiện của một giải thuật tự ổn định đƣợc dùng để đánh giá độ phức tạp thời gian của giải thuật. Giải thuật tự ổn định không bao giờ kết thúc, và các bộ xử lý phải tiếp tục liên lạc với các láng giềng của chúng. Trong mô hình với bộ nhớ dùng chung, các bộ xử lý phải tiếp tục đọc các ô nhớ dùng chung của các láng giềng. Trong mô hình chuyển thông báo, các bộ xử lý phải tiếp tục gửi và nhận thông báo. Tính chất không kết thúc của giải thuật tự ổn định đƣợc giải thích nhƣ sau: giả sử các bộ xử lý kết thúc, P i kết thúc ở trạng thái si. Theo tính chất tự ổn định của giải thuật, hệ thống phải đạt đến cấu hình an toàn xuất phát từ bất kỳ cấu hình nào. Khi hệ thống đƣợc bắt đầu từ cấu hình c tại đó bộ xử lý Pi có trạng thái si, không có bộ xử lý nào thực hiện bất kỳ bƣớc nào, nhƣ vậy c là một cấu hình an toàn. Do vậy, nhiệm vụ của giải thuật đã đạt đƣợc khi mỗi bộ xử lý Pi chỉ có duy nhất một trạng thái si. Rõ ràng, nhiệm vụ này không yêu cầu bất kỳ liên lạc nào giữa các bộ xử lý và giải thuật đƣợc sử dụng không phải là một giải thuật phân tán. Tính không kết thúc của giải thuật dễ ràng đƣợc nhận ra từ mã của giải thuật: mã của giải thuật thƣờng bao gồm một vòng lặp vô hạn chứa các thao tác liên lạc với các láng giềng. Ví dụ, trong mô hình với bộ nhớ dùng chung, mã của giải thuật cho một bộ xử lý Pi thƣờng bắt đầu với các thao tác đọc các ô nhớ dùng chung của láng giềng, theo đó là các thao tác ghi vào các ô nhớ dùng chung cục bộ. Số bƣớc cần thiết để thực hiện một lần lặp của vòng lặp vô hạn trong ví dụ này là O(∆), trong đó ∆ là cận trên bậc (số láng giềng) của Pi. Chúng ta mở rộng khái niệm vòng không đồng bộ để có khái niệm chu kỳ không đồng bộ (hay là chu kỳ). Chu kỳ thứ nhất của thực hiện E là tiền tố ngắn nhất E’ của E sao cho mỗi bộ xử lý hoàn thành ít nhất một lần lặp của vòng lặp vô hạn trong E’. Gọi E’’ là hậu tố của E liền tiếp sau E’, E = E’E’’. Chu kỳ thứ hai của E là chu kỳ thứ nhất của E’’, vv… 19 Lƣu ý rằng nếu mỗi lần lặp của vòng lặp vô hạn bao gồm các thao tác đọc ô nhớ dùng chung của láng giềng, tính toán cục bộ, và ghi vào các ô nhớ dùng chung cục bộ, thì mỗi chu kỳ kéo dài O(∆) vòng. Độ phức tạp thời gian của một hệ thống đồng bộ là số sung trong thực hiện (bằng số vòng). Độ phức tạp bộ nhớ của một giải thuật là tổng số bit nhớ (dùng chung và cục bộ) đƣợc sử dụng để cài đặt giải thuật. Độ phức tạp thông báo là tổng số thông báo (hoặc tổng kích thƣớc các thông báo) đƣợc gửi/nhận khi thực hiện giải thuật. 20
- Xem thêm -