Các ư u đ iểm của tài nguyên dùng chung trong hệ phân tánHệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp,nhưng chức năng cơ bản nhất là đảm bảo cung cấp cho người sử dụngk
Trang 1LỜI MỞ ĐẦU
Trong công nghệ thông, hệ tin học phân tán là lĩnh vực còn khá mới
mẽ, nhưng những ứng dụng của nó ngày càng rộng rãi, giải quyết hiệuquả nhiều bài toán mà hệ tin học tập trung không đáp ứng được hoặc chỉđáp ứng được một phần
Hiện tại, các nội dung mang tính lý thuyết nguyên lý của hệ tin họcphân tán còn nhiều vấn đề chưa được giải quyết triệt để và đang là mụctiêu khám phá của nhiều nhà nghiên cứu về công nghệ thông tin
Với mong muốn tìm hiểu nắm vững các nội dung nguyên lý của hệtin học phân tán để có thể triển khai được các ứng dụng phân tán trongthực tế, bài tiểu luận môn học "Hệ tin học phân tán" là cơ hội tốt để chochúng tôi tìm hiểu về lĩnh vực này
Với nội dung tìm hiểu của đề tài là "Trình bày thuật toán gắn bótrên cơ sở dấu", chúng tôi đã tập trung tìm hiểu vấn đề gắn bó thông tintrong hệ tin học phân tán Trên cơ sở đó chúng tôi đã nghiên cứu thuậttoán gắn bó trên cơ sở dấu Đó là nội dung cốt lõi của đề tài này
Phần bài tập của tiểu luận tập trung vào giải quyết vấn đề: duy trì sựgắn bó mạnh giữa các bản sao của một đối tượng được định vị trên cáctrạm khác nhau Qua đó củng cố hơn phần lý thuyết đã nghiên cứu ởtrên
Mặc dù rất cố gắng tìm hiểu và nghiên cứu, nhưng do thời gian vàkhả năng có hạn nên các nội dung trình bày trong bài tiểu luận chắc chắncòn rất nhiều hạn chế, rất mong nhận được những ý kiến đóng góp củaquý thầy và các bạn đồng nghiệp
Cuối cùng chúng tôi xin chân thành cảm ơn thầy PGS TS Lê VănSơn đã cung cấp những kiến thức quý báo và tài liệu để chúng tôi có thểhoàn thành tiểu luận này
Các tác giả
Thanh Cẩm – Thuý Phượng
Trang 2Chương 1 GIỚI THIỆU THUẬT TOÁN GẮN BÓ TRÊN CƠ SỞ
b Các thực thể trong hệ phân
Hệ phân tán gồm 4 thực thể :
Hình 1.1 Bốn thực thể của hệ tin học phân tán
c Đ ặc đ iểm của hệ phận tán
Đặc điểm cần nhấn mạnh của hệ là các hệ xử lý thông tin thành phần :
Không dùng chung hoặc chia sẻ bộ nhớ
Không sử dụng chung đồng hồ xung nhịp
Chúng liên lạc với nhau thông qua mạng truyền thông
Mỗi hệ xử lý có bộ xử lý, bộ nhớ và hệ điều hành riêng của nó
Các hệ thống phần mềm
Tập hợp phần cứng
Hệ thống truyền thông
Hệ thống
dữ liệu
Trang 3d Các ư u đ iểm của tài nguyên dùng chung trong hệ phân tán
Hệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp,nhưng chức năng cơ bản nhất là đảm bảo cung cấp cho người sử dụngkhả năng truy cập có kết quả đến các tài nguyên vốn có và rất đa dạngcủa hệ thống như tài nguyên dùng chung
Việc định nghĩa các tài nguyên của hệ như tài nguyên dùng chung
sẽ mang đến cho hệ những hiệu năng tốt trong khai thác ứng dụng
- Tăng tốc độ bình quân trong tính toán xử lý
- Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên
- Tăng độ an toàn cho dữ liệu
- Đa dạng hóa các loại hình dịch vụ tin học
- Bảo đảm tính toàn vẹn của thông tin
Tuy nhiên nó cũng dẫn đến hàng loạt các vấn đề khó khăn trongviệc thiết lập hệ, liên quan việc cấp phát tài nguyên dùng chung cho cáctiến trình
Điều quan trọng đặt ra, là làm thế nào để hệ luôn đảm bảo sự gắn bóthông tin, đặc biệt là thông tin dùng chung Hệ tin học phân tán cần phải
có các cơ chế kỹ thuật đủ mạnh nhằm duy trì sự gắn bó thông tin trongquá trình hoạt động của các tiến trình và sự trao đổi thông tin với nhausao cho hệ thống tránh được các trường hợp có thể dẫn đến hệ thốngkhông gắn bó
e Các thao tác chuẩn của hệ phân tán
- Tiếp nhận và ghi yêu cầu chỉ dẫn
- Dịch yêu cầu để có các thông tin cần thiết Thực hiện một sốcông việc của hệ thống cục bộ như kiểm tra quyền truy cập thông tin, lậphóa đơn dịch vụ
- Gửi kết quả cho hệ thống đã phát yêu cầu
Trang 41.1.2 Vấn đề truy cập và xử lý thông tin trong hệ tin học phân tán
Trong hệ tin học phân tán, vấn đề truy cập và xử lýthông tin trong hệ là một những vấn đề phức tạp Để đơn giản,chúng ta sẽ nghiên cứu một ví dụ cụ thể về việc quản lý các tài khoảncủa một ngân hàng Mỗi một người mở tài khoản tại ngân hàng sẽ đượclưu trữ trong một bản ghi của cơ sở dữ liệu (CSDL) Các trường của bảnghi này bao gồm họ và tên, địa chỉ, điện thoại và một khoá duy nhất (mãsố) cho người đó Mã số đóng vai trò con trỏ đến CSDL khác chứa cáclần thu tiền vào và rút tiền ra từ tài khoản Cuối cùng ta phải có CSDLchứa số dư Số dư là số tiền có trong tài khoản ở thời điểm xem xét củatừng người gửi tiền Trạng thái của số dư trong tài khoản được khốngchế ở mức xác định ví dụ như số dư không được <= N cho trước Điều
đó cũng đồng nghĩa với việc đảm bảo trong tài khoản của người sử dụngkhông bao giờ có giá trị bằng 0 hay giá trị âm
Do vậy, để nghiên cứu ta cần giả định một số quy tắc nhất định choviệc hoạt động của hệ Các quy tắc này thể hiện trong bảng sau đây:
1 Chỉ có một loại phép toán (hay giao dịch) duy nhất là chuyểnkhoản từ tài khoản này sang tài khoản khác
2 Hệ có số lượng tài khoản cố định
3 Không có trao đổi nào khác diễn ra ngoài ngân hàng
4 Ngân hàng không được phép tiết lộ bí mật về số dư của khách
Xét các quy tắc có tính chất điều kiện như trên, sau khi thực hiệnxong hoàn toàn một giao dịch nào đó, hệ quản lý giao dịch cần phải đảmbảo hai đặc tính sau đây:
STT Ký hiệu Đặc tính
1 P1 Tổng tất cả các số dư phải là một hằng số
2 P2 Số dư cho một tài khoản là đại lượng >= 0
Hai đặc tính này gọi là đặc tính trạng thái tổng quát của CSDL (hay
là các ràng buộc toàn vẹn của hệ) Ta nói rằng trạng thái hệ được gắn bó,nếu hệ mang hai đặc tính vừa nên trên
Trang 5Phép toán chuyển khoản thể hiện bằng cách trừ đi một giá trị P nào
đó ở một tài khoản và cộng chính giá trị đó vào tài khoản khác Nếu ta
ký hiệu A là số dư tài khoản bị trừ đi và B là số dư tài khoản được cộngvào, thì chương trình thể hiện giao dịch này có thể viết như sau:
2 Giả sử rằng bộ xử lý thực hiện giao dịch bị rơi vào trạng tháikhông làm việc được tại thời điểm giữa a và b Tài khoản A đã được trừtrong khi B còn chưa được cộng Nói cách khác đặc tính P1 không thểđảm bảo gì hơn nếu dừng lại ở đây Ta cần phải bổ sung thêm cho hệmột đặc tính nữa nhằm vào điều vừa nêu Đó là sau khi thực hiện mộtgiao dịch hoặc là tất cả các cập nhật đều được tiến hành hoặc là trạngthái các tài khoản không thay đổi
Như vậy, lưu ý thứ 2 cho phép ta đảm bảo được phép gắn bó dữ liệutrong điều kiện có sự cố Đó chính là đòi hỏi quan trọng đối với toàn hệtrong việc truy cập thông tin
Bây giờ, ta giới thiệu một loại giao dich mới Đó là giao dịch kèmtheo tỷ lệ lợi nhuận tiền gửi t có nghĩa là sau một khoảng thời gian nào
Trang 6đó số dư này được tính tăng lên bằng cách cộng số dư với lợi nhuận ngânhàng.
Ta ký hiệu U - giao dịch mới
T - các giao dịch chuyển khoản
và bây giờ các ràng buộc toàn vẹn của hệ là:
1 P’1 Thực hiện một lượng giao dịch T nào đó không làm thay
đổi tổng của các tài khoản
2 P’2 Trong một tài khoản, số dư bao giờ cũng >= 0
3 P’3 Thực hiện n giao dịch loại U nâng tổng của các tài khoản
bằng (1+t)n
Cần lưu ý rằng nếu ta cho phép các giao dịch loại U và T hoạt độngsong song thì có nguy cơ phá vở đặc tính P’ 3.
Ví dụ: Hãy xem xét một hệ bao gồm 2 tài khoản A và B, trong đó
có 2 giao dịch được thực hiện theo kiểu tương tranh nhau:
và giả sử rằng đầu tiên ta phải kiểm tra điều kiện A >= P
Nếu trình tự thực hiện của tác động sơ đẳng của 2 giao dịch như
Bây giờ, ta sẽ thực hiện bằng những giá trị số cụ thể Nếu trước khithực hiện 2 giao dịch A = 1000, B = 2000 và nếu t = 0.01 và P = 500 thì
Trang 7sau khi thực hiện ta có A + B = 3030, trong khi đó ta lại có A+ B = 3025.
Ta đã làm sai giá trị vốn cần có của chúng
Ví dụ trên cho ta thấy một điều quan trọng khi thực hiện nhiều giaodịch song song có thể dẫn hệ thống đến trạng thái không gắn bó Do vậy,cần phải có các giải pháp khắc phục tình hình đó, và đây chính là nộidung cốt lõi mà ta sẽ nghiên cứu
1.2 GIẢI QUYẾT VẤN ĐỀ
1.2.1 Sự gắn bó thông tin
Việc truy cập thông tin trong hệ tin học phân tán không thể tiếnhành theo một trình tự ngẫu nhiên được Nguyên do cơ bản của vấn đềtrên chính là vấn đề bế tắc và gắn bó dữ liệu
Hai hiện tượng trên có thể diễn ra bất cứ lúc nào và bất cứ ở đâutrong hệ và gây nên những hậu quả có tính chất kỹ thuật không thểlường trước được
Trạng thái của hệ thoã mãn một tập các ràng buộc toàn vẹn gọi làtrạng thái gắn bó
Xảy ra sự cố kỹ thuật bất kỳ lúc nào
Trang 8Tác động và giao dịch
Các đối tượng khác nhau của hệ quan hệ với nhau bởi tập hợp cácquan hệ gọi là các ràng buộc toàn vẹn Các ràng buộc này thể hiệnsâu sắc các đặc tính riêng biệt của hệ
Mong muốn thực hiện các tiến trình phải duy trì cho được hệ trongtrạng thái gắn bó Để chính xác hoá đặc tính này, cần phải lưu ý làtrạng thái của hệ chỉ được xác định ở mức quan sát cho trước
Trạng thái của hệ được xác định ở hai mức quan sát :
+ Người sử dụng: Tiến trình là thực hiện một dãy các giao dịch.
Giao dịch đó là chương trình duy nhất được thực hiện từ một trạngthái gắn bó dẫn hệ đến một trạng thái gắn bó khác
+ Hệ thống: Mỗi giao dịch được cấu tạo từ một dãy các tác động
được thể hiện như sau Nếu hai tác động A và B thuộc hai giao dịchkhác nhau được thực hiện bởi hai tiến trình thì hiệu ứng tổng quátcủa chúng sẽ là hoặc hiệu ứng của dãy (A;B) hoặc là (B;A)
- Ở mức hệ thống, ta có thể nói rằng các tác động là phần tử nhỏnhất không thể chia cắt được nữa Trong quá trình thực hiện hệphải đảm bảo cho các tác động không bị ngắt quãng
- Cho một tập hợp giao dịch M = {T1, T2…, Tn} lần lượt đượcthực hiện bởi các tiến trình độc lập p1, p2, …, pn việc thực hiệntuần tự có nghĩa là thực hiện tất cả các giao dịch của M theo kiểunối đuôi nhau và tuân thủ một trật tự nào đó Sự gắn bó của hệđược bảo toàn
- Nếu vì lý do hiệu quả, nhiều giao dịch được thực hiện songsong thì sự gắn bó không còn đảm bảo được nữa
Trật tự hoá các tác động
Cho một tập hợp giao dịch M = {T1, T2…, Tn}
Toàn bộ việc thực hiện các giao dịch M bởi một tập hợp các tiến trình tương tranh là tương đương với việc thực hiện một dãy S
các tác động thuộc các giao dịch này
Chẳng hạn: S = (a1, a2 , an)
Trang 9 Tuân thủ trật tự nội tại từng giao dịch.
Gồm tất cả các tác động tạo nên các giao dịch M
Mỗi tác động chỉ xuất hiện một và chỉ một lần
Nguyên lý của phương pháp là ở chỗ làm chậm một tác động nào
đó cho đến thời điểm mà sự thực hiện của nó không còn có nguy cơ pháhủy sự gắn bó của trật tự hóa
Để đảm bảo các giao dịch trên tôn trọng sự gắn bó thông tin thìngười ta đưa ra các phương pháp trên cơ sở dữ liệu phân tán:
Cơ chế then cài
Then cài loại trừ tương hỗ
Toàn bộ giao dịch được đạt trong cặp hàm nguyên thuỷ:mo_giaodich và dong_giaodich
Then cài lựa chọn đối tượng
Một giao dịch thay đổi các giá trị của đối tượng phải loại trừtất cả các đối tượng khác muốn truy cập, ngược lại thì việc truycập được tiến hành theo kiểu tương tranh
Giao dịch hai pha: kiểm tra giao dịch theo 2 điều kiện
Toàn bộ đối tượng bị cài then cho đến cuối giao dịch
Không có một then cài nào có thể diễn ra tiếp theo một thencài khác trong cùng một giao dịch
Xử lý các sự cố:
Từ việc xác định các đối tượng dữ liệu phân bổ trên nhiều trạm khácnhau ở trên, để duy trì sự gắn bó trong môi trường phân tán phải thựchiện:
Trang 10 Giao dịch T bắt buộc phải thực hiện một cách trọn vẹn
Nếu có sự cố xảy ra thì phải quay lại điểm xuất phát
Và đòi hỏi giao dịch phải có các đặc tính toàn vẹn:
Nếu một tiến trình bị sự cố trước khi kết thúc T nhưnglại sau các thao tác thay đổi cần thiết của T, trạng thái của hệ làgắn bó
Nếu một tiến trình bị sự cố trước khi diễn ra các thayđổi của T, trạng thái của hệ là gắn bó
Nếu một tiến trình bị sự cố giữa các thay đỏi của T,trạng thái của hệ là không gắn bó
Þ Đưa ra các phương pháp để quản lý gắn bó các giao dịch:
Phương pháp dự phòng (đòi hỏi phải có kiến thức cần thiết vềcác đối tượng xử lý)
Phương pháp phát hiện động (hoàn hảo nếu khả năng xung độtthấp)
Có nhiều thuật toán duy trì sự gắn bó thông tin trong hệ tin phântán Sau đây ta sẽ nghiên cứu một thuật toán để giải quyết vấn đề trên đó
là thuật toán gắn bó trên cơ sở dấu
1.2.2 Thuật toán gắn bó trên cơ sở dấu
a Nội dung kỹ thuật đóng dấu
Kỹ thuật đóng dấu thời gian (timestamp – mà sau đâychúng ta gọi tắt là đóng dấu) được sử dụng để sắp xếpthứ tự các tác động nhằm mục đích điều khiển sự thực
Trang 11hiện đồng thời của các giao dịch Các nội dung chính của
kỹ thuật dấu thời gian là:
Mỗi giao dịch được gán một số id duy nhất dựatrên thời gian mà giao dịch được đưa vào hệ thống
Nếu pi[e] và qj[e] là hai tác động phụ thuộc thì pi[e]
được thực hiện trước qj[e] ký hiệu là pi[e] < qj[e]) nếu
ts(Ti) < ts(Tj)
b Giải thuật tứ tự dấu
Mỗi một đối tượng được gán hai loại dấu : dấu thời
gian đọc và dấu thời gian ghi :
Thời gian đọc của đối tượng e, ký hiệu là tg_doc(e),
là số dấu lớn nhất của giao dịch đã thực hiện tácđộng đọc đối tượng
Thời gian ghi của đối tượng e, ký hiệu là tg_viet(e),
là số dấu lớn nhất của giao dịch đã thực hiện tácđộng ghi đối tượng
Trang 12Khi giao dịch T đọc đối tượng e :
Nếu tg(T) >= tg_doc(e) thì (1) thực hiện tác động đọc (2) tg(T) = max
{tg_doc(e),tg(T)}
Ngược lại, huỷ
Khi giao dịch T ghi đối tượng e:
Nếu tg(T) >= tg_viet(e)
thì (1) thực hiện tác động ghi (2) tg(T) = max
Điều này mâu thuẩn
3 Vậy P(S) là đồ thị phụ thuộc không lặp, do đó ta có S là
trật tự hoá gắn bó
(Điều phải chứng minh)
Trang 131.3 KẾT LUẬN
Trên đây chúng ta đã tìm hiểu kỹ thuật được sử dụng rộng rãi nhất nhằm đảm bảo đặc tính gắn bó dữ liệu trong
hệ tin học phân tán là kỹ thuật gắn bó trên cơ sở dấu
Kỹ thuật gắn bó trên cơ sở dấu nhằm đảm bảo tínhgắn bó dữ liệu của một trật tự hoá hợp thức các giao dịchtrên các trạm xa nhau trong hệ tin học phân tán Tuynhiên, phạm vi mà chúng ta nghiên cứu là trật tự hoá cáctác động trên cơ sở dấu của hệ thống tin học phân tán, ở
đó các giao dịch được thực hiện trên các trạm khác nhau
và ở xa nhau, do vậy cần phải có một trật tự thực hiệncác tác động trên các trạm Song, kỹ thuật trên vẫn tồntại nhược điểm nhất định đó là khả năng huỷ bỏ thực hiệngiao dịch
Trang 14Chương 2 DUY TRÌ SỰ GẮN BÓ MẠNH GIỮA CÁC BẢN SAO
CỦA MỘT ĐỐI TƯỢNG
2.1 ĐẶT VẤN ĐỀ
2.1.1 Giới thiệu bài toán
Trong một hệ thống phân tán giả định có độ ổn địnhtuyệt vời, ta muốn duy trì một sự gắn bó mạnh giữa cácbản sao của một đối tượng được định vị trên các trạmkhác nhau
Thuật toán dựa trên các nguyên lý sau đây:
Trước khi thực hiện cập nhật, một trạm nào đó cầnphải yêu cầu và thống nhất với các trạm khác
Khi đã có được sự thống nhất, thì trạm này tiến hànhcông việc cập nhật; điều này phải tiến hành trên tất
cả các bản sao; đối tượng không thể truy cập chừngnào các bản sao còn chưa cập nhật hết
Các xung đột giữa các trạm được giải quyết bằngmột trật tự có hệ số ưu tiên giữa các trạm, được cốđịnh một lần lúc khởi sự cho toàn bộ
1 Hỏi có bao nhiêu trạng thái khác nhau cần xem xétcho mỗi bản sao
2 Hãy trình bày sơ đồ hoạt động của thuật toán (đồ thịphát triển)
3 Hãy đánh giá bằng hàm của số lượng bản sao,sốlượng các thông điệp cần thiết để thực hiện một thôngđiệp
4 Ta phải sửa đổi thuật toán như thế nào để chịu đựngđược sự cố trên một trạm (giả sử hệ viễn thông hoạtđộng tốt)