1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER

28 373 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 0,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER (có kèm theo code) Lời mở đầu Như chúng ta đã biết, đối với các hệ thống thông tin lớn, cơ sở dữ liệu không chỉ được lưu trữ và quản lý bởi các Server độc lập mà thường được phân tán trên nhiều Server và phân bố ở các vị trí địa lý khác nhau. Hệ thống cho phép xử lý đa truy cập đồng thời và cho phép đăng ký từ xa. Một trong những lợi ích của Việc phân tán dữ liệu như vậy là nhằm phân chia yêu cầu xử lý dữ liệu cho nhiều máy nhằm làm tăng năng lực xử lý thông tin của hệ thống và đặc biệt, nó đảm bảo yêu cầu toàn dữ liệu vì dữ liệu được lưu trữ dự phòng ở nhiều nơi khác nhau. Hệ thống trình bày như trên là hệ thống đa server và phức tạp. Một trong các yêu cầu đặt ra cho hệ thống là phải đảm bảo gắn bó dữ liệu giữa các server đồng thời không làm ảnh hưởng đến năng lực xử lý của hệ thống. Nội dung chủ yêu trình bày trong báo cáo này tập trung vào xây dựng chương trình đảm bảo gắn dữ liệu cho hệ thống đa server. Chương trình này được thiết kế và xây dựng dựa trên các điều kiện sau: Về mặt công cụ: Sử dụng ngôn ngữ lập trình mạng JAVA của Sun Micro System là JDK 1.6, đồng thời khai thác bộ thư Iện hỗ trợ lập trình phân tán được xây dựng sẳn trong bộ ngôn ngữ này là RMI. Về mặt thuật toán: Thuật toán sử dụng trong chương trình này là “THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER”. Nội dung chủ yếu của thuật toán chủ được tham khảo từ báo cáo khoa học của Phạm Đình Hân và Lê Văn Sơn đăng trên Tạp chí Khoa học Công nghệ, số 4647(2004) và giáo trình Hệ Tin học Phân tán của PGS TS Lê Văn Sơn. Thuật toán này được cài đặt lại bằng ngôn ngữ JAVA RMI chạy trên nhiều server. Trong phạm I của tiểu luận này, chương trình được cài đặt demo trên 3 server, tuy nhiên chúng ta có thể cài đặt trên hệ thống gồm nhiều server. Chương trình cũng bao gồm một công cụ gọi là module monitor nhằm giám sát Việc cập nhật dữ liệu giữa các server, nhằm đánh giá tính gắn bó dữ liệu giữ liệu giữa các server với nhau. Cuối cùng, tôi mong muốn nhận được các ý kiến đóng góp, bổ sung của quý thầy và các bạn. Xin chân thành cảm ơn Phần I: Lý thuyết I.1 Đặt vấn đề: Bây giờ, ta hãy nghiên cứu một ví dụ cụ thể về Việc quản lý các tài khoản củ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ẽ được lưu trữ trong 1 bản ghi của CSDL. Các trường của bản ghi 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ác lầ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ó CSDL chứa số dư. Số dư là số tiền có trong tài khoản ở thời điểm xem xét của từng người gửi tiền. Trạng thái của số dư trong tài khoản được khống chế ở 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 NSD khô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 cho Việc hoạt động của hệ. Các quy tắc này thể hiện trong bảng sau đây : STT Quy tắc 1 Chỉ có một loại phép toán (hay giao dịch) duy nhất là chuyển khoả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ện xong hoàn toàn một giao dịch nào đó, hệ quản lý giao dịch cần phải đảm bả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 của hệ được gắn bó, nếu hệ mang hai đặc tính vừa nêu. Phé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ộng vào, thì chương trình thể hiện giao dịch này có thể Iết như sau : Nếu A >= P thì A := A P (a) B := B + P (b) nếu không {Không cập nhật các tài khoản} Kết thúc nếu

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER

GVHD: PGS.TS LÊ VĂN SƠN

SVTH : ĐOÀN CƯỜNG

VÕ LÊ ĐỨC HUY LỚP : KHOA HỌC MÁY TÍNH

Đà Nẵng tháng 03- 2010

Lời mở đầu

Trang 2

Như chúng ta đã biết, đối với các hệ thống thông tin lớn, cơ sở dữ liệu không chỉ được lưu trữ và quản lý bởi các Server độc lập mà thường được phân tán trên nhiều Server và phân bố ở các vị trí địa lý khác nhau Hệ thống cho phép xử lý

đa truy cập đồng thời và cho phép đăng ký từ xa Một trong những lợi ích của Việc phân tán dữ liệu như vậy là nhằm phân chia yêu cầu xử lý dữ liệu cho nhiều máy nhằm làm tăng năng lực xử lý thông tin của hệ thống và đặc biệt, nó đảm bảo yêu cầu toàn dữ liệu vì dữ liệu được lưu trữ dự phòng ở nhiều nơi khác nhau.

Hệ thống trình bày như trên là hệ thống đa server và phức tạp Một trong các yêu cầu đặt ra cho hệ thống là phải đảm bảo gắn bó dữ liệu giữa các server đồng thời không làm ảnh hưởng đến năng lực xử lý của hệ thống.

Nội dung chủ yêu trình bày trong báo cáo này tập trung vào xây dựng chương trình đảm bảo gắn dữ liệu cho hệ thống đa server Chương trình này được thiết

kế và xây dựng dựa trên các điều kiện sau:

Về mặt công cụ: Sử dụng ngôn ngữ lập trình mạng JAVA của Sun Micro System

là JDK 1.6, đồng thời khai thác bộ thư Iện hỗ trợ lập trình phân tán được xây dựng sẳn trong bộ ngôn ngữ này là RMI.

Về mặt thuật toán: Thuật toán sử dụng trong chương trình này là “THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER” Nội dung chủ yếu của thuật toán chủ

được tham khảo từ báo cáo khoa học của Phạm Đình Hân và Lê Văn Sơn đăng trên Tạp chí Khoa học Công nghệ, số 46-47(2004) và giáo trình Hệ Tin học Phân tán của PGS TS Lê Văn Sơn Thuật toán này được cài đặt lại bằng ngôn ngữ JAVA RMI chạy trên nhiều server.

Trong phạm I của tiểu luận này, chương trình được cài đặt demo trên 3 server, tuy nhiên chúng ta có thể cài đặt trên hệ thống gồm nhiều server Chương trình cũng bao gồm một công cụ gọi là module monitor nhằm giám sát Việc cập nhật

dữ liệu giữa các server, nhằm đánh giá tính gắn bó dữ liệu giữ liệu giữa các server với nhau.

Cuối cùng, tôi mong muốn nhận được các ý kiến đóng góp, bổ sung của quý thầy

và các bạn.

Xin chân thành cảm ơn!

Trang 3

Phần I: Lý thuyết

I.1 Đặt vấn đề:

Bây giờ, ta hãy nghiên cứu một ví dụ cụ thể về Việc quản lý các tài khoản của mộtngân hàng Mỗi một người mở tài khoản tại ngân hàng sẽ được lưu trữ trong 1 bản ghicủa CSDL Các trường của bản ghi này bao gồm họ và tên, địa chỉ, điện thoại và mộtkhoá duy nhất (mã số) cho người đó Mã số đóng vai trò con trỏ đến CSDL khác chứacác lầ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ó CSDL chứa số dư

Số dư là số tiền có trong tài khoản ở thời điểm xem xét của từng người gửi tiền Trạngthái của số dư trong tài khoản được khống chế ở 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ủaNSD khô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 cho Việc hoạt độngcủ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ển khoả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

bị trừ đi và B là số dư tài khoản được cộng vào, thì chương trình thể hiện giao dịch này

có thể Iết như sau :

Trang 4

Nếu A >= P thì

A := A - P (a)

B := B + P (b)

nếu không

<Xử lý theo kiểu séc không có tiền bảo chứng>

{Không cập nhật các tài khoản}

Kết thúc nếu

Theo thuật toán thể hiện bằng đoạn chương trình trên, ta cần lưu ý hai điểm sauđây :

1 Giả sử rằng ta thực hiện đồng thời hai séc trích từ A hay rót vào B Việc cập nhật

thông tin trên mỗi tài khoản không thể tiến hành theo kiểu tùy ý mà phải đảm bảo loạitrừ tương hổ ở mức tài khoản Việc loại trừ đó có thể thực hiện theo các kiểu khácnhau, một trong các kiểu đơn giản nhất là loại trừ ở mức toàn CSDL và hệ quả là loại

