Tải bản đầy đủ (.doc) (25 trang)

Áp dụng thuật toán Mullery đảm bảo gắn bó dữ liệu trong các CSDL phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (340.47 KB, 25 trang )

Tiểu luận Lập trình mạng nâng cao
MỤC LỤC
LỜI NÓI ĐẦU...................................................................................................................2
A.PHẦN LÝ
THUYẾT......................................................................................................4
I. CÁC KHÁI NIỆM CƠ BẢN VÀ
KIẾN THỨC CHUNG VỀ HỆ TIN HỌC PHÂN TÁN..............................................4
I.1. Khái niệm.........................................................................................................4
I.2. Ưu điểm và hạn chế của hệ phân......................................................................4
I.3. Vấn đề về trỏ thông tin.....................................................................................5
I.4. Vấn đề hệ thống nhiều bản sao.........................................................................6
II. SỰ GẮN BÓ THÔNG TIN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN...................6
II.1 Các điều kiện giả định và thực tế.....................................................................6
II.2 Tác động và giao dịch.......................................................................................7
II.3 Triển khai giao dịch tôn trọng sự gắn bó..........................................................8
II.4 Quản lý gắn bó các giao dịch............................................................................9
III. CÁC THUẬT TOÁN ĐẢM BẢO SỰ GẮN BÓ DỮ LIỆU
TRONG CÁC CƠ SỞ DỮ LIỆU PHÂN TÁN......................................................10
III.1 Thuật toán cung cấp.......................................................................................10
III.2 Kiểu sắp xếp đóng dấu...................................................................................10
III.2.1 Nguyên lý..............................................................................................11
III.2.2 Triển khai hệ số ổn định........................................................................11
III.2.3. Các hành vi ngoài chế độ bình thường.................................................11
III.3. Thuật toán đảm bảo sự gắn bó yếu nhờ bộ tuần tự tuần hoàn.......................11
III.3.1 Nguyên lý..............................................................................................11
III.3.2 Triển khai hệ số ổn định........................................................................12
III.3.3. Các hành vi ngoài chế độ bình thường.................................................12
III.4. Thuật toán đảm bảo sự gắn bó mạnh............................................................12
III.4.1 Nguyên lý..............................................................................................12
III.4.2 Triển khai hệ số ổn định........................................................................13
III.4.3 Các hành vi ngoài chế độ bình thường..................................................13


III.4 4 Phân tán biểu hiện trạng thái và chức năng cung cấp............................14
B.PHẦN BÀI TẬP............................................................................................................16
I. ĐẶT VẤN ĐỀ………………………………………………………………….16
I.1 Giới thiệu bài toán………………………………………………………...16
I.2 Cơ sở lý thuyết để giải quyết bài toán….
………………………………...16
II. GIẢI QUYẾT VẤN ĐỀ...…………………………………………………….19
II.1 Các trạng thái khác nhau cần xem sét cho mỗi bản sao.………………....19
II.2 Sơ đồ hoạt động của thuật toán………………………..………………....20
II.3 Đánh giá hàm của số lượng bản sao, số lượng thông điệp
cần thiết để thực hiện một cập nhật……………………………………….21
II.4 Xử lý sự cố trên một trạm………………………………………………..22
GVHD: PGS.TS Lê Văn Sơn Trang 1
Tiểu luận Lập trình mạng nâng cao
C. KẾT LUẬN…………………………………………………………………………...24
TÀI LIỆU THAM KHẢO.................................................................................................25
GVHD: PGS.TS Lê Văn Sơn Trang 2
Tiểu luận Lập trình mạng nâng cao
LỜI NÓI ĐẦU
------
Hiện nay, việc nghiên cứu phát triển các giải pháp kỹ thuật cơ sở cho các
ứng dụng phân tán đã đạt được những thành công nhất định và thể hiện trong các
công bố mới nhất. Tuy nhiên, để có được một giải pháp hữu hiệu đáp ứng các yêu
cầu đặt ra của việc gắn bó dữ liệu trong môi trường phân tán như Internet/Intranet,
thì đòi hỏi phải tiếp tục nghiên cứu hoàn thiện các giải pháp hiện hành.
Vấn đề gắn bó dữ liệu trong các hệ thống phân tán nói chung và các hệ thống
thông tin đăng ký trên mạng nói riêng như việc đăng ký các tua du lịch, mua bán
trong các giao dịch thương mại điện tử, đăng ký giữ chỗ trong giao thông vận tải,
đăng ký dự thi trong các hệ thống thông tin đào tạo,... đã trở thành một lĩnh vực thu
hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần

