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 372 0
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

Đ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

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

Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn ĐẠ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 TỐ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 Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Lời mở đầu Như biết, hệ thống thông tin lớn, sở liệu không lưu trữ quản lý Server độc lập mà thường phân tán nhiều Server phân bố vị trí địa lý khác Hệ thống cho phép xử lý đa truy cập đồng thời cho phép đăng ký từ xa Một lợi ích Việc phân tán liệu nhằm phân chia yêu cầu xử lý liệu cho nhiều máy nhằm làm tăng lực xử lý thông tin hệ thống đặc biệt, đảm bảo u cầu tồn liệu liệu lưu trữ dự phòng nhiều nơi khác Hệ thống trình bày hệ thống đa server phức tạp Một yêu cầu đặt cho hệ thống phải đảm bảo gắn bó liệu server đồng thời khơng làm ảnh hưởng đến lực xử lý hệ thống Nội dung chủ yêu trình bày báo cáo tập trung vào xây dựng chương trình đảm bảo gắn liệu cho hệ thống đa server Chương trình thiết kế xây dựng dựa điều kiện sau: Về mặt công cụ: Sử dụng ngôn ngữ lập trình mạng JAVA Sun Micro System JDK 1.6, đồng thời khai thác thư Iện hỗ trợ lập trình phân tán xây dựng sẳn ngơn ngữ RMI Về mặt thuật tốn: Thuật tốn sử dụng chương trình “THUẬT TỐ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 thuật toán chủ tham khảo từ báo cáo khoa học Phạm Đình Hân Lê Văn Sơn đăng Tạp chí Khoa học Cơng nghệ, số 46-47(2004) giáo trình Hệ Tin học Phân tán PGS TS Lê Văn Sơn Thuật toán cài đặt lại ngôn ngữ JAVA RMI chạy nhiều server Trong phạm I tiểu luận này, chương trình cài đặt demo server, nhiên cài đặt hệ thống gồm nhiều server Chương trình bao gồm cơng cụ gọi module monitor nhằm giám sát Việc cập nhật liệu server, nhằm đánh giá tính gắn bó liệu giữ liệu server với Cuối cùng, mong muốn nhận ý kiến đóng góp, bổ sung quý thầy bạn Xin chân thành cảm ơn! Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Phần I: Lý thuyết I.1 Đặt vấn đề: Bây giờ, ta nghiên cứu ví dụ cụ thể Việc quản lý tài khoản ngân hàng Mỗi người mở tài khoản ngân hàng lưu trữ ghi CSDL Các trường ghi bao gồm họ tên, địa chỉ, điện thoại khoá (mã số) cho người Mã số đóng vai trị trỏ đến CSDL khác chứa lần thu tiền vào rút tiền từ tài khoản Cuối cùng, ta phải có CSDL chứa số dư Số dư số tiền có tài khoản thời điểm xem xét người gửi tiền Trạng thái số dư tài khoản khống chế mức xác định ví dụ số dư không ≤ N cho trước Điều đồng nghĩa với Việc đảm bảo tài khoản NSD khơng có giá trị hay giá trị âm Do vậy, để nghiên cứu, ta cần giả định số quy tắc định cho Việc hoạt động hệ Các quy tắc thể bảng sau : STT Quy tắc Chỉ có loại phép tốn (hay giao dịch) chuyển khoản từ tài khoản sang tài khoản khác Hệ có số lượng tài khoản cố định Khơng có trao đổi khác diễn ngồi ngân hàng Ngân hàng khơng phép tiết lộ bí mật số dư khách Xét quy tắc có tính chất điều kiện trên, sau thực xong hoàn toàn giao dịch đó, hệ quản lý giao dịch cần phải đảm bảo hai đặc tính sau : STT Ký hiệu P1 P2 Đặc tính Tổng tất số dư phải số Số dư cho tài khoản đại lượng ≥ Hai đặc tính gọi đặc tính trạng thái tổng quát CSDL (hay ràng buộc toàn vẹn hệ) Ta nói trạng thái hệ gắn bó, hệ mang hai đặc tính vừa nêu Phép toán chuyển khoản thể cách trừ giá trị P tài khoản cộng giá trị vào tài khoản khác Nếu ta ký hiệu A số dư tài khoản bị trừ B số dư tài khoản cộng vào, chương trình thể giao dịch Iết sau : Người thực hiện: Đồn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Nếu A >= P A := A - P (a) B := B + P (b) không {Khơng cập nhật tài khoản} Kết thúc Theo thuật toán thể đoạn chương trình trên, ta cần lưu ý hai điểm sau : Giả sử ta thực đồ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 tài khoản tiến hành theo kiểu tùy ý mà phải đảm bảo loại trừ tương hổ mức tài khoản Việc loại trừ thực theo kiểu khác nhau, kiểu đơn giản loại trừ mức toàn CSDL hệ loại bỏ phép song song Có thể áp dụng loại trừ mức tài khoản riêng biệt Giả sử xử lý thực giao dịch bị rơi vào trạng thái không làm Việc thời điểm a b Tài khoản A trừ B chưa cộng Nói cách khác, đặc tính P1 khơng thể đảm bảo hơn, dừng lại Ta cần phải bổ sung thêm cho hệ đặc tính nhằm vào điều vừa nêu Đó sau thực giao dịch tất cập nhật tiến hành trạng thái tài khoản không thay đổi Như vậy, lưu ý thứ cho phép ta đảm bảo tính gắn bó liệu điều kiện có cố Đó địi hỏi quan trọng tồn hệ Việc truy cập thông tin Bây giờ, ta giới thiệu loại giao dịch Đó giao dịch kèm theo tỷ lệ lợi nhuận tiền gửi t có nghĩa sau khoản thời gian số dư tính tăng lên cách cộng số dư với lợi nhuận ngân hàng Ta ký hiệu U - giao dịch T - giao dịch chuyển khoản và, bây giờ, ràng buộc toàn vẹn hệ : STT Ký hiệu P'1 P'2 P'3 Đặc tính Thực lượng giao dịch T khơng làm thay đổi tổng tất tài khoản Trong tài khoản, số dư ≥ Thực n giao dịch loại U nâng tổng tài khoản (1 + t)n Cần lưu ý ta cho phép giao dịch loại U T hoạt động song song, có nguy phá đặc tính P'3 Ví dụ : Hãy xem xét hệ bao gồm hai tài khoản A B, có hai giao dịch thực theo kiểu tương tranh : Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng Giao dịch T A := A - P B := B + P GVHD: PGS.TS Lê Văn Sơn Giao dịch U A := (1 + t) x A B := (1 + t) x B giả sử ta phải kiểm tra điều kiện A ≥ P Nếu trình tự thực tác động sơ đẳng hai giao dịch sau : A := A – P A := (1 + t) x A B := (1 + t) x B B := B + P điều kiện P'3 khơng tơn trọng Bây giờ, ta thực giá trị số cụ thể Nếu trước thực hai giao dịch A = 000, B = 000 t = 0.01 P = 500, sau thực có A + B = 3300, ta lại có A + B = 3250 Ta làm sai giá trị vốn cần có chúng Ví dụ cho ta thấy điều quan trọng thực nhiều giao dịch song song dẫn hệ thống đến trạng thái khơng gắn bó Do vậy, cần phải có giải pháp khắc phục tình hình nội dung cốt lõi mà ta nghiên cứu liền sau I.2 Sự gắn bó thơng tin I.2.1 Các điều kiện giả định thực tế Ta có tập hợp thơng tin truy cập tập hợp tiến trình Số lượng đối tượng thơng tin truy cập số lượng tiến trình có nhu cầu thơng tin số cố định Hệ phát triển rời rạc theo thời gian; điểm quan sát (hay gọi điểm xác định), ta nhận biết trạng thái thực chúng, có nghĩa giá trị đối tượng ngữ cảnh thực tiến trình Hệ kiểu hoạt động với độ ổn định tuyệt vời Các điều kiện giả định so với hệ thực tế có điểm khác sau : STT So sánh Các đối tượng tiến trình tạo lập huỷ bỏ có tính chất động suốt trình tồn hệ Các đối tượng tiến trình phân tán trạm khác liên hệ với qua hệ thống Iễn thông Do vậy, ta xác định trạng thái thời điểm hệ lý độ trễ đường truyền trạm tính khơng tương thích điểm quan sát trạm Để hiểu Người thực hiện: Đồn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn chi tiết vấn đề này, ta tham khảo tài liệu mạng máy tính hệ thơng mở Hệ thống Iễn thơng tiến trình đối tượng xảy cố kỹ thuật Ta trình bày thuật ngữ, khái niệm diễn giải có liên quan mật thiết đến đặc điểm vừa nêu I.2.2 Tác động giao dịch Các đối tượng khác hệ đối tượng độc lập nhau, chúng liên hệ với tập hợp quan hệ gọi ràng buộc toàn vẹn Các ràng buộc thể sâu sắc đặc tính riêng biệt hệ Trạng thái hệ thỏa mãn tập ràng buộc toàn vẹn gọi trạng thái gắn bó Các nhà thiết kế vận hành hệ mong muốn Việc thực tiến trình phải trì cho hệ trạng thái gắn bó Để xác hóa đặc tính này, cần phải lưu ý trạng thái hệ 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 NSD Hệ thống Giải thích Tiến trình dãy thực giao dịch Giao dịch chương trình thực từ trạng thái gắn bó dẫn hệ đến trạng thái gắn bó khác Mỗi giao dịch cấu tạo từ dãy tác động thể sau Nếu tác động A B thuộc giao dịch khác thực tiến trình, hiệu ứng tổng quát chúng hiệu ứng dãy (A; B) (B; A) Ở mức hệ thống, ta nói tác động phần tử nhỏ chia cắt Ví dụ : Trong hệ thống quản lý tài khoản ngân hàng, số dư tài khoản thể ghi Ta cần lưu ý : Phép chuyển giá trị từ tài khoản sang tài khoản khác xem tác động Đọc ghi ghi tác động, hệ quản lý tập tin đảm bảo tính khơng chia cắt chúng Cho tập hợp giao dịch M = {T1, T2, , Tn} thực tiến trình độc lập p1, p2, , pn Việc thực (có nghĩa thực tất giao dịch M theo kiểu nối đuôi tuân thủ trật tự Sự gắn bó Người thực hiện: Đồn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn hệ bảo toàn, theo định nghĩa, Việc thực riêng biệt giao dịch Do vậy, bảo tồn chế độ thực M Nếu, lý hiệu quả, nhiều giao dịch thực song song, gắn bó khơng cịn bảo đảm nữa; ta gặp ví dụ I.1 Một yêu cầu khác quan trọng trình thực hệ phải đảm bảo cho tác động không bị ngắt quảng Trong phần sau đây, ta nghiên cứu điều kiện thực giao dịch song song mà tôn trọng yêu cầu ràng buộc tồn vẹn I.2.3 Trật tự hóa tác động Trở lại với tập hợp giao dịch M = {T1, T2, , Tn} xác định I.2.2 Mỗi giao dịch cấu tạo từ dãy tác động Bằng tác động không chia xẻ này, toàn Việc thực tập hợp giao dịch M tập hợp tiến trình tương tranh tương đương với Việc thực dãy S tác động thuộc giao dịch này, S = (a1, a2, , an) chẳng hạn Trong trật tự tuân thủ trật tự nội giao dịch, dãy bao gồm tất tác động cấu tạo nên giao dịch M; tác động xuất lần Một dãy gọi trật tự hóa tập hợp giao dịch M Ví dụ : Cho T1 = (a11, a12, a13, a14) T1 = (a21, a22, a23) Một trật tự hóa (T1, T2) thể ví dụ sau : S = a21, a11, a12, a22, a13, a23, a14 Trong số trật tự hóa tập hợp giao dịch, điều quan trọng phải tách cho phục vụ trạng thái gắn bó liệu chúng gọi trật tự hóa gắn bó Đến đây, ta chưa có dịp làm quen với đặc tính tổng quát trật tự hóa, nắm đặc tính quan trọng trật tự hóa tương ứng với Việc thực tập hợp giao dịch hay cịn gọi ngắn gọn trật tự hóa Nếu ta nắm đặc trưng trật tự hóa tương đương với trật tự hóa có nghĩa có tác dụng trật tự hóa tuần tự, ta có điều kiện đủ gắn bó Đó tiêu chuẩn tương đương mà ta phải thành lập Ví dụ : Trở lại với ví dụ phần I.1 xem xét trật tự hóa S1, S2 S3 Trật tự hố S1 thể hình vẽ I-1 sau : Hình vẽ I-2 thể trật tự hố S2 : Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn S3 thể trật tự hoá sau : Ta nhận thấy dễ dàng S2 có hiệu ứng với trật tự hóa S3, S1 lại khác Trong S2 S3 cập nhật A B thực theo trật tự, S1 trật tự cập nhật B bị đảo ngược Ví dụ cho ta thấy quan trọng Việc đảm bảo trật tự cập nhật thơng tin Ví dụ : Hãy xem xét hai giao dịch sau : T1 : C := T2 : A := C x B hai trật tự hóa T1 T2 sau (trong T2 phân thành tác động sơ đẳng, R đối tượng cục T2) S'1 S'2 tuân thủ trật tự tác động giao dịch, lại không tương đương với S'1 Giá trị A nói chung không x B sau thực S'2 Sự bảo tồn trật tự cập nhật (ví dụ 1) bảo toàn tập hợp truy vấn trước cập nhật (ví dụ 2) thể điều kiện tương đương trật tự hóa Cho Stt trật tự hóa tập hợp giao dịch M S trật tự hóa M Hiệu ứng S giống với hiệu ứng Stt, hai điều kiện sau triển khai : Điều kiện : Để cho đối tượng e, cập nhật biểu trật tự S Stt Điều kiện : Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Hãy xem xét hai cập nhật đối tượng e số trật tự hóa, cập nhật tương ứng e trật tự hóa khác Giữa hai cập nhật này, ta tham khảo đối tượng hai trật tự hóa trật tự hay không Lưu ý : Các điều kiện nêu điều kiện đủ cho Việc đánh giá tương đương Lưu ý : Ta hốn vị, không thay đổi hiệu ứng trật tự hóa, thao tác đọc đối tượng có tính chất liên tiếp thao tác gán đối tượng khác cách liên tục Cả hai điều kiện vừa nêu mạnh Việc nghiên cứu tiếp tục sau Để cho trật tự hóa S, ta định nghĩa quan hệ phụ thuộc giao dịch Cho T1 T2 hai giao dịch M, e đối tượng hệ Ta nói T2 phụ thuộc T1 qua trung gian e, ký hiệu (T1, e, T2), với điều kiện sau kiểm tra : Một tác động T1 tham chiếu e tác động sau T2 thay đổi e Một tác động T1 thay đổi e tác động sau T2 tham chiếu e (hệ điều kiện 2) Một tác động T1 thay đổi e tác động sau T2 thay đổi e (hệ điều kiện 1) mà e không thay đổi giao dịch khác hai tác động T1 T2 Thuật ngữ "trước" hiểu theo nghĩa "cái trật tự hóa S" Quan hệ biểu đồ thị phụ thuộc mà nút gán nhãn tên giao dịch cung tên đối tượng Để cho trật tự hóa tuần tự, đồ thị khơng có vịng lặp (thực tế, (T1, e, T2), T1 trước T2 trật tự tuần tự) Để cho hai trật tự hóa có hiệu ứng, điều kiện đủ chúng phải có quan hệ phụ thuộc Do vậy, điều kiện đủ cho gắn bó trật tự hóa phát biểu sau Một trật tự hóa gắn bó, có quan hệ phụ thuộc với trật tự Chú ý : Điều kiện cần trở thành đủ trường hợp đặc biệt mà thực tế ta thường hay gặp Đó trường hợp mà tồn đối tượng cập nhật cách tham chiếu trước thời điểm giao dịch Ví dụ : Các đồ thị phụ thuộc tương ứng với trật tự hóa S1, S2 S3 ví dụ : (S ) (S ) A A T (S ) A U T U B T U B B Hình I-5 Đồ thị ứng với trật tự hoá S1, S2 S3 Các đồ thị tương ứng với giao dịch S'1 S'2 ví dụ : (S' ) C T (S' ) C T T Người thực hiện: Đoàn Cường,Võ Lê Đức Huy T KHMT 11 Trang Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Hình I-6 Đồ thị ứng với hai giao dịch S'1 S'2 Bây giờ, ta kiểm tra phương tiện đảm bảo tập hợp giao dịch thực theo trật tự hóa gắn bó I.3 Triển khai giao dịch tơn trọng gắn bó Cho tập hợp giao dịch M = {T1, T2, , Tn} Một trật tự hóa tập hợp tác động thành phần tương ứng với Việc thực hoàn toàn giao dịch Việc thu trật tự hóa gắn bó thành cơng áp dụng ràng buộc trật tự thực tác động Nguyên lý phương pháp chổ làm chậm tác động thời điểm mà thực khơng cịn có nguy phá huỷ gắn bó trật tự hóa (bằng cách chặn tiến trình hành) Hiệu ứng làm chậm (cơ chế then cài) trình bày phần trước tài liệu trình bày tiếp phần kề liền sau I.3.1 Cơ chế then cài Một giao dịch thực phép then cài đối tượng muốn giành quyền sử dụng đối tượng theo vài kiểu truy cập định Cơ chế then cài gán hay không gán quyền truy cập vào quy tắc tiền định loại trừ tương hổ, luật đọc - hiệu chỉnh thông tin, Nếu quyền thừa nhận, đối tượng bị cài then giao dịch Nếu khơng, tiến trình thực giao dịch bị khóa đối tượng khơng bị cài then Cơ chế then cài cho phép giao dịch giải phóng đối tượng mà cài then Ta mô tả Việc sử dụng then cài để đạt gắn bó giao dịch Then cài nguyên nhân bế tắc thiếu thốn vô hạn tài nguyên thấy chương IV ta giải vấn đề chương I.3.1.1 Loại trừ tương hổ Một giải pháp giản đơn để đạt trật tự hóa gắn bó thể chổ bắt buộc phải sử dụng trật tự hóa Để làm Việc đó, toàn giao dịch đặt cặp hàm nguyên thuỷ mo_giaodich dong_giaodich Đây đảm bảo cho Việc loại trừ tương hổ giao dịch Các hàm triển khai dựa phương pháp nghiên cứu chương trước Nếu ta biết trước đối tượng xử lý giao dịch đó, ta cài then công Việc truy cập đến đối tượng Điều cho phép thực song song giao dịch truy cập vào đối tượng rời rạc Nếu ta muốn nâng cao khả sử dụng song song, cần phải thực cài then mức độ thấp mức giao dịch Đó điểm quan trọng mà ta cần quan tâm I.3.1.2 Then cài chọn lựa đối tượng Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 10 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Cơ chế phục hồi giao dịch bị huỷ bỏ hay xử lý cố I.3.3 Xử lý cố Ta giả sử xử lý nhớ cấu tạo nên trạm nguyên nhân cố làm ngắt quảng trình thực tiến trình Các hệ thống Iễn thơng nơi diễn cố làm hẵn hay chồng chéo thơng điệp Ta xét gắn bó thơng tin khơng điều kiện thuận lợi nêu trước đây, mà cịn tính đến yếu tố xét đến công cụ cho phép đảm bảo cho gắn bó Nếu tiến trình p bị cố lúc thực giao dịch T, trạng thái hệ xuất phát từ Việc thực phần chắn khơng cịn gắn bó Một chế cho phép trì gắn bó mơi trường phân tán có cố phải : STT Phải thực Giao dịch T bắt buộc phải thực cách trọn vẹn Nếu có cố diễn ra, bắt buộc phải quay trở lại điểm xuất phát Muốn thực điều vừa nêu bảng trên, người ta địi hỏi giao dịch phải có đặc tính tồn vẹn sau : STT Đặc tính Nếu tiến trình bị cố trước kết thúc T lại sau thao tác thay đổi cần thiết T, trạng thái hệ gắn bó Nếu tiến trình bị cố trước diễn thay đổi T, trạng thái hệ gắn bó Nếu tiến trình bị cố thay đổi T, trạng thái hệ khơng gắn bó Các đặc tính mơ tả hình vẽ I-7 sau : Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 14 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Hình I-7 Ba giai đoạn giao dịch Trong tình này, ta có hai giải pháp : STT Giải pháp tổng quát Phục hồi trạng thái hệ trước diễn giao dịch T Cố gắng tiếp tục thực giao dịch T kết thúc Khơng phải lúc ta áp dụng giải pháp số tác động khơng thể quay trở lại Như thế, ta phải xác định cho điểm không trở lại giao dịch Căn vào điểm này, vượt nó, khơng có hành động quay trở lại thực trạng thái trước giao dịch phục hồi phép lập lại (rollback) Trong hệ thống tập trung, Việc triển khai kỹ thuật khẵng định (điểm khơng trở lại) khơng có khó khăn Ta thực cập nhật có tính chất định vào trạng thái phép ghi Trong hệ phân tán, vấn đề triển khai có nhiều tinh tế trạm bắt đầu cập nhật, phải gửi cho tất trạm khác cố diễn vào thời điểm Các kỹ thuật khẵng định hai giai đoạn (Lampson) hay ba giai đoạn (Bernstein) phát triển Ví dụ : DFS hệ quản lý tập tin thành lập cho hệ điều hành mạng ETHERNET Các chức truy cập vào tập tin tiến hành thơng qua tiến trình server Các tiến trình server chịu trách nhiệm trao đổi thông điệp với tiến trình NSD Ta nhận thấy nguyên lý tồn vẹn khẵng định có nhiều mức khác : STT Tên gọi Ghi tập tin Giao dịch Thuyết minh Tại mức ghi file, phép tốn thực "bộ nhớ cứng" có nghĩa là thực trọn vẹn phép toán, khơng thực Bộ nhớ cứng thực cách ghi liên tục hai thông tin, cho dự trữ Tại mức giao dịch, thay đổi thông tin không thực tức thì, mà ghi list đích Một phép toán cho phép chuyển tập hợp thay đổi sang đối tượng, giao dịch khẵng định Như vậy, list đích tồn khơng có Cuối cùng, giao dịch làm giống cho server, server phải có list đích Một Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 15 Tiểu luận: Lập trình mạng Server GVHD: PGS.TS Lê Văn Sơn server phải server huy cho giao dịch kiểm tra toàn list đích chuẩn bị tốt hay chưa Khi Việc tốt, khẵng định cho tiến trình NSD biết giao dịch kết thúc Các list đích đảm bảo chắn nhờ chế nhớ cứng I.3.4 Quản lý gắn bó giao dịch Bây giờ, ta xem xét hệ, đối tượng phân tán nhiều trạm, khơng có Mỗi đối tượng tồn có Một giao dịch TJ tham chiếu đến đối tượng nằm trạm khác bao gồm nhiều tác động thực nhiều trạm Như vậy, ta phải xác định trạm Si tiến trình Pji với nhiệm vụ thực tác động giao dịch Tj Si Các tác động thực trạm khác tiến hành theo kiểu song song Bây ta xem xét tập hợp giao dịch Như phần I.2 ra, ta cố gắng thực giao dịch với độ cực đại song song tác động điều kiện trì tốt trạng thái gắn bó hệ Áp dụng chế then cài trình bày I.3.1 ngun nhân dẫn đến bế tắc thiếu thốn vơ hạn Đó điều mà ta cần phải tính đến Nhưng thực tế, khả xuất bế tắc không đáng kể giao dịch xử lý phần bé tập hợp đối tượng Đó điểm khác hệ phân tán hệ tập trung Ta giới thiệu hai phương pháp triển khai nguyên lý I.3.1 Trong phương pháp đầu, bế tắc xử lý phương pháp dự phòng, điều địi hỏi ta phải có kiến thức cần thiết đối tượng xử lý Phương pháp thứ hai dựa vào Việc hạn chế khả diễn cách phát bế tắc có tính chất động, điều dẫn đến huỷ bỏ giao dịch Thực tế cho thấy phương pháp hoàn hảo khả xung đột thấp I.3.4.1 Sử dụng giao dịch hai pha Ta thấy I.3.1 gắn bó đảm bảo đặt tất giao dịch dạng pha Để mở rộng lập luận I.3.1.3 áp dụng vào tập hợp đối tượng phân tán nhiều trạm, ta cần phải xác định trật tự hai tác động hai trạm khác Đặc biệt kỹ thuật dấu, cho phép áp dụng Vấn đề lại phải giải cho khơng diễn tình trạng bế tắc Có thể áp dụng phương pháp dự phòng dựa sở thông điệp phần III.3 Một phương pháp địi hỏi phải có hiểu biết định đối tượng xử lý từ trước giao dịch khơng phép định nghĩa động đối tượng này; đó, ràng buộc chấp nhận Trong trường hợp tổng quát, Việc dự phòng bế tắc Do vậy, cần phải chấp nhận xung đột truy cập diễn xử lý chúng sau phát Cách đòi hỏi ta phải huỷ bỏ giao dịch Việc trì trạng thái Người thực hiện: Đồn Cường,Võ Lê Đức Huy KHMT 11 Trang 16 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn gắn bó hệ đối tượng xử lý đạt cách sử dụng có hệ thống kỹ thuật thích hợp Đó phương pháp phát động mà ta giới thiệu sau I.3.4.2 Thuật tốn trì gắn bó tránh bế tắc thiếu thốn Thuật tốn mơ tả ấn phẩm Rozenkrantz Các phép tốn then cài mở then khơng giao dịch Một điều khiển cục trạm phân tích tất truy cập vào đối tượng thực tự động phép toán cần thiết theo nguyên lý hai pha Các đối tượng xử lý giao dịch không cần phải biết từ trước I.3.4.2.1 Duy trì gắn bó Nội dung phương pháp dựa nguyên lý sau : Then cài ngầm định Bộ điều khiển cục trạm Si áp đặt cho tác động khác trạm diễn biến theo trật tự hóa hợp thức Để làm Việc đó, cần phải chặn giao dịch Tj hay nói xác tiến trình Pji mà tiến trình thực Si Tất diễn đối tượng cài then giao dịch sử dụng, theo kiểu chia xẻ trước đọc, theo kiểu loại trừ trước ghi; tất mở then diễn sau xong giao dịch Như thế, gắn bó tập hợp đối tượng đảm bảo kết I.3.1.3 Đó trật tự hóa hợp thức giao dịch hình thành tốt hai pha Phát động xung đột Hành I xung đột truy cập vào đối tượng diễn có hai giao dịch cố gắng thực tác động khơng tương thích vào đối tượng Các quy tắc tương thích quy tắc mơ hình "đọc-hiệu chỉnh" phần I.3.1.2 trình bày Một xung đột phát có ý định truy cập giao dịch T2 vào đối tượng bị khóa ngầm định giao dịch T1 theo kiểu khơng tương thích Vì lý bế tắc mà ta trình bày phần sau đây, không nên để T2 chờ T1 kết thúc, mà bắt buộc phải huỷ hai giao dịch Khẵng định Như trình bày trên, toàn giao dịch theo hệ số ưu tiên bị huỷ bỏ, nên cần phải áp dụng có hệ thống kỹ thuật khẵng định Mỗi giao dịch bị huỷ bỏ, tất đối tượng mà cài then mở then tất giá trị bị thay đổi cần phải khôi phục trở lại cũ chúng Trong trường hợp đó, có phép ghi thực đối tượng Nếu giao dịch bị huỷ, thông điệp huỷ gửi cho tất trạm chứa đối tượng thay đổi bị huỷ bỏ Trường hợp ngược lại, giao dịch kết thúc bình thường, thơng điệp khẵng định gửi cho tất trạm lúc đối tượng thay đổi phép thay gốc I.3.4.2.2 Huỷ bỏ bế tắc thiếu thốn vô hạn Ngay ta chặn giao dịch tác nghiệp đối tượng chung then cài hay ngầm định, ta làm phát sinh rủi ro bế tắc Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 17 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Một bế tắc loại cách huỷ bỏ hoàn toàn giao dịch gây nên xung đột, ta chọn theo kiểu ngẫu nhiên để huỷ bỏ, ta lại gặp phải trường hợp rắc rối kỹ thuật khác hay số giao dịch rơi vào trạng thái chờ vơ hạn Nhằm tránh tượng thiếu thốn vơ hạn đó, tập hợp giao dịch hoàn toàn xếp theo phương pháp nghiên cứu chương IV chương V dấu chẳng hạn Khi có xung đột diễn ra, ta chọn lựa giao dịch thích hợp cách có hệ thống theo thuật tốn dựa trật tự Trong thiết kế hệ thống phân tán, người ta thường sử dụng hai chiến lược chọn lựa giao dịch Sau đây, ta mô tả phương pháp gọi phương pháp wait-die system Giả sử T1 T2 hai giao dịch trạng thái xung đột để truy cập vào đối tượng chung e T1 thực động tác e Ta gọi N(T1) N(T2) dấu kết hợp với giao dịch khởi Khi diễn xung đột, Việc lựa chọn thực điều khiển trạm e tiến hành sau : Nếu N(T2) < N(T1) < T2 bị chặn > không < T bị huỷ khởi lại> Chấm dứt Nói cách khác, giao dịch T2 trước hơn, tình trạng bị chặn T1 kết thúc bình thường hay đến lượt bị huỷ bỏ Nếu giao dịch T2 nhất, bị huỷ khởi động trở lại trạm sinh Chiến lược thứ hai gọi wound-wait system sử dụng trật tự giao dịch, bắt nguồn Việc "trưng dụng" I.3.4.2.3 Ví dụ Ta minh họa hoạt động thuật toán Việc thực hai giao dịch : Giao dịch T1 A := A + 10 Giao dịch T2 A := A + Các giao dịch phân tích để phát truy cập sơ đẳng vào đối tượng chia xẻ A Giả sử a1 a2 hai biến cục tương ứng với tiến trình thực T1 T2 Để làm sáng tỏ vấn đề xung đột truy cập, ta phải cho xuất hiện, cách thuyết minh, phép toán then cài ngầm định : Giao dịch T1  {v_doc(A)} a1 := A a1 := a1 + 10 Giao dịch T2  {v_doc(A)} a2 := A a2 := a1 + Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 18 Tiểu luận: Lập trình mạng  {v_viet(A)} A := a1 {giai_phong(A)} GVHD: PGS.TS Lê Văn Sơn  {v_viet(A)} A := a2 {giai_phong(A)} Bây ta xem xét ý định thực T1 T2 theo trật tự hóa (khơng hợp thức)  T1 xem giai dịch già áp dụng chiến lược trình bày Quá trình thực diễn theo sơ đồ sau : Bước Thuyết minh T1 thực dãy  T2 thực dãy  khơng có xung đột diễn T1 có ý định thực dãy  bước vào xung đột với T2 Việc sử dụng thuật tốn kéo theo Việc chặn T1 T2 có ý định thực dãy  bước vào xung đột với T1 Việc sử dụng thuật toán kéo theo huỷ bỏ T2 T1 mở chặn thực dãy  khơng có xung đột Việc huỷ bỏ T2 huỷ bỏ Việc chặn A T2 T2 thực lại công Việc từ đầu thực liên tục   Hiệu ứng tổng quát Việc thực cuối hiệu ứng Việc trật tự hóa theo kiểu tuần tự, coi hợp thức theo dãy  I.3.5 Kết luận Trong hệ phân tán, hiểu biết khơng hồn tồn đầy đủ chậm trể thơng tin khơng phải cục dẫn đến cần phải quản lý chặt chẽ Việc truy cập đến đối tượng Những vấn đề kỹ thuật đặt ra, song không giải triệt để, làm thiệt hại đến hiệu hoạt động chung hệ Như vậy, ta sử dụng giao dịch hai pha, Việc dự phịng bế tắc phương pháp gửi thơng điệp dẫn đến làm chậm trễ then cài có lợi (vơ hại); điều làm hạn chế khả song song Theo phương pháp phát động xung đột, giao dịch bị huỷ bỏ khởi động lại, lúc hiểu biết đầy đủ tập hợp thông tin điều quan trọng nhằm tránh thời gian Ta lưu ý điều tất phương pháp sử dụng dựa vào Việc vận dụng trật tự toàn phần chặt chẽ giao dịch Đó phương tiện để điều chỉnh tình hình có xung đột Phần II Cài đặt chương trình hệ đa server II.1 Thuật toán khoá chốt Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 19 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn {Các định nghĩa chuẩn bị cho thuật tốn trình bày tiểu luận} declare-type Operation : số Begin-Transaction, Read, Write, Abort, Commit DataItem : mục liệu sở liệu phân tán TransactionId: giá trị gán cho giao dịch DataVal: giá trị có kiểu liệu (nghĩa số nguyên, số thực,…) SiteId: đinh danh cho vị trí Dbop: ba gồm {một phép toán sở liệu ứng dụng} opn: Operation data: DataItem tid: TransactionId Dpmsg: ba gồm opn: Operation tid: TransactionId result: DataVal Scmsg: ba gồm opn: Operation tid: TransactionId result: DataVal Transation ← hai gồm tid: TransactionId body: thân giao dịch Message ← chuỗi ký tự cần truyền OpSet: tập Dbop SiteSet: tập SiteIde WAIT(msg: Message) begin {đợi có thơng báo đến} end {Thuật tốn 2.1 Bộ quản lý khoá (Basic LM)} declare-var msg : Message dop : Dbop Op : Operaeion x : Dataltem T : TransactionId pm : Dpmsg res : Dataval SOP : Opset begin Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 20 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn repeat WAIT(msg) case of msg Dbop: begin Op ← dop.opn x ← dop.da ta T ← dop.tid case of Op Begin-transaction: begin gởi dop đến xử lý liệu end Read or Write {yêu cầu khố} begin tìm đơn vị khố lu cho x lu if lu chưa bị khoá or thể thức khoá lu tương thích với Op then begin đặt khố lu thể thức thích hợp gởi dop đến xử lý liệu end else đưa dop vào hàng đợi lu end-if end Abort or Commit: begin gởi dop đến xử lý liệu end end-case Dpmsg: {trả lời xử lý liệu} Begin {yêu cầu mở khoá} Op ← pm.opn x ← pm.result T ← pm.tid tìm đơn vị khố lu cho x lu, giải phóng khố lu T giữ if khơng cịn khố lu and có thao tác đợi khoá lu hàng đợi then begin SOP ← thao tác hàng đợi SOP ← SOP { thao tác hàng đợi khố lu thể thức khố tương thích với thao tác hiên hành SOP } Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 21 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn đặt khoá lu cho thao tác SOP for tất phép toán SOP gởi thao tác đến xử lý liệu end-for end-if end end-case until forever end {Basic LM} II.2 - NHỮNG ĐIỂM CẦN CẢI TIẾN Thuật toán khố cho thuật tốn 2.1 vừa trình bày khơng đồng hố xác thực thi giao dịch Điều tạo lịch biểu khả tuần tự, thao tác khoá giải phóng khố cần phải điều phối Chúng ta minh hoạ ví dụ sau: Ví dụ: Xét hai giao dịch sau đây: T1: Read(x) T2: Read(x) x←x+1 x←x*2 Write(x) Write(x) Read(y) Read(y) y←y–1 y←y*2 Write(y) Write(y) Commit Commit Dưới lịch biểu hợp lê quản lý khoá tạo sử dụng Thuật toán 2.1: S = {wl1(x) R1(x), W1(x), lr1(x), wl2(x), R2(x), W2(x), lr2(x), wl2(y), R2(y), W2(y), lr2(y), C2, wl1 (y), R1(y), W1(y), lr1(y), Cl} Ở đây, lri(z) biểu thị thao tác giải phóng khố z Ti giữ Chú ý S khơng khả Bởi vì, trước lúc thực giao dịch này, giá trị x y 50 20 Nếu S khả tuần tự, giá trị sau thực tương ứng 102 38 T thực trước T 2, 101 39 nêu T thực trước T1 Tuy nhiên, kết thực S cho giá trị x y 102 39 Điều chứng tỏ S khơng khả Vấn đề lịch biểu S ví dụ là, thuật tốn khố chốt giải phóng khố giao dịch giữ (chẳng hạn T 1) lệnh kèm (đọc ghi) thực hiện; đơn vị khố (chẳng hạn x) khơng cần truy xuất Tuy nhiên thân giao dịch khố mục khác (chẳng hạn y) sau giải phóng khố x Mặc dù điều dường có lợi làm tăn khả hoạt động đồng thời, cho phép giao dịch đan xen với nhau, làm tính biệt lập tính nguyên tử tổng thể Đây lập luận phương pháp khoá chốt hai pha (two-phase locking, 2PL) Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 22 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Qui tắc khoá hai pha đơn giản khẳng định khơng có giao dịch u cầu khố sau giải phóng khố Điều nói giao dịch khơng giải phóng khố đảm bảo khơng yêu cầu thêm khoá Các thuật toán 2PL thực giao dịch qua hai pha Mỗi giao dịch có pha tăng trưởng (growing phase), pha nhận khố truy xuất mục liệu, có pha thu hồi ( shrinking phase), giai đoạn giải phóng khố (Hình 2.2) Điểm khoá (locking point) thời điểm giao dịch nhận tất khoá chưa bắt đầu giải phóng khố Vì điểm khố xác định cuối pha tăng trưởng khởi điểm pha thu hồi giao dịch Hình 2.2 Biểu đồ khố 2PL Hình 2.2 quản lý khố giải phóng khố sau hồn tất việc truy xuất Điều cho phép giao dịch đợi khoá tiếp tục tiến hành nhận khoá, làm tăng hoạt động đồng thời Tuy nhiên việc cài đặt gặp nhiều khó khăn quản lý khoá phải biết giao dịch nhận đủ tất khố khơng cịn cần khố mục Bộ quản lý khoá phải biết giao dịch khơng cịn cần truy xuất mục liệu nữa, khố giải phóng Cuối cùng, giao dịch bị huỷ bỏ sau giải phóng khố, làm huỷ bỏ giao dịch truy xuất mục mở khoá Hiện tượng gọi huỷ bỏ dây chuyền (cascading abort) Vì khó khăn đó, phần lớn xếp lịch 2PL cài đặt dạng khắc khe có tên khoá chốt hai pha nghiêm ngặt (strict twophase locking), giải phóng tồn khố vào lúc giao dịch kết thúc (uỷ thác bị huỷ bỏ) Biểu đồ khố loại trình bày hình sau Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 23 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn Hình 2.3 Biểu đồ khố hai pha nghiêm ngặt Bộ quản lý khoá 2PL nghiêm ngặt sửa lại Thuật tốn 2.1 Thực cần sửa đổi phần xử lý hồi đáp từ xử lý liệu nhằm đảm bảo khố giải phóng thao tác uỷ thác huỷ bỏ Tồn thuật tốn 2PL nghiêm ngặt trình bày Thuật tốn 2.2, thuật toán quản lý giao dịch để xếp lịch theo 2PL trình bày Thuật tốn 2.3 Thuật tốn 2.2 Thuật toán quản lý khoá phương pháp khoá chốt hai pha nghiêm ngặt (S2PL-LM) declare-var msg : Message dop : Dbop Op : Operaeion x : Dataltem T : TransactionId pm : Dpmsg res : Dataval SOP : Opset begin repeat WAIT(msg) case of msg Dbop: Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 24 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn begin Op ← dop.opn x ← dop.da ta T ← dop.tid case of Op Begin-transaction: begin gởi dop đến xử lý liệu end Read or Write {cần khoá chốt} begin tìm đơn vị khố lu cho x lu if lu chưa bị khoá or thể thức khoá lu tương thích với Op then begin đặt khố lu thể thức thích hợp gởi dop đến xử lý liệu end else đặt dop vào hàng đợi cho lu end-if end Abort or Commit: begin gởi dop đến xử lý liệu end end-case Dpmsg: Begin Op ← pm.opn res ← pm.result T ← pm.tid If Op = Abort or Op = Commit then begin for đơn vị khoá lu bị khoá T begin giải phóng khố lu T giữ if khơng cịn khố lu and có thao tác đợi khoá lu hàng đợi then begin SOP ← thao tác hàng đợi SOP ← SOP { thao tác hàng đợi khố lu thể thức khố tương thích với thao tác hiên hành SOP } Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 25 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn đặt khoá lu cho thao tác SOP for tất thao tác SOP gởi thao tác đến xử lý liệu end-for end-if end-for end-if end end-case until forever end {S2PL- LM} Thuật toán 2.3 Bộ quản lý giao dịch 2PL (2PL-TM) declare-var msg : Message dop : Dbop Op : Operaeion x : Dataltem T : TransactionId O : Dbop res : Dataval SOP : Opset begin repeat WAIT(msg) case of msg Dbop: begin gởi O đến LM end Scmsg: begin Op ← sm.opn res ← sm.result T ← sm.tid Case of Op Read: begin trả res cho ứng dụng người sử dụng (nghĩa giao dịch) end Write: Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 26 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn begin thơng tin cho ứng dụng việc hoàn tất hành động ghi trả res cho ứng dụng end Commit: begin huỷ vùng làm việc T thông tin cho ứng dụng biết việc hồn tất thành cơng giao dịch T end Abort: begin thông tin cho ứng dụng biết việc hoàn tất huỷ bỏ giao dịch T end end-case end end-case until forever end {2PL-LM} Chúng ta cần ý thuật tốn 2PL cưỡng chế tính khả tương tranh, khơng cho phép tất lịch biểu có tính khả tương tranh Trong lý thuyết khả tuần tự, thứ tự hoá thao tác tương tranh quan trọng việc phát tương tranh điều tận dụng định nghĩa thể thức khố Hệ ngồi khố đọc (dùng chung, shared) khố ghi (độc quyền, exclusive), định nghĩa thể thức khoá thứ ba: dùng chung có thứ tự (ordered shared) Khố dùng chung có thứ tự đối tượng x giao dịch Ti Tj mang ý nghĩa sau: cho lịch biểu S có khố dùng chung có thứ tự thao tác o Ti p Tj, Ti thu đựoc khoá o trước Tj thu đựoc khố p o thực thi trước p Nghi thức khoá cưỡng chế ma trận tương thích có chứa thể thức khố dùng chung có thứ tự hoàn toàn giống với 2PL, ngoại trừ giao dịch khơng giải phóng khố khố chúng cịn giữ Bằng không xảy thứ tự hoá luẩn quẩn TÀI LIỆU THAM KHẢO Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 27 Tiểu luận: Lập trình mạng GVHD: PGS.TS Lê Văn Sơn [1] Huawen Luo (August, 2002), Agent-based Network Management System, University of British Colombia [2] Nguyễn Phương Lan – Hoàng Đức Hải Java lập trình mạng Chương Nhà xuất Lao động – Xã hội [3] TS Lê Văn Sơn Hệ tin học phân tán Nhà xuất Đại học quốc gia TP Hồ Chí Minh, 2002 [4] Nguyễn Tiến – Ngơ Quốc Việt – Phạm Nguyễn Tuấn Kỳ Giáo trình lý thuyết & thực hành Java Nhà xuất thống kê 2000 [5] SUN microsystems, Speeding up secure web transaction using Elliptic Curve Cryptography, 2003 [1] http://java.sun.com Trang chủ Sun Java, truy cập tháng năm 2007 [2] http://javavietnam.org Diễn đàn Java Việt Nam, truy cập tháng năm 2007 [3] http://jcp.org Trang tổ chức Java Community Process, truy cập tháng năm 2007 [4] http://java2s.com Các ví dụ ngơn ngữ lập trình Java, truy cập tháng năm 2007 Người thực hiện: Đoàn Cường,Võ Lê Đức Huy KHMT 11 Trang 28 ... thời khai thác thư Iện hỗ trợ lập trình phân tán xây dựng sẳn ngơn ngữ RMI Về mặt thuật tốn: Thuật tốn sử dụng chương trình “THUẬT TỐN DUY TRÌ GẮN BĨ, TRÁNH BẾ TẮC VÀ THIẾU THỐN VÔ HẠN HAI PHA TRONG. .. báo cáo tập trung vào xây dựng chương trình đảm bảo gắn liệu cho hệ thống đa server Chương trình thiết kế xây dựng dựa điều kiện sau: Về mặt công cụ: Sử dụng ngôn ngữ lập trình mạng JAVA Sun Micro... nơi khác Hệ thống trình bày hệ thống đa server phức tạp Một yêu cầu đặt cho hệ thống phải đảm bảo gắn bó liệu server đồng thời khơng làm ảnh hưởng đến lực xử lý hệ thống Nội dung chủ yêu trình bày

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan