Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
267,5 KB
Nội dung
TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài ĐẠI HỌC ĐÀ NẴNG TIỂULUẬN MÔN HỌC HỆPHÂNTÁN ĐIỀUKHIỂNĐỒNGTHỜIBẰNGCƠCHẾTHENCÀI & BÀI TOÁN SỬ DỤNG BỘ QUẢN LÝ KHÓA CƠ BẢN VÀ NHỮNG ĐIỂM CẦN CẢI TIẾN !"#$ % &'()&$*+, -./$ '011)'012 -340(5'01' Võ Minh Trang – Khoa học máy tính Khóa 24 -1- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài LỜI MỞ ĐẦU Ngày nay cùng với sự phát triển nhanh, vượt bậc của nền Khoa học - Công nghệ. Mạng máy tính ra đời làm cho thế giới của chúng ta dường như nhỏ lại và mọi người trở nên gần nhau hơn và mọi người có thể trao đổi thông tin với một khối lượng lớn và khoảng cách xa hơn với thời gian nhanh hơn. Trên thực tế, một xu hướng kỹ thuật mới ra đời - xu hướng phântán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin trên cơ sở mạng máy tính. Vì vậy nếu chúng ta ngồi trước máy vi tính có nối mạng (LAN, WAN, Internet, …) thì hầu như chúng ta có được mọi thứ. Chúng ta có thể trao đổi thông tin, quản lý toàn bộ nhân sự của một đơn vị với nhiều chi nhánh trên toàn quốc hoặc ở các quốc gia khác nhau, chúng ta có thể ở nhà để đăng ký vé máy bay, vé tàu xe, mua hàng tại siêu thị, thanh toán tiền qua hệ thống E-Banking của ngân hàng, … Song để khai thác có hiệu quả hệ thống, vấn đề quan trọng là chiến lược khai thác và sử dụng các tài nguyên dùng chung như thế nào ? Chiến lược khai thác các tài nguyên dùng chung này là chức năng cũng như đối tượng nghiên cứu của các hệ tin học phân tán. Trong thực tế, hệ tin học phântán với những nguyên lý, phương pháp của nó đã và đang được nhiều người quan tâm để có thể vận dụng trong quá trình tác nghiệp của mình. Hiện tại, các nội dung mang tính lý thuyết nguyên lý của hệ tin học phântán còn nhiều vấn đề chưa được giải quyết triệt để và đang là mục tiêu khám phá của nhiều nhà nghiên cứu về công nghệ thông tin. Trong phạm vi của bài tiểuluận này, với những kiến thức mà tôi đã được học, đọc cũng như tự tìm hiểu thêm từ sách báo và mạng Internet, tôi xin trình bày hai nội dung theo trình tự như sau: 67 Điềukhiểnđồngthờibằngcơchếthencài 677 Bài toán sử dụng bộ quản lý khoá cơ bản và những điểm cần cải tiến. Với một lĩnh vực còn mới mẻ, đa dạng và phức tạp như trên vì vậy việc tìm hiểu của tôi còn nhiều hạn chế. Kính mong nhận được sự góp ý, định hướng của Thầy giáo Lê Văn Sơn và các bạn cùng lớp để tôi có thể tiếp tục nghiên cứu và đạt được kết quả tốt hơn trong thời gian tới. Xin chân thành cảm ơn ! Võ Minh Trang – Khoa học máy tính Khóa 24 -2- TiểuluậnHệPhânTán–ĐiềukhiểnđồngthờibằngcơchếthencàiPHẦN I ĐIỀUKHIỂNĐỒNGTHỜIBẰNGCƠCHẾTHENCÀI I. Tổng quan về cơchếthencài Khi có nhiều giao tác đang được thực thi đồngthời trên những tiến trình khác nhau (trong những bộ xử lý khác nhau), một số cơchế là cần thiết để giữ chúng không cho xâm nhập vào các tiến trình khác. Thuật toán điềukhiểnđồngthời được sử dụng rộng rãi nhất là then cài. Trong trường hợp đơn giản nhất, khi một tiến trình cần đọc hay ghi một tập tin giống như một nhiệm vụ của giao tác, thì trước tiên nó phải khoá (cài then) tập tin đó. Thencàicó thể được dùng như một bộ quản lý khoá tập trung riêng lẽ, hay với một bộ quản lý khoá cục bộ trên từng máy để quản lý các tập tin cục bộ. Trong cả hai trường hợp, bộ quản lý khoá bao gồm một danh sách các tập tin bị khoá, và từ chối tất cả mọi cố gắng càithen tập tin mà tập tin đó đã thật sự bị khoá bởi một tiến trình khác. Khoá được sinh ra và được giải thoát một cách tự động bởi hệ thống các giao tác, không phụ thuộc vào hành động của lập trình viên. Sự sắp xếp cơ bản này là hạn chế quá mức và có thể được cải tiến bằng cách phân biệt khoá đọc và khoá ghi. Nếu một khoá đọc được cài đặt trên một tập tin, những khoá đọc khác được chấp nhận. Khoá đọc được cài đặt để làm chắc chắn rằng tập tin sẽ không thay đổi, nhưng nó không có lý do nào để ngăn cấm những giao tác khác không được đọc những tập tin này. Ngược lại, khi một tập tin bị khoá quyền ghi, không có bất kỳ loại khoá nào khác được chấp nhận. Như vậy, khoá đọc bị chia sẽ, nhưng khoá ghi chỉ là duy nhất. Để đơn giản, chúng ta giả sử rằng một đơn vị của thencài là một tập tin hoàn chỉnh. Trong thực tế, nó có thể là một mục nhỏ, giống như một bản ghi riêng lẻ hay một trang riêng lẻ, hoặc có thể là một mục lớn, giống như một cơ sở dữ liệu hoàn chỉnh. Vấn đề về độ quy mô của mục để khoá được gọi là tính chất của then cài. ,8 Bằng cách không cần đánh dấu một tiến trình mà tiến trình đó muốn dùng phần cuối cùng của tập tin chỉ bởi vì có một vài tiến trình khác đang sử dụng phần đầu. Nói theo cách khác, một cơchếcàithen tốt đòi hỏi có nhiều khoá, là nhiều tốn kém và có nhiều khả năng dẫn đến sự bế tắc. II. Cơchếthencài Một giao dịch nào đó đang thực hiện phép thencài trên một đối tượng muốn dà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 qui 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àithen 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ếthencài cho phép một giao dịch có thể giải phóng đối tượng mà nó đã cài then. Võ Minh Trang – Khoa học máy tính Khóa 24 -3- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài 19#:; Một trong những giải pháp đơn giản để đạt được trật tự hoá gắn bó thể hiện ở chổ bắt buộc phải sử dụng trật tự hoá 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. 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àithen công việc truy cập đến các đối tượng. Điều đó chỉ cho phép thực hiện song song đố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ực hiện càithen ở mức độ thấp hơn mức giao dịch. '<=$>?@ Các quy tắc truy cập đối tượng được chú ý. Đó là tính hợp thức của việc truy cập. Nội dung của quy tắc này như sau: Một giao dịch thay đổi 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 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 ba hàm nguyên thuỷ trên đối tượng e: STT Tên hàm Thuyết minh 1 v_doc(e) Sử dụng khi muốn có được quyền đọc e theo kiểu chia sẽ. 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àithen bởi cùng giao dịch này. Một giao dịch gọi là phát triển nếu: + 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àithen bởi giao dịch theo kiểu tương thích với phép toán. + Không có giao dịch nào càithen đượ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 sẽ. + 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 thencài được sử dụng để hạn chế một lớp các trật tự hoá có khả năng được thực hiện. Một trật tự hoá được gọi là hợp thức nếu: + Đối tượng được một giao dịch càithen theo kiểu chia sẽ 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. + Một đối tượng bị càithen theo kiểu loại trừ thì không bị bất kỳ thencài mới nào nữa. Do vậy, mọi cố gắng càithen không phù hợp với các điều kiện tương hỗ nêu trên đều phải chờ (bị làm chậm lại) cho đến khi mở then. Võ Minh Trang – Khoa học máy tính Khóa 24 -4- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài ABC Một giao dịch được gọi là tốt, nếu nó sử dụng các thencài phù hợp với đặc điểm của chúng. Một trật tự hoá được gọi là hợp thức, nếu các thencài hoạt động phù hợp với các đặc điểm này. 2$D'%$ Xem xét một giao dịch hình thành hợp thức bằng cách kiểm tra hai điều kiện: + Toàn bộ đối tượng bị càithen vẫn ở trong tình trạng càithen cho đến cuối giao dịch. + Không cóthencà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. Điều kiện này thể hiện ở chổ là dãy các phép toán trên các thencài được phân tích thành hai pha nối tiếp nhau. Một pha mà trong đó các đối tượng bị cài then, còn pha kia chúng được mở then. Toàn bộ trật tự hoá 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ự hoá 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ự hoá hợp thức của M là không gắn bó. Để hiểu rõ hơn, ta xem xét các ví dụ sau. 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 ước rằ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àithen theo kiểu chia sẽ cho mỗi một đối tượng trước khi đọc, mở then diễn ra ở cuối của giao dịch nà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: là giao dịch đọc gắn bó của tập hợp {a,b,c}. Ví dụ 2: Quản lý các tài khoản trong 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 một bản ghi của cở sở dữ liệu. 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 cơ sở dữ liệu 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, chúng ta phải cócơ sở dữ liệu 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 Võ Minh Trang – Khoa học máy tính Khóa 24 -5- v_doc(a) v_doc(b) doc(a) doc(b) v_doc(c) doc(c) giai_phong(a) giai_phong(b) giai_phong(c) TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài đó cũng đồng nghĩa với việc đảm bảo trong tài khoản của người sủ dụng không bao giờ có giá trị bằng 0 hay giá trị âm. Bây giờ chúng ta hãy nghiên cứu vấn đề quản lý truy cập thông tin tài khoản cho phép đảm bảo được tính gắn bó. Sau đâ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 T 1 Giao dịch T 2 Giao dịch U v_viet(A) A:= A - P 1 giai_phong(A) v_viet(B) B:= B + P 1 giai_phong(B) v_viet(A) A:= A – P 2 v_viet(B) giai_phong(A) B:= B + P 2 giai_phong(B) v_viet(A) A:= (1+t)*A v_viet(B) B:= (1+t)*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à T 2 và U đều ở hai pha và T 1 không có hai pha. Sau đây là hai trật tự hoá hợp thức S 1 và S 2 xuất phát từ việc thực hiện song song của T 1 và U và T 2 và U 2 . S 1 (T 1 ,U) S 2 (T 2 ,U) T 11 : v_viet(A) T 12 : A:= A – P 1 T 13 : giai_phong(A) U 1 : v_viet(A) U 2 : A:= (1+t)*A U 3 : v_viet(B) U 4 : B:= (1+t)*B U 5 : giai_phong(B) T 14 : v_viet(B) T 15 : B:= B + P 1 U 6 : giai_phong(A) T 16 : giai_phong(B) T 21 : v_viet(A) T 22 : A:= A – P 2 T 23 : v_viet(B) T 24 : giai_phong(A) U 1 : v_viet(A) U 2 : A:= (1+t)*A T 25 : B:= B + P 2 T 26 : giai_phong(B) U 3 : v_viet(B) U 4 : B:= (1+t)*B U 5 : giai_phong(B) U 6 : giai_phong(A) Như vậy, ta kiểm tra rằng S 1 dẫn đến trạng thái không gắn bó, U thực hiện trên các giá trị không gắn bó của B và rằng S 2 là tương đương với trật tự hoá tuần tự S 2 (T 2 ,U). Võ Minh Trang – Khoa học máy tính Khóa 24 -6- TiểuluậnHệPhânTán–ĐiềukhiểnđồngthờibằngcơchếthencàiPHẦN II SỬ DỤNG BỘ QUẢN LÝ KHÓA CƠ BẢN VÀ NHỮNG ĐIỂM CẦN CẢI TIẾN I. Tổng quan Như đã nói ở phần trên, điềukhiểnđồngthời giải quyết các tính chất biệt lập và nhất quán của giao dịch. Cơchếđiềukhiểnđồngthờiphântán của một hệ quản trị cơ sở dữ liệu phântán bảo đảm rằng tính nhất quán của cơ sở dữ liệu sẽ được duy trì trong môi trường phântán nhiều người dùng. Nếu các giao dịch đã nhất quán nội tại (nghĩa là không vi phạm bất kỳ ràng buộc nhất quán nào), thế thì để có thể đạt được mục tiêu này, cách đơn giản nhất là thực hiện lần lượt từng giao dịch một. Rõ ràng một chọn lựa như thế chỉ đáng chú ý về mặt lý thuyết và không được cài đặt trong bất kỳ một hệ thống thực sự nào bởi vì nó làm giảm thiểu lưu lượng hệ thống. Mức độ đồngthờicó lẽ là một tham số quan trọng nhất trong các hệphân tán. Do vậy, cơchếđiềukhiểnđồngthờicố gắng tìm ra một phương án thích hợp, vừa duy trì được tính nhất quán của cơ sở dữ liệu, vừa duy trì được mức độ đồngthời cao. Các bộ phận quản lý thực hiện một giao dịch của Hệ quản trị CSDL Hình 1: Các bộ phận quản lý thực hiện giao dịch Trong đó: Transactions: Các giao dịch; Transaction manager: Bộ quản lý giao dịch Scheduler: Bộ lập lịch Data Manager: Bộ quản lý dữ liệu BEGIN_TRANSACTION, END_TRANSACTION: bắt đầu và kết thúc giao dịch Timestamp: Dấu thời gian LOCK/Release: Khóa/Giải phóng Võ Minh Trang – Khoa học máy tính Khóa 24 -7- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài Các bộ phận quản lý thực hiện các giao dịch phântán của hệ quản trị CSDL phân tán. Hình 2: Các bộ phận quản lý thực hiện giao dịch phântán Trước hết, chúng ta xem lại định nghĩa tính khả tuần tự một cách hình thức: Một lịch biểu S được gọi là khả tuần tự nếu và chỉ nếu nó tương đương tương tranh với một lịch biểu tuần tự. Tính khả tuần tự được định nghĩa như thế cũng được gọi là khả tuần tự theo tương tranh bởi vì nó được định nghĩa theo sự tương đương tương tranh. Từ đó, chúng ta có thể chỉ ra rằng chức năng cơ bản của bộ phậnđiềukhiểnđồngthời là tạo ra một lịch biểu khả tuần tự để thực hiện các giao dịch đang chờ. Lịch biểu của một giao dịch là một chuỗi các lệnh được thực hiện trong hệ thống theo thứ tự thời gian. Một lịch biểu đối với một tập các giao dịch phải bao gồm tất cả các lệnh của tất cả các giao dịch này, và phải bảo toàn thứ tự mà các lệnh xuất hiện trong mỗi giao dịch cá thể theo thứ tự đó. Lịch biểu tạo mối liên hệ ràng buộc giữa các giao dịch với nhau. Ví dụ về lịch biểu khả tuần tự: Có 3 giao dịch T1, T2, T3 (tương ứng với (a), (b), (c) BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION (a) BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION (b) BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION (c) Lịch biểu cho các giao dịch trên: Võ Minh Trang – Khoa học máy tính Khóa 24 -8- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài Schedule 1 x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3 Hợp lệ Schedule 2 x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Hợp lệ Schedule 3 x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Bất hợp lệ II. Sử dụng bộ quản lý khóa cơ bản Việc điềukhiểnđồngthờibằng khoá chốt là một cơchế thường dùng để giải quyết những vấn đề liên quan đến việc đồng bộ hoá dữ liệu truy cập dùng chung, đảm bảo dữ liệu dùng chung cho các thao tác tương tranh chỉ được truy xuất một lần một giao dịch, mỗi phần tử dữ liệu đều có một khoá chốt kết hợp với chúng. Điều này được thực hiện bằng cách liên kết một khoá chốt với mỗi đơn vị khoá. Khoá này được giao dịch đặt ra trước khi nó truy xuất và được điều chỉnh lại vào lúc nó hết sử dụng. Hiển nhiên là một đơn vị khoá không thể truy xuất được nếu đã bị khoá bởi một giao dịch khác. Vì vậy, yêu cầu khoá của một giao dịch chỉ được trao nếu khoá đi kèm hiện không bị một giao dịch khác giữ. Bộ xếp lịch đảm bảo rằng chỉ duy nhất giao tác có thể giữ khoá chốt trong một thời điểm, và chỉ có một giao tác có thể truy xuất dữ liệu đó tại cùng một thời điểm. Khoá chốt được bộ xếp lịch (Schedule manager) dùng để đảm bảo tính khả tuần tự. Trước khi một giao tác có thể truy cập dữ liệu dùng chung, bộ xếp lịch sẽ khảo sát trạng thái khoá chốt của những dữ liệu này. Nếu không có giao tác nào khác đang giữ chúng thì bộ xếp lịch sẽ phát lệnh thông báo khoá dữ liệu này lại và sau đó các giao tác thực hiện các lệnh của mình trên dữ liệu đó. Nếu dữ liệu đang bị khoá bởi giao tác T2, thì giao tác này phải chờ cho đến khi nào T2 giải phóng khoá đó. Bởi vì chúng ta quan tâm đến việc đồng bộ hóa các thao tác tương tranh của các giao dịch tương tranh nên có hai loại khóa chốt được kèm với mỗi đơn vị khóa: Khóa đọc (Read Lock RL), và Khóa Ghi (Write Lock -WL). + RLi(x): khoá đọc trên phần tử dữ liệu x của giao tác Ti + WLj(x): khoá ghi trên phần tử dữ liệu x của giao tác Tj Hai khoá pli(x) và qlj(y) đụng độ nếu x=y, i≠j, Hai khoá đụng độ nhau nếu chúng khoá trên cùng một phần tử dữ liệu, chúng được phát sinh từ hai giao tác khác nhau và một trong hai thao tác là ghi. Một giao dịch T i đang muốn đọc một mục dữ liệu được chứa trong đơn vị khóa x sẽ nhận được một khóa đọc trên x (ký hiệu là rl i (x) và cũng tương tự như vậy với thao tác ghi. Tính tương thích của các thực thể khóa được mô tả trong bảng sau: RL i (x) WL i (x) RL i (x) Tương thích Không tương thích WL i (x) Không tương thích Không tương thích Võ Minh Trang – Khoa học máy tính Khóa 24 -9- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài -EFG+HFGI=CJK8. Qui tắc 1: Khi nhận được một thao tác pi[x] từ bộ quản lý giao tác (Transaction Manager, TM), bộ xếp lịch kiểm tra nếu pli[x] đụng độ với một vài qlj[x] được đặt trước đó. + Nếu đúng, nó sẽ trì hoãn pi[x] và buộc Ti chờ cho đến khi nó có thể đặt được khoá cần thiết. + Nếu không đụng độ, bộ xếp lịch (scheduler) sẽ đặt pli[x] và gởi pi[x] đến bộ quản lý dữ liệu (Data Manager, DM). Quy tắc này nhằm hạn chế hai giao tác truy xuất đồngthời một phần tử dữ liệu trong tình trạng đụng độ. Qui tắc 2: Mỗi khi bộ xếp lịch đặt khoá cho Ti, pli[x], nó không thể giải phóng khoá đó cho đến khi DM trả lời đã xử lý thao tác tương ứng của khoá, pi[x]. Qui tắc 3: Mỗi khi bộ xếp lịch đã giải phóng một khoá cho một giao tác, nó không thể lấy tiếp bất kỳ khoá nào cho giao tác đó. Quy tắc (3) được gọi là quy tắc hai giai đoạn, là nguồn gốc của khoá chốt hai giai đoạn. Trong các hệ thống dùng khoá, bộ xếp lịch (scheduler) chính là bộ quản lý khoá (lock manager, LM). Bộ quản lý giao dịch sẽ chuyển cho bộ quản lý khoá các thao tác cơ sở dữ liệu (đọc hoặc ghi) và các thông tin kèm theo (như mục dữ liệu cần truy xuất, định danh của giao dịch đưa ra yêu cầu). Sau đó, bộ quản lý khoá sẽ kiểm tra đơn vị khoá có chứa mục dữ liệu đó đã bị khoá hay chưa. Nếu đã khoá, và nếu thể thức khoá đó không tương thích với thể thức của giao dịch đang yêu cầu, thao tác sẽ bị hoãn lại. Ngược lại, khoá sẽ được đặt với thể thức mong muốn và thao tác này được chuyển cho bộ xử lý dữ liệu để truy xuất cơ sở dữ liệu thực sự. Sau đó, bộ quản lý giao dịch được thông tin về các kết quả thực hiện. Việc kết thúc giao dịch sẽ giải phóng các khoá của nó và làm khởi hoạt một giao dịch khác đang đợi truy xuất mục dữ liệu này. Thuật toán khoá chốt cơ bản {Các định nghĩa chuẩn bị cho các thuật toán được trình bày trong tiểu luận} Declare-type Operation: một trong số Begin-Transaction, Read, Write, Abort, hoặc Commit DataItem : một mục dữ liệu trong cơ sở dữ liệu phântán TransactionId: một giá trị duy nhất được gán cho mỗi giao dịch DataVal: một giá trị có kiểu dữ liệu cơ bản (nghĩa là số nguyên, số thực,…) SiteId: một đinh danh duy nhất cho vị trí Dbop: một bộ ba gồm {một phép toán trên cơ sở dữ liệu của ứng dụng} opn: Operation data: DataItem Võ Minh Trang – Khoa học máy tính Khóa 24 -10- [...]... Nguyên lý các hệcơ sở dữ liệu phântán (Tập 2), NXB Thống kê, 2000 [ 5 ] - J.Liedtke, Distributed System, University of Kalrsruhe, 2001 SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -21- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài MỤC LỤC Trang bìa ………………………………………………………… Trang 1 Lời mở đầu ………………………………………………………… Trang 2 Phần I: Điềukhiểnđồngthờibằngcơchếthencài ………………... bạn / SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -20- Tiểu luậnHệPhânTán – Điềukhiểnđồngthờibằngcơchếthencài TÀI LIỆU THAM KHẢO Tài liệu từ Sách, Báo: [ 1 ] – Bài giảng, Giáo trình HệPhânTán của PGS TS Lê Văn Sơn [ 2 ] – TS Lê Văn Sơn, Hệ tin học phân tán, NXB Đại học quốc gia Thành phố Hồ Chí Minh, 2002 [ 3 ] - TS Đỗ Phúc, Tài liệu môn học CSDL nâng cao – ĐHQG TP HCM [ 4 ] - Trần... này: + Thiết lập thời gian Timeout, nếu thời gian thực hiện giao tác vượt quá thời gian Timeout thì hủy bỏ giao tác hoặc thực hiện thuật toán kiểm tra bế tắc + Sắp xếp các mục dữ liệu và truy xuất chúng theo một thứ tự nhất định + Giảm bớt việc đồng hành các giao tác SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -19- Tiểu luậnHệPhânTán – Điềukhiểnđồngthờibằngcơchếthencài KẾT LUẬN Tất cả... 24 -12- Tiểu luậnHệPhânTán – Điềukhiểnđồngthờibằngcơchếthencài III Những điểm cần cải tiến của bộ quản lý Khóa cơ bản Thuật toán khóa được cho trong Thuật toán 1 được trình bày ở trên không đồng bộ hoá chính xác các thực thi giao dịch Điều này là do khi tạo ra các lịch biểu khả tuần tự, các thao tác khóa và giải phóng khóa cũng cần phải được điều phối Vì vậy chúng ta minh họa nó bằng ví... lệnh của các giao tác Nhiệm vụ của bộ xếp lịch 2 giai đoạn (Two phase locking, 2PL) là quản lý khoá chốt và điềukhiển giao tác khi nào lấy và khi nào giải phóng khoá SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -13- Tiểu luậnHệPhânTán – Điềukhiểnđồngthờibằngcơchếthencài 2PL nhằm đồng bộ hoá việc đọc và ghi Trước khi đọc mục dữ liệu x, phải khóa x (khóa do đọc) Trước khi ghi lên x, giao... Op then begin đặt khoá trên lu ở thể thức thích hợp gởi dop đến bộ xử lý dữ liệu end else đặt dop vào một hàng đợi cho lu end-if end Abort or Commit: begin gởi dop đến bộ xử lý dữ liệu SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -16- Tiểu luậnHệPhânTán – Điềukhiểnđồngthờibằngcơchếthencài end end-case Dpmsg: Begin Op ← pm.opn res ← pm.result T ← pm.tid If Op = Abort or Op = Commit then. .. gọi lệnh Abort + Điểm khoá (lock point) là thời điểm giao dịch đã nhận được tất cả các khoá nhưng chưa bắt đầu giải phóng khóa nào Vì thế điểm khóa xác định cuối giai đoạn tăng trưởng và đầu giai đoạn thu hồi của một giao tác SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -14- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài Tuy nhiên việc cài đặt Khóa 2PL gặp nhiều khó khăn vì bộ... nếu thao tác là uỷ thác hoặc huỷ bỏ SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -15- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài Toàn bộ thuật toán 2PL nghiêm ngặt được trình bày trong Thuật toán 2, thuật toán quản lý giao dịch để xếp lịch theo 2PL được trình bày trong Thuật toán 3 Thuật toán 2 Thuật toán quản lý khoá bằng phương pháp khoá chốt hai pha nghiêm ngặt (S2PL-LM)... khoá Hệ quả là ngoài các khoá đọc (dùng chung, shared) và khoá ghi (độc quyền, exclusive), chúng ta có thể định nghĩa một thể thức khoá SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -18- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài thứ ba: dùng chung có thứ tự (ordered shared) Khoá dùng chung có thứ tự của một đối tượng x bởi các giao dịch Ti và Tj mang ý nghĩa như sau: cho một... (2PL-TM) declare-var msg : Message dop : Dbop Op : Operaeion x : Dataltem T : TransactionId O : Dbop res : Dataval SOP : Opset begin SVTH: Võ Minh Trang – Khoa học máy tính Khóa 24 -17- TiểuluậnHệPhânTán–Điềukhiểnđồngthờibằngcơchếthencài 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 về cho ứng . Tiểu luận Hệ Phân Tán – Điều khiển đồng thời bằng cơ chế then cài ĐẠI HỌC ĐÀ NẴNG TIỂU LUẬN MÔN HỌC HỆ PHÂN TÁN ĐIỀU KHIỂN ĐỒNG THỜI. bằng cơ chế then cài PHẦN I ĐIỀU KHIỂN ĐỒNG THỜI BẰNG CƠ CHẾ THEN CÀI I. Tổng quan về cơ chế then cài Khi có nhiều giao tác đang được thực thi đồng thời trên