bỏ các phép song song Có thể áp dụng loại trừ ở mức từng tài khoản riêng biệt

2 Giả sử rằng bộ xử lý thực hiện giao dịch bị rơi vào trạng thái khô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 được 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ột giao dịch hoặc là tất cả các cập nhật đều được tiến hành hoặc là trạng thá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 tính gắn bó dữ liệu trong điềukiệ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ôngtin

Bây giờ, ta giới thiệu một loại giao dịch mới Đó là giao dịch kèm theo tỷ lệ lợi

nhuận tiền gửi t có nghĩa là sau một khoản thời gian nào đó 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ân hà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à :

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 động song 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 hai tài khoản A và B, trong đó có hai giao dịch được

thực hiện theo kiểu tương tranh nhau :

Trang 5

Giao dịch T Giao dịch U

A := A - P

B := B + P A := (1 + t) x A B := (1 + t) x B

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 hai giao dịch như sau :

A := A – P

A := (1 + t) x A

B := (1 + t) x B

B := B + P thì điều kiện P'3 không được tôn trọng.

Bây giờ, ta sẽ thực hiện bằng những giá trị số cụ thể Nếu trước khi thực hiệnhai giao dịch A = 1 000, B = 2 000 và nếu

t = 0.01 và P = 500, thì sau khi thực hiện chúng ta có A + B = 3300, trong khi đó ta lại

có A + B = 3250 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 giao dịch songsong 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ảipháp khắc phục tình hình đó và đây cũng chính là nội dung cốt lõi mà ta sẽ nghiên cứuliền sau đây

I.2 Sự gắn bó thông tin

I.2.1 Các điều kiện giả định và thực tế

Ta có một tập hợp thông tin nào đó có thể được truy cập bởi một tập hợp cáctiến trình Số lượng các đối tượng thông tin có thể truy cập được và số lượng các tiếntrình có nhu cầu thông tin là con số cố định Hệ này phát triển rời rạc theo thời gian;giữa các điểm quan sát (hay còn gọi là điểm xác định), ta có thể nhận biết được trạngthái thực của chúng, có nghĩa là các giá trị của các đối tượng và ngữ cảnh thực hiện củacác tiến trình Hệ kiểu như vậy hoạt động với độ ổn định tuyệt vời

Các điều kiện giả định này so với hệ thực tế có những điểm khác nhau căn bảnsau đây :

1 Các đối tượng và các tiến trình có thể được tạolập và huỷ bỏ có tính chất động trong suốt quá

trình tồn tại của hệ

2

Các đối tượng và các tiến trình có thể được phân

tán trên các trạm khác nhau liên hệ với nhau qua

hệ thống Iễn thông Do vậy, ta không thể xác định

trạng thái thời điểm của hệ vì lý do độ trễ đường

truyền giữa các trạm và tính không tương thích

giữa các điểm quan sát trong các trạm đó Để hiểu

Trang 6

chi tiết vấn đề này, ta hãy tham khảo tài liệu về

mạng máy tính và các hệ thông mở

3 Hệ thống Iễn thông và các tiến trình là các đối

tượng có thể xảy ra sự cố kỹ thuật

Ta sẽ trình bày các thuật ngữ, các khái niệm và diễn giải có liên quan mật thiết đến cácđặc điểm vừa nêu

I.2.2 Tác động và giao dịch

Các đối tượng khác nhau của hệ không phải là các đối tượng độc lập nhau,chúng liên hệ với nhau bởi tập hợp các quan hệ gọi là các ràng buộc toàn vẹn Các ràngbuộc này thể hiện sâu sắc các đặc tính riêng biệt của hệ

Trạng thái của hệ thỏa 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ó.

Các nhà thiết kế và vận hành hệ mong muốn rằng Việc thực hiện các tiến trìnhphải duy trì cho được hệ trong trạng thái gắn bó Để chính xác hóa đặc tính này, cầnphải lưu ý là trạng thái của hệ chỉ được xác định ở mức quan sát cho trước

Ta quan tâm đến hai mức quan sát :

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

2 tác động A và B thuộc 2 giao dịch khác

nhau được thực hiện bởi 2 tiến trình, thìhiệu ứng tổng quát củ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ể chiacắt được nữa

Trang 7

hệ được bảo toàn, theo định nghĩa, bằng Việc thực hiện riêng biệt từng giao dịch Do