mềm nhằm tìm ra các giải pháp hữu hiệu đảm bảo tính gắn bó thông tin trong các
cơ sở dữ liệu truy cập ngẫu nhiên với số lượng truy cập lớn.
Việc nghiên cứu, phát triển các phương pháp đảm bảo gắn bó dữ liệu
trong môi trường phân tán đến nay đã có một số thành công đáng kể. Trước
hết, phải nói đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ
quản trị cơ sở dữ liệu, ngôn ngữ lập trình với phương thức riêng rẽ của từng
hệ cho phép đảm bảo phần cơ bản của việc gắn bó thông tin nói chung trong
quá trình đa truy cập thông qua hệ thống viễn thông. Việc triển khai phương
pháp cho phép gắn bó dữ liệu trong môi trường phân tán trong điều kiện lý
tưởng (không có bất kỳ sự cố nào) đã được áp dụng và mang lại những hiệu
quả nhất định cho các hệ thống đăng ký. Tuy nhiên, trong quá trình triển khai
lập trình và vận hành các hệ thống đăng ký, vấn đề gắn bó dữ liệu trong các
cơ sở dữ liệu khi hệ thống bị sự cố đang đặt ra như là vấn đề quan trọng và có
ý nghĩa sống còn trong việc phát triển toàn hệ nói chung. Với những lý do đó
nên trong phạm vi tiểu luận của mình, tôi trình bày được những vấn đề sau:
Phần Lý Thuyết
 Trình bày các khái niệm cơ bản và kiến thức chung của hệ tin học phân
tán.
 Sự gắn bó thông tin trong cơ sở dữ liệu phân tán
 Thuật toán đảm bảo gắn bó mạnh giữa các CSDL phân tán
Phần Bài Tập
GVHD: PGS.TS Lê Văn Sơn Trang 3
Tiểu luận Lập trình mạng nâng cao
 Áp dụng thuật toán Mullery đảm bảo gắn bó dữ liệu trong các CSDL phân
tán.
Xin chân thành cảm ơn Thầy Lê Văn Sơn và Thầy Đặng Hùng Vỹ đã trang bị
những kiến thức và thông tin về môn học và giới thiệu những tài liệu thiết thực để
tôi có thể hoàn thành tiểu luận này.
Với kiến thức có hạn nên tiểu luận này không tránh khỏi những sai sót. Rất
mong nhận được sự góp ý của Thầy và các anh chị trong lớp.

Học viên thực hiện
Nguyễn Cao Tài
GVHD: PGS.TS Lê Văn Sơn Trang 4
Tiểu luận Lập trình mạng nâng cao
A. LÝ THUYẾT
I. CÁC KHÁI NIỆM CƠ BẢN VÀ KIẾN THỨC CHUNG VỀ HỆ TIN HỌC
PHÂN TÁN
I.1 Khái niệm
Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán là hệ thống xử lý thông
tin bao gồm nhiều bộ xử lý hoặc bộ vi xử lý nằm tại các vị trí khác nhau và được
liên kết với nhau thông qua hệ thống viễn thông dưới sự điều hành thống nhất của
một hệ điều hành.
Từ định nghĩa này, người ta có thể xem hệ phân tán như là một tập hợp bao
gồm các bộ xử lý hoặc bộ vi xử lý với bộ nhớ và đồng hồ nhịp độc lập. Điều này
đồng nghĩa với việc các bộ xử lý không sử dụng chung bộ nhớ và đồng hồ. Như
vậy, mỗi một hệ xử lý thông tin thành phần của hệ phân tán bao gồm một hay
nhiều bộ xử lý và bộ nhớ cục bộ. Hệ xử lý thông tin thành phần phải được thiết kế
sao cho về cấu trúc, số lượng và dung lượng có thể cho phép thực hiện một cách
trọn vẹn các chức năng mà nó đảm nhận.
Hệ phân tán được xây dựng nhằm mục đích phân tán hoá các quá trình xử lý
thông tin và thực hiện công việc đó trên các trạm xa nhau. Đó là những cơ sở căn
bản cho việc xây dựng các ứng dụng lớn như thương mại điện tử, giáo dục điện tử,
thư viện điện tử số, xây dựng các cơ sở dữ liệu tìm kiếm…
Ta có thể nói hệ phân tán bao gồm 4 thực thể như hình vẽ.
I.2 Ưu và nhược điểm của hệ phân tán
1) Ưu điểm
 Chia xẻ tài nguyên: Chia xẻ tài nguyên trong hệ thống phân tán cung cấp
một cơ chế để chia xẻ tập tin ở vị trí xa, xử lý thông tin trong một cơ sở
dữ liệu phân tán, in ấn tại một vị trí xa, sử dụng những thiết bị ở xa để
thực hiện các thao tác…

GVHD: PGS.TS Lê Văn Sơn Trang 5
Hệ thống
phần
mềm
Hệ thống
dữ liệu
Tập hợp
phần
cứng
Hệ thống
truyền
thông
Tiểu luận Lập trình mạng nâng cao
 Tăng tốc độ tính toán: Hệ thống phân tán cho phép phân chia việc tính
toán trên nhiều vị trí khác nhau để tính toán song song.
 An toàn: Nếu một vị trí trong hệ thống phân tán bị hỏng, các vị trí khác
vẫn tiếp tục làm việc mà không ảnh hưởng đến toàn bộ hệ thống.
 Thông tin liên lạc với nhau: Có nhiều lúc, chương trình cần chuyển đổi
dữ liệu từ vị trí này sang vị trí khác. Khi các vị trí được nối kết với nhau
trong một hệ thống mạng, việc trao đổi dữ liệu diễn ra rất dễ.
2) Hạn chế
 Giá phát triển phần mềm cao: Do các khó khăn khi cài đặt một hệ thống
phân tán, giá thành sẽ tăng lên.
 Dễ mắc lỗi hơn: Vì các trạm trong hệ phân tán làm việc song song, khó
có thể đảm bảo thuật toán được thực hiện đúng trên tất cả các trạm. Do
vậy mà số lỗi sẽ tăng lên.
 Khối lượng các xử lý tăng: Hệ thống phân tán cần truyền nhiều thông
báo, nhiều tính toán phụ. Do vậy khối lượng xử lý tăng lên so với hệ
thống tập trung.
I.3 Vấn đề trỏ thông tin

