thời gian logic
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA ĐÀO TẠO QUỐC TẾ VÀ SAU ĐẠI HỌC
-********** -BÀI TIỂU LUẬN Môn: TÍNH TOÁN PHÂN TÁN
Chủ đề: “Thời gian logic”
Giáo viên giảng dạy: PGS.TS Trần Đình Quế Nhóm thực hiện: Hoàng Thị Hà
Nguyễn Huyền Trang Hoàng Hoài Nam Phạm Đình Vũ
Lớp: Cao học Hệ thống thông tin 2013
Hà nội, ngày 28 tháng 3 năm 2014
Trang 2MỤC LỤC
Trang 3NỘI DUNG Phần 1: GIỚI THIỆU
Khái niệm quan hệ nhân quả giữa các sự kiện là cơ sở để thiết kế và phân tích các hệ hiều hành, tính toán phân tán và song song Thông thường, quan hệ nhân quả được theo dõi giám sát bởi thời gian vật lý Sự cần thiết của thời gian logic xuất phát từ thực tế trong các hệ thống phân tán, không thể có thời gian vật lý toàn cục, mà chỉ có thể nhận ra một xấp xỉ của nó Một thời gian logic, do đó không dựa trên đồng hồ nhưng có thể dựa trên một giá trị thời gian thu được từ một cấu trúc dữ liệu hướng công thức Khi một sự kiện được thực hiện trong một quá trình, nó tính toán thời gian logic địa phương của mình và gửi nó cùng với một thông điệp Sự kiện bên nhận có được tri thức về thời gian logic địa phương của các sự kiện trước đó mà nó có thể sử dụng để thiết lập thời gian logic riêng của mình Cơ chế này đảm bảo rằng các sự kiện được thực hiện theo đúng trình tự Chương này sẽ thảo luận 3 phương pháp để thực thi thời gian logic (ví dụ: thời gian vô hướng, thời gian vectơ và thời gian ma trận) mà đã được đề xuất để phát hiện quan hệ nhân quả giữa các sự kiện của tính toán phân tán
Quan hệ nhân quả giữa các sự kiện trong một hệ thống phân tán là một định nghĩa mạnh trong lập luận, phân tích, và suy luận tính toán Tri thức về quan hệ nhân quả giữa các sự kiện giúp cho việc giải quyết đa dạng các bài toán trong hệ phân tán Ví dụ về một
số bài toán đó như sau:
- Thiết kế các thuật toán phân tán: tri thức về quan hệ nhân quả giữa các sự kiện
giúp đảm bảo tính tồn tại, và công bằng trong các thuật toán loại trừ, duy trì tính nhất quán trong cơ sở dữ liệu nhân bản, và thiết kế các thuật toán phát hiện deadlock để tránh phát hiện sai hoặc không phát hiện được deadlock
- Theo dõi các sự kiện phụ thuộc: trong vấn đề gỡ lỗi phân tán, tri thức về sự phụ
thuộc nhân quả giữa các sự kiện giúp xây dựng nên một trạng thái nhất quán cho việc khôi phục thực thi; trong quá trình phục hồi lỗi, nó giúp xây dựng một trạm kiểm soát; trong cơ sở dữ liệu nhân bản, nó hỗ trợ phát hiện các mâu thuẫn tập tin trong trường hợp phân vùng mạng
- Tri thức về tiến độ: tri thức về sự phụ thuộc nhân quả giữa các tiến trình giúp đo
được tiến độ của của các tiến trình trong tính toán phân tán Điều này có ích trong việc loại bỏ thông tin không dùng nữa (lỗi thời), thu gom rác và phát hiện kết thúc
- Đo khả năng truy cập đồng thời: tri thức về số lượng sự kiện phụ thuộc nhân quả,
là có ích trong việc đo số lượng đồng thời trong tính toán phân tán Tất cả các sự kiện mà
Trang 4không phụ thuộc nhân quả có thể được thực thi đồng thời Do vậy, một phép phân tích nhân quả trong một tính toán phân tán cho ta ý tưởng về sự đồng thời trong chương trình.Khái niệm nhân quả được con người sử dụng rộng rãi một cách vô thức, trong việc lập kế hoạch, lập lịch, và thực hiện một việc, hoặc trong việc quyết định tính bất khả thi của một kế hoạch Trong cuộc sống hằng ngày, thời gian toàn cục để suy luận mối quan
hệ nhân quả thu được từ các đồng hồ đồng bộ hóa lỏng lẻo Tuy nhiên trong hệ tính toán phân tán, tỷ lệ xuất hiện các sự kiện là lớn hơn một vài đại lượng và thời gian thực thi các
sự kiện là nhỏ hơn một vài đại lượng Do đó, nếu đồng hồ vật lý không được đồng bộ hóa chặt chẽ thì quan hệ nhân quả giữa các sự kiện có thể không được chỉ ra chính xác Các giao thức thời gian mạng, NTP, mà có thể duy trì thời gian chính xác đến từng vài chục mili giây trên Internet, vẫn không đủ để bắt được quan hệ nhân quả trong các hệ phân tán Tuy nhiên, trong tính toán phân tán, tiến độ thông thường được đẩy nhanh, và tương tác giữa các tiến trình xảy ra cũng nhanh hơn Do đó, trong một tính toán phân tán, quan hệ nhân quả giữa các sự kiện được sinh ra bởi thực thi chương trình và tính chất đơn điệu cơ bản của nó có thể đo được chính xác bởi các đồng hồ logic
Trong một hệ thống đồng hồ logic, mọi tiến trình đều có 1 đồng hồ logic mà cải tiến tập các quy tắc Mỗi sự kiện được gán với một nhãn thời gian và quan hệ nhân quả giữa các sự kiện có thể được suy ra từ nhãn thời gian của chúng Các nhãn thời gian được gán
cho các sự kiện tuân theo tính chất đơn điệu cơ sở, đó là, nếu một sự kiện a ảnh hưởng nhân quả tới sự kiện b thì nhãn thời gian của a nhỏ hơn nhãn thời gian của b.
Chương này đầu tiên giới thiệu một mô hình chung của hệ thống đồng hồ logic trong các hệ thống phân tán, và sau đó thảo luận 3 cách để thực thi thời gian logic trong hệ phân tán Trong phương pháp thứ nhất, đồng hồ vô hướng Lamport, thời gian được biểu diễn bởi các số nguyên không âm, ở phương pháp thứ hai, thời gian được biểu diễn bởi một vecto các số nguyên không âm, phương pháp thứ 3, thời gian được biểu diễn bởi một
ma trận các số nguyên không âm Chúng tôi cũng thảo luận các phương pháp hiệu quả để thực hiện các hệ thống đồng hồ vectơ
Chương này kết thúc bằng một thảo luận về thời gian ảo, sự thực hiện của nó sử dụng
cơ chế thời gian dọc, và thảo luận ngắn gọn về đồng bộ hóa đồng hồ vật lý và giao thức thời gian mạng NTP
Trang 5Phần 2: FRAMEWORK CHO HỆ THỐNG ĐỒNG HỒ LOGIC
2.1 Định nghĩa
Một hệ thống đồng hồ logic bao gồm một miền thời gian T và đồng hồ logic C Các phần tử của T tạo thành một tập có thứ tự từng phần trên quan hệ < Quan hệ này thường được gọi là xảy ra trước hoặc quan hệ nhân quả Đồng hồ logic C là một hàm mà ánh xạ một sự kiện e trong hệ phân tán tới một phần tử trong miền thời gian T, ký hiệu là C(e) và được gọi là nhãn thời gian của e, được định nghĩa như sau:
C: H→T, sao cho tính chất sau được thỏa mãn:
với hai sự kiện ei và ej , ei →ej⇒C(ei) < C(ej).
Tính chất đơn điệu (monotonicity )này được gọi là điều kiện nhất quán đồng hồ Khi
T và C thỏa mãn điều kiện sau:
với hai sự kiện ei và ej , ei →ej⇔C(ei) < C(ej),
hệ thống đồng hồ được gọi là nhất quán mạnh
2.2 Thực thi đồng hồ logic
Thực thi đồng hồ logic yêu cầu giải quyết hai vấn đề: cấu trúc dữ liệu địa phương tới mọi tiến trình để biểu diễn thời gian logic và một giao thức (tập các quy tắc) để cập nhật
dữ liệu mà cho phép hai khả năng sau:
của nó
của thời gian logic toàn cục Nó cho phép tiến trình này gán những nhãn thời gian nhất
Giao thức đảm bảo rằng một đồng hồ logic của tiến trình được quản lý nhất quán Giao thức bao gồm hai quy tắc sau:
• R1 Quy tắc này điều chỉnh cách thức để đồng hồ logic địa phương được cập nhật bởi một tiến trình khi nó thực thi một sự kiện (gửi, nhận, hoặc internal)
• R2 Quy tắc này điều chỉnh cách thức một tiến trình cập nhật đồng hồ logic toàn cục
để để cập nhật biểu diễn của nó về thời gian toàn cục và tiến độ toàn cục Nó yêu cầu những thông tin nào về thời gian logic được mang theo trong thông điệp và cách thức thông tin này được sử dụng bởi các tiến trình nhận để cập nhật biểu diễn thời gian toàn cục của nó
Trang 6Hệ thống đồng hồ logic phân biệt nhau bởi biểu diễn thời gian logic của chúng và giao thức cập nhật đồng hồ logic Tuy nhiên, tất cả các hệ thống đồng hồ logic đều thực hiện quy tắc R1 và R2 và do đó đảm bảo tính đơn điệu cơ sở kết hợp với quan hệ nhân quả Hơn nữa, mỗi hệ thống đồng hồ logic cụ thể còn cung cấp cho người dùng một vài tính năng bổ sung.
Trang 7Phần 3: THỜI GIAN VÔ HƯỚNG
3.1 Định nghĩa
Biểu diễn thời gian vô hướng được đề xuất bởi Lamport năm 1978, là một nỗ lực để sắp thứ tự các sự kiện trong hệ phân tán Miền thời gian trong biểu diễn này là tập các số
Các quy tắc R1 và R2 cập nhật đồng hồ như sau:
sau:
Ci :=Ci+d (d>0)
Nói chung, mỗi lần R1 được thực thi, d có thể có 1 giá trị khác nhau, và giá trị này có thể phụ thuộc ứng dụng Tuy nhiên, d thường bằng 1 vì điều này có thể xác định được thời gian mỗi sự kiện ở duy nhất1 tiến trình, trong khi giữ tốc độ tăng của d ở mức thấp
nhất
• R2 mỗi thông điệp mang theo giá trị đồng hồ của bên gửi nó ở thời điểm gửi Khi
động sau đây:
1.Ci:=max ( Ci, Cmsg);
2 thực hiện R1;
3 chuyển thông điệp
Hình 3.1 cho thấy sự phát triển của thời gian vô hướng với d= 1
3.2 Các tính chất cơ bản
Tính nhất quán
Trang 8Rõ ràng, các đồng hồ vô hướng thỏa mãn tính chất đơn điệu và do đó thỏa mãn tính nhất quán:
với hai sự kiện ei và ej , ei →ej⇒C(ei) < C(ej).
Sắp thứ tự toàn phần
Các đồng hồ vô hướng có thể được dùng để sắp thứ tự toàn bộ các sự kiện trong hệ phân tán Vấn đề chính trong các sự kiện được sắp thứ tự toàn phần đó là có nhiều hơn hoặc hai sự kiện ở các tiến trình khác nhau cùng có 1 nhãn thời gian giống hệt nhau (Chú
Do đó, một cơ chế phá vỡ ràng buộc là cần thiết để sắp xếp các sự kiện như vậy Thông thường, một ràng buộc được phá vỡ như sau: bộ nhận dạng tiến trình được sắp thứ
tự tuyến tính và một ràng buộc giữa các sự kiện với nhãn thời gian vô hướng xác định được phá vỡ trên cơ sở nhận dạng tiến trình Nhận dạng tiến trình thấp hơn trong bảng xếp hạng, sẽ có độ ưu tiên cao hơn
Nhãn thời gian của một sự kiện được ký hiệu bởi bộ (t, i), trong đó t là thời gian xuất hiện và i là đặc tính của tiến trình nơi nó xảy ra Quan hệ thứ tự toàn phần < trên hai sự kiện x và y với nhãn thời gian (h,i) và (h,j) tương ứng, được định nghĩa như sau:
x ≺y (⇔ h<k or ( h=k and i < j))
Bởi vì các sự kiện xảy ra ở cùng một thời gian vô hướng logic là độc lập (nghĩa là chúng không có quan hệ nhân quả) chúng có thể được sắp xếp sử dụng bất cứ tiêu chuẩn tùy ý nào mà không vi phạm quan hệ nhân quả → Do vậy, một thứ tự toàn phần là nhất
quán với quan hệ nhân quả “→” Chú ý rằng x≺y⇒x→y∨x || y.Một thứ tự toàn phần nói
chung thường được đảm bảo tính chất tồn tại trong các thuật toán phân tán Các yêu cầu được gán nhãn thời gian và được phục vụ theo thứ tự toàn phần dựa trên những nhãn thời gian này
Đếm sự kiện
Nếu giá trị tăng d luôn luôn bằng 1, thời gian vô hướng có tính chất thú vị sau đây: nếu sự kiện e có một nhãn thời gian h thì h-1 biểu diễn thời gian logic tối thiểu, được tính toán bằng số đơn vị sự kiện, được yêu cầu trước khi sản sinh sự kiện e Nói cách khác, h-
1 sự kiện đã được sản xuất tuần tự trước sự kiện e không liên quan tới các tiến trình sản
xuất các sự kiện này Ví dụ, trong hình 3.1, 5 sự kiện trước b, là đường dẫn nhân quả dài nhất kết thúc tại b.
Không nhất quán mạnh
Hệ thống đồng hồ vô hướng là không đồng nhất mạnh, đó là
Trang 9với hai tiến trình ei và ej,C(ei)<C(ej) !⇒ei →ej
Ví dụ, trong hình 3.1, sự kiện thứ 3của tiến trình P1 có nhãn thời gian nhỏ hơn sự kiện thứ 3 của tiến trình P2.Tuy nhiên, sự kiện đầu đã không xảy ra trước sự kiện sau Lý
do mà các đồng hồ vô hướng là không nhất quán mạnh đó là đồng hồ logic địa phương và đồng hồ logic toàn cục của một tiến trình được ghép thành một, kết quả là thông tin quan
hệ nhân quả bị mất giữa các sự kiện của các tiến trình khác nhau Ví dụ: trong hình 3.1, khi tiến trình P2 nhận thông điệp đầu tiên từ tiến trình P1, nó cập nhật đồng hồ tới 3, quên mất rằng nhãn thời gian của sự kiện sớm nhất trong P1 mà nó phụ thuộc là 2
Trang 10Phần 4: VECTOR THỜI GIAN
4.1 Một số định nghĩa về vector thời gian
Hệ thống đồng hồ vector được Fidge, Mattern và Schmuck đề xuất
• Trong hệ thống đồng hồ vector, miền thời gian tượng trưng bởi 1 tập hợp các vector nguyên, không âm, n chiều
trình p j
triển tới x
sử dụng để đánh nhãn thời gian các sự kiện
• Nhãn thời gian của một sự kiện là giá trị của đồng hồ vector tiến trình của nó khi
sự kiện được thực thi
• R2: Mỗi thông điệp m mang theo đồng hồ vector vt của tiến trình gửi tại thời gian
– Cập nhật thời gian logic toàn cục của nó như sau:
– Thực thi R1
– Truyền thông điệp m.
4.2 Ví dụ về tiến độ của các đồng hồ vector
Quy tắc được áp dụng như sau:
1 Mọi vector khởi tạo có giá trị 0 tại mỗi tiến trình:
2 Những số gia tiến trình nguyên tố của các vector trong vector địa phương xảy ra trước khi sự kiện gán nhãn thời gian:
vti [i] = vt i [i] + 1
3 Thông điệp được gửi từ tiến trình pi gắn liền với vti tương ứng
Trang 114 Khi p j nhận được thông điệp, so sánh vector thành phần theo từng nguyên tố và thiết lập vector địa phương:
vtj [i] = max (vt i [i], vt j [i]) với i = 1, , n
Xét ví dụ về tiến độ của các đồng hồ vector với giá trị tăng lên d=1
Hình 2.1: Sự phát triển của vector thời gian
4.3 Quan hệ nhân quả giữa hai sự kiện
So sánh nhãn thời gian vector
Để so sánh 2 nhãn thời gian vector vh và vk ta có các mối quan hệ sau:
Trang 124.4 Các tính chất của vector thời gian
4.4.1 Tính đẳng cấu
Nếu các sự kiện trong một hệ thống phân tán được đánh nhãn thời gian sử dụng một
hệ thống đồng hồ vector, chúng ta có tính chất sau:
• Nếu 2 sự kiện x và y có nhãn thời gian vh và vk tương ứng, thì
Do đó, có một đẳng cấu giữa tập các sự kiện có thứ tự từng phần được tạo ra bởi một phép tính toán phân tán và nhãn thời gian vector của chúng
• Nếu tiến trình mà ở đó một sự kiện xảy ra, các thử nghiệm để so sánh hai nhãn thời gian có thể được đơn giản hóa như sau: nếu sự kiện x và y xảy ra tương ứng
4.4.2 Tính nhất quán mạnh
• Hệ thống các đồng hồ vector có tính nhất quán mạnh; do đó bằng cách kiểm tra nhãn thời gian vector của 2 sự kiện, ta có thể xác định các sự kiện có quan hệ nhân quả hay không
• Tuy nhiên, Charron-Bost đã chỉ ra rằng số chiều của đồng hồ vector không thể nhỏ
hơn n ( tổng số tiến trình trong tính toán phân tán)
4.4.3 Đếm sự kiện
Vì vậy, nếu một sự kiện e có nhãn thời gian vh, vh[j] biểu thị số sự kiện được thực thi
kiện có quan hệ nhận quả trước e trong tính toán phân tán.
Trang 13Phần 5: THỰC HIỆN HIỆU QUẢ CỦA ĐÔNG HỒ VECTOR
Nếu số lượng các tiến trình trong một tính toán phân tán là lớn, thì đồng hồ vector sẽ yêu cầu kèm thêm một lượng lớn thông tin trong các thông điệp nhằm phục vụ mục đích của quá trình khuyếch tán thời gian và cập nhật đồng hồ Chi phí thông điệp tăng tuyến tính với số lượng tiến trình trong hệ thống và khi có đến hàng nghìn tiến trình trong hệ thống, kích cỡ thông điệp trở lên rất lớn ngay cả khi chỉ có một vài sự kiện diễn ra trong vài tiến trình Phần này thảo luận đến các cách hiệu quả để duy trì đồng hồ vector, các phương pháp cơ bản tương tự có thể dùng để thực hiện hiêu quả đồng hồ ma trận
Charron-Bost đã chỉ ra [2] rằng nếu đồng hồ vector phải đáp ứng tính chất nhất quán mạnh, thì nhìn chung nhãn vector thời gian phải có cỡ ít nhất phải là n, tất cả các tiến trình Do vậy, nhìn chung kích thước của một nhãn vector thời gian là số lượng tiến trình liên quan trong tính toán phân tán; tuy nhiên, một vài sự tối ưu hóa có thể xảy ra và tiếp theo chúng tôi sẽ thảo luận về các kĩ thuật thực hiện đồng hồ vector một cách hiệu quả
5.1 Phương pháp vi phân của Singhal-Kshemkalyani
Phương pháp vi phân của Singhal-Kshemkalyani [25] dựa trên việc quan sát giữa thông điệp gửi thành công đến các tiến trình tương tự, chỉ một vài thành phần của đồng
hồ vector có thể bị thay đổi trong quá trình gửi thông điệp Điều này dễ xảy ra hớn khi số lượng tiến trình lớn do chỉ một vài tiến trình sẽ tương tác với thường xuyên bằng cách
{(i1,v1), (i2,v2),…(in1,vn1)}
đồng hồ vector của nó như sau:
vti[ik] = max(vti[ik],vk) với k=1,2,…n1.Như vậy, phương pháp này cắt giảm kích thước thông điệp, băng thông truyền và yêu câu vùng đệm (để lưu giữ thông điệp) Trong trường hợp xấu nhất, mọi thành phần của
Tuy nhiên, thường thì kích thước của nhãn thời gian trên một thông điệp sẽ ít hơn n Lưu
ý rằng kỹ thuật này yêu cầu mỗi tiến trình ghi nhớ nhãn vector thời gian trong thông điệp