vậy, nó cũng được bảo toàn trong chế độ thực hiện tuần tự của M.

Nếu, vì lý do hiệu quả, nhiều giao dịch được thực hiện song song, thì sự gắn bókhông còn bảo đảm được nữa; ta cũng đã gặp trong ví dụ I.1

Một yêu cầu khác rất quan trọng là trong quá trình thực hiện hệ phải đảm bảocho các tác động không bị ngắt quảng

Trong các phần tiếp theo sau đây, ta sẽ nghiên cứu các điều kiện thực hiện cácgiao dịch song song mà vẫn tôn trọng các yêu cầu của ràng buộc toàn vẹn

I.2.3 Trật tự hóa các tác động

Trở lại với tập hợp giao dịch M = {T1, T2, , Tn} đã được xác định trong I.2.2.

Mỗi một giao dịch được cấu tạo từ một dãy các tác động Bằng các tác động không

chia xẻ được này, toàn bộ Việc thực hiện của tập hợp 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, như S = (a1, a2, , an) chẳng hạn Trong trật tự tuân thủ trật tự

nội tại của từng giao dịch, dãy này bao gồm tất cả các tác động cấu tạo nên các giao

dịch M; mỗi một tác động chỉ xuất hiện một và chỉ một lần Một dãy như vậy gọi là trật tự hóa của tập hợp các giao dịch M.

Ví dụ :

Cho T1 = (a11, a12, a13 , a 14) và T1 = (a21, a22, a23) Một trật tự hóa (T1, T2) được thể

hiện ở ví dụ sau đây :

S = a 21, a11, a12, a22, a13, a23, a14

Trong số các trật tự hóa của một tập hợp các giao dịch, điều rất quan trọng là phảitách ra cho được những cái phục vụ trạng thái gắn bó dữ liệu và chúng được gọi là trật

tự hóa gắn bó

Đến đây, tuy ta chưa có dịp làm quen với các đặc tính tổng quát của trật tự hóa,

nhưng đã nắm được một đặc tính quan trọng là các trật tự hóa tương ứng với Việc thực hiện tuần tự của tập hợp các giao dịch hay còn gọi ngắn gọn là trật tự hóa tuần tự.

Nếu ta nắm được các đặc trưng của các trật tự hóa tương đương với một trật tự hóa

tuần tự có nghĩa là cùng có tác dụng như trật tự hóa tuần tự, thì ta đã có được điều kiện

đủ của sự gắn bó.

Đó chính là tiêu chuẩn tương đương mà ngay bây giờ ta sẽ phải thành lập

Ví dụ 1 :

Trở lại với ví dụ trong phần I.1 và xem xét 3 trật tự hóa có thể là S1, S2 và S3.

Trật tự hoá S1 thể hiện bằng hình vẽ I-1 sau đây :

A:=A-P A:=(1+t) x A B:=(1+t) x B B:=B+P Giao dÞch lo¹i T

H×nh VI-1 TrËt tù ho¸ S1 Giao dÞch lo¹i U

Hình vẽ I-2 thể hiện trật tự hoá S2 :

Trang 8

A:=A-P A:=(1+t) x A

B:=(1+t) x B B:=B+P Giao dÞch lo¹i T

H×nh VI-2 TrËt tù ho¸ S2 Giao dÞch lo¹i U

và S3 thể hiện một trật tự hoá như sau :

A:=A-P

A:=(1+t) x A B:=(1+t) x B

B:=B+P Giao dÞch lo¹i T

H×nh VI-3 TrËt tù ho¸ S3 Giao dÞch lo¹i U

Ta nhận thấy dễ dàng là S2 có cùng hiệu ứng với trật tự hóa tuần tự S3, trong khi

đó S1 lại khác Trong S2 và S3 các cập nhật lần lượt của A và B đều được thực hiện theo cùng một trật tự, còn trong S1 trật tự cập nhật B bị đảo ngược.

Ví dụ này cho ta thấy sự quan trọng của Việc đảm bảo trật tự khi cập nhật thông tin.

Sự bảo toàn trật tự cập nhật (ví dụ 1) và sự bảo toàn tập hợp các truy vấn trước

khi cập nhật (ví dụ 2) thể hiện điều kiện tương đương giữa các trật tự hóa.

Cho Stt là một trật tự hóa tuần tự của tập hợp các giao dịch M và S là một trật tự hóa bất kỳ của M Hiệu ứng của S giống với hiệu ứng của Stt, nếu hai điều kiện sau đây

được triển khai :

Điều kiện 1 :

Để cho mỗi đối tượng e, các cập nhật biểu hiện trong cùng một trật tự trong S và Stt.

Điều kiện 2 :

Trang 9

Hãy xem xét hai cập nhật kế tiếp nhau của một đối tượng e trong số các trật tự hóa,

và các cập nhật tương ứng của e trong trật tự hóa khác Giữa hai cập nhật này, ta tham

khảo cùng các đối tượng trong hai trật tự hóa này trong cùng trật tự hay không

Cả hai điều kiện vừa nêu là rất mạnh trong Việc nghiên cứu tiếp tục sau này

Để cho trật tự hóa S, ta định nghĩa một quan hệ phụ thuộc giữa các giao dịch Cho T1 và T2 là hai giao dịch của M, e là đối tượng của hệ Ta nói rằng T2 phụ thuộc T1 qua trung gian của e, ký hiệu bằng (T1 , e, T 2), với các điều kiện sau đây được

kiểm tra :

1 Một tác động của T1 tham chiếu e và một tác động sau T2 thay đổi e.

2 Một tác động của T1 thay đổi e và một tác động sau T2 tham chiếu e (hệ quả của

điều kiện 2)

3 Một tác động của T1 thay đổi e và một tác động sau T2 thay đổi e (hệ quả của điều kiện 1) mà e không được thay đổi bởi một giao dịch khác giữa hai tác động T1 và T2 Thuật ngữ "trước" được hiểu theo nghĩa "cái tiếp theo nó trong trật tự hóa S".

Quan hệ này được biểu hiện bằng một đồ thị phụ thuộc mà các nút của nó đượcgán nhãn bởi tên của giao dịch và các cung là tên các đối tượng Để cho một trật tự hóa

tuần tự, đồ thị này không có vòng lặp (thực tế, nếu (T1 , e, T 2), thì T1 trước T 2 trong trật

tự tuần tự)

Để cho hai trật tự hóa có cùng một hiệu ứng, thì điều kiện đủ là chúng phải có cùng quan hệ phụ thuộc.

Do vậy, điều kiện đủ cho sự gắn bó của một trật tự hóa có thể phát biểu như sau

Một trật tự hóa là gắn bó, nếu nó có cùng quan hệ phụ thuộc với một trật tự tuần tự.

Chú ý :

Điều kiện cần này cũng có thể trở thành đủ trong một trường hợp đặc biệt mà trongthực tế ta thường hay gặp Đó chính là trường hợp mà toàn bộ đối tượng được cập nhậtbằng cách tham chiếu trước thời điểm đó bởi cùng một giao dịch

(S 2)AB

UT

(S 3)AB

UT

Hình I-5 Đồ thị ứng với

các trật tự hoá S1, S2 và S3.

Các đồ thị tương ứng với các giao dịch S'1 và S'2 của ví dụ 2 là :