Trong hệ phân tán, thời hạn truyền một thông điệp là hiệu số giữa thời điểm
nhận và thời điểm truyền. Ta giả sử rằng, thời hạn đó đủ lớn so sánh với hệ tập
trung, là địa lượng biến thiên và ở cặp máy này khác với ở cặp máy khác. Từ đó ta
có hai hệ quả sau đây:
1) Ở một thời điểm cho trước, một bộ xử lý đang thực hiện trên một máy chỉ
có thể biết được trạng thái gần đúng của các máy khác.
2) Trật tự nhận các thông điệp trên các máy nhận có thể không giống trật tự
phát của chính các thông điệp đó.
Các máy trên mạng có thể bị sự cố và các thông điệp có thể bị mất. Giải
pháp cho vấn đề này là máy phát đánh số thứ tự tất cả các gói thông tin gửi đi kèm
theo các số đó cho máy nhận. Nếu máy phát không đánh số thì máy nhận sẽ không
xác đinh được thứ tự các gói tin. Ta có hệ quả ba là:
3) Hai máy giống nhau chứa thông tin hoàn toàn giống nhau lại không bao
giờ giống nhau về mặt trạng thái.
Từ những vấn đề nêu trên, ta rút ra các đặc tính tổng quát của hệ phân tán:
i) Thời gian truyền thông điệp là một biến với giá trị khác nhau, giá trị này
có thể rất lớn.
ii) Tần suất xuất hiện các sự cố trong khi vận hành mạng lớn.
GVHD: PGS.TS Lê Văn Sơn Trang 6
Tiểu luận Lập trình mạng nâng cao
iii) Việc truy cập tài nguyên, kích hoạt các tiến trình trong mạng không thể
thực hiện bởi một thiết bị duy nhất, mà chức năng này phải được phân tán trên
nhiều máy trên mạng.
I.4 Vấn đề hệ thống nhiều bản sao
Trong hệ phân tán, quá trình tổ chức, vận hành các hệ thống cho phép đăng ký
từ xa, từng hệ thống cục bộ đều có lưu trữ một bản sao của tất cả các thông tin liên
quan đang có ở tất cả các hệ thống cục bộ.
Ưu điểm nổi bật của kiểu tổ chức này là:
i) Dễ dàng thực hiện việc truy cập thông tin cần thiết cho các yêu cầu ngay tại
hệ thống cục bộ của mình

ii) Cho kết quả truy cập một cách nhanh chóng.
Tuy nhiên, chỉ cho kết qủa tương đối chính xác và phụ thuộc rất nhiều vào phương
pháp và thời hạn cập nhật thông tin trong các CSDL cục bộ.
Sự tồn tại nhiều bản sao trong một hệ phân tán trên nhiều hệ thống cục bộ
khác nhau có thể dẫn đến các hệ quả sau đây:
i) Cập nhật thông tin diễn ra do đăng ký gần hay từ xa hoặc sự thay đổi thông
tin cục bộ trên một hệ cục bộ nào đó cần phải được tiến hành cho tất cả các hệ
thống cục bộ và không được phép bỏ sót hệ thống nào cả. trong khoản thời gian
làm tươi, thông tin phải đảm bảo sao cho việc truy vẩn dữ liệu cho kết quả kịp thời
hay đặt truy vấn trong trạng thái treo.
ii) Cần phải tránh trường hợp các thao tác trên hai bản sao khác nhau nhưng
chứa cùng một thông tin được truy cập bởi hai hay nhiều yêu cầu dẫn đến không
gắn bó.
Hai vấn đề vừa nêu trên xác định về các ràng buộc đối với vấn đề gắn bó dữ
liệu. Để đảm bảo sự gắn bó này điều kiện đủ là phải bắt buộc tuân thủ trình tự nào
đó cho các bản sao, các cập nhật thông tin.
Biện pháp hàng đầu nhằm thực hiện việc loại trừ tương hỗ tổng quát trên tập
hợp các bản sao khi đăng ký và thực hiện việc đăng ký trước khi trả lại bình
thường. Biện pháp này có mặt hạn chế là không cho phép các chương trình đăng
ký thực hiện song song. Tất cả các bản sao đều được khoá chặt trong lúc đăng ký.
II. SỰ GẮN BÓ THÔNG TIN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
II.1 Các điều kiện giả định và thực tế
Ta có một tập thông tin nào đó có thể được truy cập bởi một tập các tiến trình.
Số lượng các thông tin có thể truy cập được và các tiến trì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,
ta có thể nhận biết được trạng thái thực của chúng, có nghĩa là các đối tượng và
GVHD: PGS.TS Lê Văn Sơn Trang 7
Tiểu luận Lập trình mạng nâng cao
ngữ cảnh thực hiện cá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ơ bản
sau đây:
STT So sánh
1
- Các đối tượng và các tiến trình có thể
- Được tạo lậ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 viễ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 trạm đó.
3
- Hệ thống viễ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.
II.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 quan 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àng buộ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ệ 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ó.
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ình
phải duy trì cho được hệ trong trạ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.
Ta quan tâm đến hai mức quan sát:
STT Mức Giải thích
1 NSD
- Tiến trình là một dãy thực hiện 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ạng thái gắn bó dẫn hệ đến một trạng thái gắn bó
khác.
2 Hệ thống - Mỗi giao dịch được cấu tạo từ nột dãy các tác động
GVHD: PGS.TS Lê Văn Sơn Trang 8
Tiểu luận Lập trình mạng nâng cao
được thể hiện như sau. Nếu 2 tác động A và B thuộc
hai giao dịch khác nhau được thực hiện bởi hai tiến
trình thì hiệu ứng tổng quát của chúng sẽ là hiệu ứng
của dãy (A;B) hoặc là (B;A)
Cho một tập hợp giao dịch M={T
1
,T
2
…,T
n
} lần lượt được thực hiện bởi các
tiến trình độc lập p
1
,p
2
…,p
n
. việc thực hiện tuần tự có nghĩa là thực hiện tất cả các
giao dịch của M theo kiểu nố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.
Ở 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. 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 đảm bảo được nữa. Một yêu cầu khác nữa rất quan trọng
là 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.
II.3 Triển khai giao dịch tôn trọng sự gắn bó

Cho một tập hợp giao dịch M={T
1
,T
2
…,T
n
}. 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ệc
thu đượ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ên trậ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á 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, cơ chế để đảm bảo khi giao dịch vẫn có sự gắn bó thông tin
toàn vẹn dữ liệu trên cơ sở dữ liệu phân tán là:
 Cơ chế then cài.
 Then cài loại trừ tương hỗ.
 Then cài lựa chọn đối tượng.
 Giao dịch hai pha.
Bây giờ ta tưởng tượng rằng các đối tượng được phân tán trên nhiều trạm
khác nhau và được nối với nhau thông qua hệ thống viễn thông và các tiến trình
diễ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ác trạm khác nhau có thể trao đổi các thông điệp với nhau. Ta giả định rằng các
tiến trình và các phương tiện truyền thông là các đối tượng có thể rơi vào sự cố.
Một hệ quản lý tập hợp thông tin phân tán bao gồm:
GVHD: PGS.TS Lê Văn Sơn Trang 9
Tiểu luận Lập trình mạng nâng cao
STT Cơ chế
1
- Cơ chế cho phép sắp xếp một cách tổng quát các tá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 đảm bảo tôn trọng tính toàn vẹn của các
đối tượng truy cập 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 hủy bỏ các giao dịch.
4
- Cơ chế phục hồi các giao dịch đã hủy bỏ hay xử lý các
sự cố.
Cơ chế xử lý sự cố
STT Phải thực hiện
1 Giao dịch T bắt buộc phải thực hiện một cách trọn vẹn
2 Nếu có sự cố xảy ra thì phải quay lại điểm xuất phát.
Muốn thực hiện những điều vừa nêu ở 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:
STT Phải thực hiện
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ó.
Nếu dữ liệu được phân tán trên nhiều server, để bảo đảm dữ liệu sẽ được ghi

lên đúng đắn lên mọi cơ sở dữ liệu, đòi hỏi phải có các cơ chế bảo vệ dữ liệu. Ví
dụ như việc cập nhật bảng cân đối tài khoản khách hàng ở ba cơ sở dữ liệu khác
nhau. Nếu có sự cố kết nối xảy ra trong thời gian ghi giao dịch, cơ sở dữ liệu sẽ
mất tính đồng bộ. Xử lý giao dịch khắc phục tình trạng này bằng cách giám sát
những thay đổi tác động lên các cơ sở dữ liệu liên quan nhằm bảo đảm toàn vẹn dữ
liệu một khi có sự cố.
GVHD: PGS.TS Lê Văn Sơn Trang 10

×