(S' 1)C

T 2

T 1

(S' 2)C

T 2

T 1

Trang 10

Hình I-6 Đồ thị ứng với hai giao dịch S'1 và S'2.

Bây giờ, ta hãy kiểm tra các phương tiện đảm bảo một tập hợp các giao dịchthực hiện theo một trật tự hóa gắn bó

I.3 Triển khai giao dịch tôn trọng sự gắn bó

Cho một tập hợp các giao dịch M = {T1, T2, , Tn} Một trật tự hóa của tập hợp

các tác động thành phần sẽ tương ứng với Việc thực hiện hoàn toàn các giao dịch Việcthu được một trật tự hóa gắn bó chỉ có thể thành công khi áp dụng các ràng buộc trêntrật tự thực hiện các tác động 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á huỷ

sự gắn bó của trật tự hóa (bằng cách chặn tiến trình hiện hành)

Hiệu ứng của bộ làm chậm này (cơ chế then cài) đã được trình bày trong cácphần trước của tài liệu này và sẽ được trình bày tiếp trong phần kề liền sau đây

I.3.1 Cơ chế then cài

Một giao dịch nào đó đang thực hiện phép then cài trên một đối tượng muốngiành quyền sử dụng đối tượng này theo một vài kiểu truy cập nhất định Cơ chế thencài gán hay không gán quyền truy cập này căn cứ vào quy tắc tiền định như loại trừtương hổ, luật đọc - hiệu chỉnh thông tin,

Nếu quyền được thừa nhận, thì đối tượng bị cài then bởi giao dịch Nếu không,tiến trình thực hiện giao dịch bị khóa và đối tượng không bị cài then

Cơ chế then cài cho phép một giao dịch có thể giải phóng đối tượng mà nó đãcài then

Ta sẽ mô tả Việc sử dụng các then cài để đạt được sự gắn bó của giao dịch.Then cài có thể là nguyên nhân của bế tắc và thiếu thốn vô hạn tài nguyên như đã thấytrong chương IV và ta cũng sẽ giải quyết vấn đề này trong chương này

I.3.1.1 Loại trừ tương hổ

Một trong những giải pháp giản đơn để đạt được trật tự hóa gắn bó thể hiện ởchổ bắt buộc phải sử dụng trật tự hóa tuần tự Để làm Việc đó, toàn bộ giao dịch được

đặt trong cặp hàm nguyên thuỷ mo_giaodich và dong_giaodich Đây là sự đảm bảo cho

Việc loại trừ tương hổ giữa các giao dịch Các hàm này có thể được triển khai dựa trêncác phương pháp đã nghiên cứu trong các chương trước

Nếu ta biết trước các đối tượng được xử lý bởi một giao dịch nào đó, thì ta cóthể cài then công Việc truy cập đến các đối tượng Điều đó chỉ cho phép thực hiện songsong đối với các giao dịch truy cập vào các đối tượng rời rạc

Nếu ta muốn nâng cao hơn nữa khả năng sử dụng song song, thì cần phải thựchiện cài then ở mức độ thấp hơn mức giao dịch Đó chính là điểm quan trọng mà ta cầnquan tâm

I.3.1.2 Then cài chọn lựa các đối tượng

Trang 11

Các quy tắc truy cập đối tượng được chú ý Đó là tính hợp thức của Việc truycập Nội dung của quy tắc này như sau :

Một giao dịch thay đổi giá trị của 1 đố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 truy cập được tiến hành theo kiểu tương tranh.

Để đảm bảo điều đó luôn luôn được thực hiện, người ta cho phép tiến hành càithen một đối tượng trước khi Việc sử dụng nó có hiệu lực

Một giao dịch có thể thực hiện 3 hàm nguyên thuỷ trên đối tượng e :

1 v_doc(e) Sử dụng khi muốn có được quyền đọc e

theo kiểu chia xẻ

2 v_viet(e) Sử dụng khi muốn có được quyền đọc và

viết vào e theo kiểu loại trừ.

3 giai_phong(e

) Giải phóng đối tượng e Giả sử trước đóđã được cài then bởi cùng giao dịch này

Hai hàm nguyên thuỷ sau đã được trình bày trong các chương trước

Nói một cách chính xác hơn, một giao dịch gọi là phát triển, nếu :

1 Một phép toán chỉ được thực hiện trên một đối tượng sau khi đối tượng đó đãđược cài then bởi giao dịch theo kiểu tương thích với phép toán đó

2 Không có giao dịch nào cài then được trên đối tượng mà trước đó đã bị càithen cũng bởi chính giao dịch đó, ngoại trừ theo kiểu loại trừ trong trường hợp trước đó

đã sử dụng kiểu chia xẽ

3 Sau khi chấm dứt một giao dịch, không có đối tượng nào bị cài then

Các then cài được sử dụng để hạn chế một lớp các trật tự hóa có khả năng đượcthực hiện

Một trật tự hóa được gọi là hợp thức nếu :

1 Đối tượng được một giao dịch cài then theo kiểu chia xẻ không bị bất cứ thencài nào theo kiểu loại trừ của các giao dịch khác

2 Một đối tượng bị cài then theo kiểu loại trừ, thì không bị bất kỳ then cài mớinào nữa

Do vậy, mọi cố gắng cài then không phù hợp với các điều kiện tương hổ nêutrên đều phải chờ (bị làm chậm lại) cho đến khi mở then

Chú ý :

Một giao dịch là tốt, nếu nó sử dụng các then cài phù hợp với đặc điểm của chúng.Một trật tự hóa gọi là hợp thức, nếu các then cài hoạt động phù hợp với các đặc điểmnày

Trong phần tiếp theo, ta chỉ xem xét các trật tự hóa hợp thức của các giao dịch đượchình thành hoàn toàn hợp thức Ta sẽ xem xét các điều kiện của một trật tự hóa gắn bó

I.3.1.3 Giao dịch hai pha

Bây giờ, ta hãy xem xét một giao dịch hình thành hợp thức bằng cách kiểm trahai điều kiện :

1 Toàn bộ đối tượng bị cài then vẫn ở trong tình trạng cài then cho đến cuối giao dịch.

Trang 12

Ta có thể chứng minh trong bài tập 1 của chương này rằng toàn bộ trật tự hóahợp thức của các giao dịch như vậy là gắn bó Nói một cách tổng quát, giả sử rằng toàn

bộ giao dịch là hình thành tốt và ngoài ra hãy kiểm tra bằng cách thay điều kiện 1 nêutrên bằng điều kiện tổng quát hơn Đó là điều kiện 2

2 Không có then cài nào có thể diễn ra tiếp theo một then cài khác trong cùng một giao dịch.

Điều kiện này thể hiện ở chổ là dãy các phép toán trên các then cài được phân tíchthành 2 pha nối tiếp nhau Một pha mà trong đó các đối tượng bị cài then, còn pha kiachúng được mở then Đặc tính này định nghĩa các giao dịch theo hai pha

Bằng cách sử dụng điều kiện tương đương đã cho trong I.2.3 ta có thể hình thànhnên kết quả sau đây và cũng được phản ảnh trong bài tập 1 của chương

Toàn bộ trật tự hóa hợp thức của một tập hợp các giao dịch hình thành tốt hai

pha là gắn bó, có nghĩa là cùng hiệu ứng với trật tự hóa tuần tự.

Ngược lại, nếu các giao dịch của một tập hợp (không phải là hình thành tốt và ở

hai pha, thì có thể xây dựng các trật tự hóa hợp thức của M là không gắn bó.

Ví dụ 1 :

Hãy truy cập vào tập hợp các đối tượng

Giả sử rằng ta muốn đọc các giá trị của một tập hợp các đối tượng và quy ướcrằng các giá trị này kiểm tra các ràng buộc toàn vẹn Lúc này, ta cần phải cài then theokiểu chia xẻ cho mỗi một đối tượng trước khi đọc, mở then diễn ra ở cuối của giao dịchnày Một phép như vậy gọi là đọc gắn bó của tập hợp các đối tượng

Như thế, giao dịch được thể hiện như sau :

v_doc(a) v_doc(b) doc(a) doc(b) v_doc(c) doc(c) giai_phong(a) giai_phong(b) giai_phong(c)

là giao dich đọc gắn bó của tập hợp {a, b, c}.

Ví dụ 2 :

Trở lại với ví dụ trong được mô tả trong ví dụ I.1 Đây là hai kiểu mô tả khác nhau

của giao dịch T và một kiểu mô tả có thể của giao dịch U :

Giao dịch T1 Giao dịch T2 Giao dịch T3

B := B + P 2 giai_phong(B)

v_viet(A)

A := (1 + t) x A v_viet(B)

B := (1 + t) x B giai_phong(B) giai_phong(A)

Ta kiểm tra rằng tất cả các giao dịch đều là hình thành tốt và T2 và U đều ở hai pha và T 1 không có hai pha.

Trang 13

Sau đây là hai trật tự hóa hợp thức S1 và S2 xuất phát từ Việc thực hiện song song của T1 và U và T2 và U.

I.3.2 Hệ quả của tính không chắc chắn trên trạng thái của hệ

Bây giờ, ta hãy tưởng tượng rằng các đối tượng được phân tán trên nhiều trạmkhác nhau và được nối với nhau thông qua hệ thống viễn thông và rằng các tiến trìnhdiễn ra trên các trạm khác nhau Hệ thống viễn thông cho phép các tiến trình trên cáctrạm khác nhau có thể trao đổi các thông điệp với nhau Ta cũng giả định rằng các tiếntrình và các phương tiện truyền thông tin là các đối tượng có thể rơi vào tình trạng sựcố

Các đối tượng thay đổi hay tham chiếu trong quá trình thực hiện cùng một giao

dịch có thể nằm trên các trạm khác nhau Nếu ta xét đến ví dụ I.1, thì tài khoản A và tài khoản B có thể được quản lý bởi hai cơ quan khác nhau Phép chuyển khoản T trong

trường hợp này bao gồm các tác động thực hiện trên hai trạm khác nhau Một xử lý nhưvậy, trong trường hợp hệ tập trung chỉ cần một giao dịch tuần tự là đủ, nhưng với các

hệ phân tán, thì cần ít nhất hai dãy tác động cục bộ Tương tự như vậy đối với giao dịch

loại U.

Một hệ quản lý tập hợp thông tin phân tán bao gồm :

1 Cơ chế cho phép sắp xếp một cách tổng quát cáctác động của cùng một giao dịch, ngay cả khi các

tác động này diễn ra trên các trạm khác nhau

2 Cơ chế điều khiển các tranh chấp truy cập cục bộvào các đối tượng và đảm bảo tôn trọng tính vẹn

toàn của các đối tượng cục bộ này

3 Cơ chế có khả năng xử lý các bế tắc và thiếu thốn

vô hạn, hậu quả của Việc huỷ bỏ các giao dịch

Trang 14

4 Cơ chế phục hồi cỏc giao dịch đó bị huỷ bỏ hay

xử lý cỏc sự cố

I.3.3 Xử lý cỏc sự cố

Ta giả sử rằng cỏc bộ xử lý và bộ nhớ cấu tạo nờn cỏc trạm là nguyờn nhõn chớnhcủa cỏc sự cố làm ngắt quảng quỏ trỡnh thực hiện cỏc tiến trỡnh Cỏc hệ thống Iễn thụngcũng cú thể là nơi diễn ra cỏc sự cố làm mất hẵn hay chồng chộo cỏc thụng điệp

Ta xột sự gắn bú thụng tin khụng chỉ trong cỏc điều kiện thuận lợi như đó nờu trướcđõy, mà cũn tớnh đến cỏc yếu tố mới và cũng xột đến cỏc cụng cụ cho phộp đảm bảocho sự gắn bú này

Nếu một tiến trỡnh p bị sự cố trong lỳc thực hiện một giao dịch T, thỡ trạng thỏi của

hệ xuất phỏt từ Việc thực hiện từng phần đú chắc chắn sẽ khụng cũn gắn bú

Một cơ chế cho phộp duy trỡ sự gắn bú trong mụi trường phõn tỏn cú sự cố phải là :

1 Giao dịch T bắt buộc phải được thực hiện một cỏch

trọn vẹn

2 Nếu cú sự cố diễn ra, thỡ bắt buộc nú phải quay trở

lại điểm xuất phỏt

Muốn thực hiện những điều vừa nờu trong bảng trờn, người ta đũi hỏi giao dịch phải

cú cỏc đặc tớnh toàn vẹn như sau :

1 Nếu một tiến trỡnh bị sự cố trước khi kết thỳc T nhưng lạ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ú.

2 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ú.

3 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ú.

Cỏc đặc tớnh trờn cú thể mụ tả bằng hỡnh vẽ I-7 sau đõy :

1

2

3

Tr ớc khi cập nhật (thay đổi)

Sau khi cập nhật (thay đổi) Gắn bó

Không gắn bó

Ngày đăng: 12/11/2014, 08:52

HÌNH ẢNH LIÊN QUAN

Hình I-5. Đồ thị ứng với các trật tự hoá S 1 , S 2  và S 3 . - TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER
nh I-5. Đồ thị ứng với các trật tự hoá S 1 , S 2 và S 3 (Trang 9)
Hình I-7. Ba giai đoạn của một giao dịch. - TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER
nh I-7. Ba giai đoạn của một giao dịch (Trang 15)
Hình 2.2. Biểu đồ khoá 2PL - TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER
Hình 2.2. Biểu đồ khoá 2PL (Trang 23)
Hình 2.3. Biểu đồ khoá hai pha nghiêm ngặt. - TIỂU LUẬN LẬP TRÌNH MẠNG VIẾT CHƯƠNG TRÌNH ÁP DỤNG THUẬT TOÁN DUY TRÌ GẮN BÓ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG HỆ ĐA SERVER
Hình 2.3. Biểu đồ khoá hai pha nghiêm ngặt (Trang 24)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w