Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
0,94 MB
Nội dung
LỜI CẢM ƠN Trong suốt khóa học 2005 – 2009 trường Đại Học Dân Lập Hải Phòng với giúp đỡ quý thầy cô giáo viên hướng dẫn mặt, từ nhiều phía thời gian thực đề tài, nên đề tài em hoàn thành thời gian quy định Em xin gửi lời cảm ơn chân thành tới thầy giáo hướng dẫn Th.s Nguyễn Trịnh Đông tận tình hướng dẫn, giúp đỡ, tạo điều kiện để em hồn thành khóa luận Em xin gửi lời cảm ơn chân thành tới Bộ môn Công Nghệ Thông Tin tồn thể thầy khoa tồn thể thầy Trường giảng dạy kiến thức chuyên môn làm sở để em thực tốt luận văn tốt nghiệp tạo điều kiện thuận lợi để em hoàn thành khóa học Em xin chân thành cảm ơn ! Hải Phòng, ngày 28 tháng năm 2009 Sinh Viên Đặng Thị Hải MỤC LỤC MỤC LỤC LỜI GIỚI THIỆU CHƯƠNG 1: GIỚI THIỆU CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 CƠ SỞ DỮ LIỆU 1.1.1 Định nghĩa sở liệu 1.1.2 Các tính chất sở liệu 1.1.3 Hệ quản trị sở liệu 1.2 CƠ SỞ DỮ LIỆU PHÂN TÁN 1.2.1 Khái niệm sở liệu phân tán 1.2.2 Ưu nhược điểm hệ quản trị sở liệu phân tán 1.2.3 Các mức phân tán 1.2.4 Các đặc trưng suốt sở liệu phân tán 1.3 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.3.1 Khái niệm HQT-CSDL phân tán 1.3.2 Chức HQT-CSDL 1.3.3 Kiến trúc HQT-CSDL phân tán 1.3.4 Cách thức truy cập sở liệu từ xa 11 1.3.5 Cấu trúc tham khảo hệ sở liệu phân tán 12 CHƯƠNG GIỚI THIỆU GIAO TÁC PHÂN TÁN 14 2.1 Khái niệm giao tác 14 2.2 Các trạng thái giao tác 14 2.3 Các thuộc tính giao tác 15 2.3.1 Tính Nguyên tử (Atomicity) 15 2.3.2 Tính quán(Consistency) 16 2.3.3 Tính lập (Isolation) .17 2.3.4 Tính bền vững (Durability) .17 CHƯƠNG 3: TƯƠNG TRANH VÀ CẬP NHẬT DỮ LIỆU 18 3.1 TỔNG QUAN VỀ TƢƠNG TRANH 18 3.1.1 Vì phải thực tương tranh 18 3.1.2 Tính khả 20 3.1.3 Các lịch có khả khơi phục liệu 23 3.2 CÁC PHƢƠNG PHÁP ĐIỀU KHIỂN TƢƠNG TRANH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN .25 3.2.1 Các phương pháp điều khiển tưong tranh phân tán sở khóa 25 3.2.2 Điều khiển tương tranh dựa nhãn thời gian 37 3.2.3 Phương pháp đồ thị 40 3.2.4 Xử lý deadlock 42 3.2.5 Khôi phục hệ thống với điều khiển tương tranh 45 3.3 CÁC PHƢƠNG PHÁP TRUY CẬP DỮ LIỆU TRONG HỆ PHÂN TÁN .47 3.3.1 Các giao tác phân tán 47 3.3.2 Nghi thức truyền giao 2PC (2 Phase Commit) 48 3.3.3 Nghi thức truyền giao 3PC 53 3.4 Đánh giá hiệu phƣơng pháp điều khiển tƣơng tranh 57 3.4.1 Ưu khuyết điểm phương pháp 57 3.4.2 Các đặc điểm phương pháp 57 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 59 LỜI GIỚI THIỆU Cơ sở liệu phân tán mơ hình lưu trữ liệu quan trọng hệ thống thông tin lớn ngày phát triển Hiện nay, CSDL phân tán ứng dụng hầu hết hệ thống thông tin lĩnh vực ngân hàng, thương mại, giáo dục, doanh nghiệp … Đặc trưng CSDL phân tán có nhiều thao tác truy cập tới nhiều vị trí khác mạng để trao đổi liệu Do vậy, vấn đề xảy tương tranh q trình trao đổi thơng tin Trong hệ sở liệu phân tán việc điều khiển tương tranh toán quan trọng Trong đồ án tốt nghiệp em nghiên cứu tìm hiểu nội dung “Các phương pháp điều khiển tương tranh truy cập liệu sở đữ liệu phân tán” Nhằm hiểu rõ vấn đề tương tranh, cách thức điều khiển tương tranh truy cập liệu sở liệu phân tán để đảm bảo quán liệu có thao tác tác động lên sở liệu Đồ án chia thành chương: Chương 1: Tìm hiểu số đặc điểm sở liệu phân tán Chương 2: Giới thiệu thao tác truy cập đến sở liệu phân tán Chương 3: Timg hiểu phương pháp điều khiển tương tranh truy cập liệu sở liệu phân tán CHƢƠNG 1: GIỚI THIỆU CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 CƠ SỞ DỮ LIỆU 1.1.1 Định nghĩa sở liệu Cơ sở liệu tập hợp liệu có liên quan với nhau, lưu trữ máy tính, có nhiều người sử dụng tổ chức theo mơ hình Dữ liệu kiện ghi lại có ý nghĩa 1.1.2 Các tính chất sở liệu - Một sở liệu biểu thị khía cạnh giới thực Những thay đổi giới thực phải phản ánh trung thực vào sở liệu - Một sở liệu tập hợp liệu liên kết với cách logic mang ý nghĩa cố hữu - Một sở liệu thiết kế phổ biến cho mục đích riêng Nó có nhóm người sử dụng có chủ định có số ứng dụng xác định phù hợp vói mối quan tâm người sử dụng 1.1.3 Hệ quản trị sở liệu Một hệ quản trị sở liệu tập hợp chương trình giúp cho người sử dụng tạo ra, trì khai thác sở liệu hệ thống phần mềm phổ dụng, làm dễ trình định nghĩa, xây dựng thao tác sở liệu cho ứng dụng khác 1.2 CƠ SỞ DỮ LIỆU PHÂN TÁN Hệ sở liệu phân tán phát triển dựa sở liệu mạng máy tính Cơ sở liệu phân tán gồm nhiều sở liệu tích hợp lại với thơng qua mạng máy tính để trao đổi liệu, thông tin… Cơ sở liệu tổ chức lưu trữ vị trí khác mạng máy tính chương trình ứng dụng truy cập vào liệu điểm khác 1.2.1 Khái niệm sở liệu phân tán Vì u cầu cơng ty, doanh nghiệp, đơn vị kinh doanh… vấn để tổ chức kinh doanh cho kinh doanh có hiệu nắm bắt thông tin nhanh sở công ty điểm xa xây dựng hệ thống làm việc sở liệu phân tán phù hợp với xu hướng Cơ sở liệu phân tán nhằm mục đích đáp ứng cho việc lưu trữ xử lý liệu cho tổ chức, công ty thời đại liệu cần phải cập nhật lưu trữ nhiều vị trí địa lý khác Cơ sở liệu phân tán tập hợp liệu logic thuộc hệ thống trải rộng nhiều điểm mạng máy tính Như có vấn đề sở liệu phân tán với tầm quan trọng tương đương nhau: - Việc phân tán: Trong thực tế liệu khơng đặt vị trí sở để phân biệt sở liệu phân tán vói sở liệu tập trung sở liệu đơn lẻ - Liên quan logic: lưu trữ nhiều vị trí khác có quan hệ với nhau, truy xuất vị trí theo giao diện chung 1.2.2 Ƣu nhƣợc điểm hệ quản trị sở liệu phân tán 1.2.2.1 Ưu điểm Có nhiều nguyên nhân dẫn đến sử dụng sở liệu phân tán cơ sở liệu phân tán có ưu điểm sau: - Lợi điểm tổ chức tính kinh tế: Tổ chức phân tán nhiều chi nhánh dùng sở liệu phân tán phù hợp với tổ chức kiểu - Tận dụng sở liệu sẵn có: Hình thành sở liệu phân tán từ sở liệu tập trung có sẵn địa phương - Thuận lợi cho nhu cầu phát triển: Xu hướng dùng sở liệu phân tán cung cấp khả phát triển thuận lợi giảm xung đột chức đơn vị tồn giảm xung đột chương trình ứng dụng truy cập đến sở liệu - Giảm chi phí truyền thơng: Trong sở liệu phân tán chương trình ứng dụng đặt địa phương giảm bớt chi phí truyền thông thực khai thác liệu vị chỗ - Tăng số công việc thực hiện: Cơ sở liệu phân tán có nhiều thuận lợi việc phân tán liệu tạo trình ứng dụng phụ thuộc vào tiêu chuẩn mở rộng vị trí làm cho nơi hỗ trợ lẫn Do tránh tượng tác nghẽn cổ chai mạng truyền thông dịch vụ thơng thường tồn hệ thống 1.2.2.2 Nhược điểm - Kinh ngiệm thiết kế ứng dụng chưa nhiều tồn nhiều vấn đề cần giải - Các vấn đề sở liệu phân tán phức tạp nhiều so với sở liệu tập trung, đặc biệt vấn đề cập nhật liệu xử lý gặp lỗi - Vấn đề truyền thơng: Bảo đảm an tồn thơng tin chọn cấu hình mạng cho phù hợp - Vấn đề đồng liệu - Vấn đề an tồn liệu: Nếu khơng có chế bảo vệ hợp lý có khả liệu không mong muốn truy xuất 1.2.3 Các mức phân tán 1.2.3.1 Mức tập trung Toàn sở liệu đặt nơi tất yêu cầu người dùng xử lý nơi lưu trữ CSDL Ưu điểm: Việc quản lý tương đối dễ dàng Nhược điểm: Máy lưu trữ sở liệu phải có cấu hình đủ mạnh 1.2.3.2 Mức liệu nơi, xử lý nhiều nơi Giả sử máy tính mạng phát yêu cầu liệu u cầu gửi Server Sau liệu chuyển từ Server đến máy tính để xử lý liệu Ưu điểm: Đáp ứng liệu nhanh, máy lưu trữ liệu không cần phải có cấu hình mạnh Nhược điểm: Tăng lưu lượng đường truyền liệu 1.2.3.3 Mức liệu nhiều nơi xử lý nhiều nơi Chia sở liệu DB ban đầu thành đoạn liệu (DB1, DB2, …, DBi, …, DBn) lưu trữ máy tính, địa điểm khác Khi máy tính thứ i có u cầu liệu trình diễn sau: Tìm kiếm xem liệu lưu trữ máy - Xử lý liệu nơi tìm - Sau xử lý xong chuyển kết xử lý máy thứ i có u cầu ban đầu Ưu điểm: Xử lý cơng việc nhanh Nhược điểm: Rất khó khăn cho việc quản trị liệu 1.2.4 Các đặc trƣng suốt sở liệu phân tán Khái niệm suốt: suốt che giấu hoạt động phức tạp bên hệ thống sở liệu phân tán, làm cho người sử dụng có cảm giác làm việc với sở liệu tập trung 1.24.1 Trong suốt phân tán - Khái niệm: Trong suốt phân tán cho phép sở liệu phân tán xử lý sở liệu tập trung Người dùng quan tâm đến: + Cơ sở liệu phân đoạn + Các đoạn liệu lưu trữ nơi - Các mức suốt phân tán: + Trong suốt phân đoạn: Cơ sở liệu ban đầu phân chia thành đoạn liệu Nhưng truy vấn người dùng để khai thác liệu khơng phải tên đoạn chứa liệu cần lấy + Trong suốt định vị: Trong truy vấn người dùng để khai thác liệu người dùng phải tên đoạn liệu chứa liệu cần lấy + Trong suốt ánh xạ địa phương: Trong truy vấn người dùng để khai thác liệu bắt buộc người dùng phải tên đoạn liệu cần lấy tên site lưu trữ đoạn liệu 1.2.4.2 Trong suốt giao tác - Khái niệm giao tác: Bao gồm nhiều phép toán(Select, Insert, Update, Delete …) thực nhiều liệu - Trong suốt giao tác bao gồm truy vấn phân tán giao tác phân tán + Truy vấn phân tán: Là truy vấn đến liệu đoạn liệu khác + Giao tác phân tán: Là bao gồm nhiều lệnh thực nhiều site liệu lúc 1.2.4.3 Trong suốt hư hỏng Các đoạn liệu định vị (luu trữ) trạm làm việc khác (có thể đoạn liệu định vị trạm nhiều đoạn liệu định vị trạm hay ngiều đoạn liệu đuwocj định vị tên nhiều trạm) tùy thuộc vào nhu cầu phân tán liệu Nếu liệu trạm bị hỏng khơng làm ảnh hưởng đến trạm khác Khi truy vấn để lấy liệu lấy trạm khác 1.3 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.3.1 Khái niệm HQT-CSDL phân tán Hệ quản trị sở liệu phân tán phần mềm có chức quản trị sở liệu phân tán thực thao tác suốt đến người sử dụng 1.3.2 Chức HQT-CSDL - Nhận, phân tích cú pháp truy vấn - Chuyển đổi truy vấn SQL thành biểu thức đại số quan hệ - Tối ưu hóa truy vấn để có cách truy cập hiệu Tức tối ưu hóa phép tốn đại số quan hệ để có thời gian xử lý nhanh - Phải có giao diện nhập xuất liệu - Định dạng liệu phù hợp với định nghĩa - Cung cấp chức cho người quản trị CSDL 1.3.3 Kiến trúc HQT-CSDL phân tán 1.3.3.1 Tính độc lập liệu Cơ sở liệu hệ thống cập nhật q trình vận động Một tập thơng tin lưu trữ sở liệu thời điểm gọi thể sở liệu Thiết kế toàn sở liệu gọi sơ đồ sở liệu Tùy theo mức độ trừu tượng sở liệu mà sơ đồ hệ sở liệu có nhiều mức Mức thấp gọi sơ đồ vật lý, sơ đồ định nghĩa cấu trúc liệu Mức cao sơ đồ logic xác định cấu trúc logic liệu Tính độc lập liệu tương ứng gồm mức: - Độc lập mặt vật lý: khả có sửa đổi sơ đồ vật lý chương trình ứng dụng khơng cần phải viết lại - Độc lập mặt logic: khả có sửa đổi sơ đồ logic chương trình ứng dụng khơng cần phải viết lại Khái niệm độc lập liệu tương tự khái niệm kiểu liệu trừu tượng ngôn ngữ lập trình Chúng ẩn chi tiết thực người sử dụng, mà cho phép người sử dụng tập trung vào cấu trúc chung chi tiết ứng dụng mức thấp 1.3.3.2 Kiến trúc hệ sở liệu phân tán - Có nhiều máy tính gọi trạm (nút – node) - Các trạm phải kết nối kiểu mạng truyền thông để truyền liệu lệnh trạm - Phần mềm quản lý hệ sở liệu phân tán: i, Xử lý liệu (DP – Data Processor): Quản lý liệu cục (địa phương) trạm ii Xử lý ứng dụng (AP – Application Processor): Thực chức phân tán, truy cập thông tin phân tán từ thư mục CSDL phân tán xử lý yêu cầu truy cập đến nhiều trạm iii, Phần mềm truyền thơng Kiến trúc đơn giản hóa 10 Tiếp cận hồn tồn phân tán Tại vị trí chứa đồ thị WFG cục nhiên đồ thị thêm node gọi Tex biểu diễn giao tác bên ngồi vị trí Ví dụ là: Vị trí Vị trí Thuật tốn dị tìm deadlock phân tán: Giả sử vị trí Si có đồ thị với chu trình chứa node Tex: Tkn đợi để chiếm giữ đơn vị liệu từ vị trí Sj Sau phát chu trình vị trí Si gửi thơng báo đến vị trí Sj dị tìm deadlock có chứa thơng tin chu trình Khi Sj cập nhật đồ thị tìm kiếm xem có tồn chu trình hay khơng Nếu có deadlock xảy thực khơi phục deadlock Nếu chu trình có chứa node Tex Sj lại truyền thơng báo đến vị trí Sk thích hợp khác tiếp tục dị tìm deadlock Nếu khơng có dừng dị tìm deadlock 3.2.5 Khơi phục hệ thống với điều khiển tƣơng tranh Trong hệ thống có nhiều lý xảy hỏng hóc chẳng hạn: đĩa hỏng, điện, phần mềm lỗi, không liên lạc đường truyền… tất làm mát liệu Mỗi hỏng hóc có nhiều cách giải khác nhiên sau khơi phục giao tác tương tranh phải tiếp tục để khơng xảy tình trạng mát liệu liệu không quán Yêu cầu có hỏng hóc khơng có đơn vị liệu cập nhật Vì truớc liệu cập nhật phải bảo đảm liệu bàn giao 3.2.5.1 Khôi phục dựa sổ nhật ký thao tác Ghi lại tất cập nhật nhật ký thao tác gọi log Log ghi lại ghi chứa công việc cập nhật sở liệu Một ghi gồm: - Chỉ mục giao tác (Transaction ID): Cho biết giao tác thực thao tác cập nhật 45 - Chỉ mục đơn vị liệu (Data Inhãn ID): Đơn vị liệu cập nhật - Giá trị trước cập nhật - Giá trị sau cập nhật Hoặc log lại kiện trình xử lý thao tác trạng thái bắt đầu, commit abort giao tác Khi ghi gồm: - : giao tác Ti bắt đầu - : giao tác Ti thực thao tác ghi đơn vị liệu Xj giá trị trước sau V1 V2 - : giao tác Ti bàn giao - : giao tác Ti khôi pục lại trạng thái ban đầu Trước cập nhật ta ghi vào log ghi mơ tả q trình cập nhật Dựa điểm kiểm tra Khi hệ thống hỏng hóc xảy hệ thống tra cứu đến log để xác định giao tác cần thiết phải quay lại trạng thái trước (undo) Có thể duyệt lại tồn log để xác định, để giảm bớt chi phí không cần thiết hệ thống sử dụng checkpoint Thêm vào log ghi checkpoint Nếu giao tác Ti bàn giao trước checkpoint cập nhật Ti ghi vào sở liệu trước checkpoint Vì thời điểm khơi phục khơng cần thiết phải thực redo Ti Vì có hỏng hóc xảy cần lần ngược lại để xác định xem log thời điểm checkpoint gần 3.2.5.2 Khôi phục liệu thực tương tranh Khi cuộn lại giao tác hỏng ta sử dụng sổ nhật ký thao tác Với ghi log có dang: đơn vị liệu X hồi phục lại giá trị cũ trước V1 Cứ tìm thấy ghi kết thúc Nếu sử dụng nghi thức khóa pha để điều khiển tương tranh việc khóa đơn vị liệu kết thúc bàn giao cuộn lại Vì giao tác có cuộn lại khơng có giao tác giao tác khác cập nhật đơn vị liệu này, việc khơi phục lại giá trị cũ không ảnh hưởng đến giao tác khác Trong hệ thống xử lý giao tác tương tranh đòi hỏi log phải có ghi checkpoint log có dạng với L danh sách giao tác thực thời điểm checkpoint 46 Thuật tốn khơi phục: a Bắt dầu khơi phục hệ thống cần cấu trúc danh sách: - Danh sách Undo-list: gồm giao tác hủy bỏ - Danh sách Redo-list: gồm giao tác cho khoiử động lại Đầu tiên danh sách gán rỗng Cúnh ta lần ngược xem xét ghi log gặp đầu tiên: + Nếu gặp ghi thêm Ti vào danh sách Redo-list + Nếu gặp ghi Ti không thuộc Redo-list thêm vào danh sách Undo-list Sau duyệt tất ghi Với Ti L Ti khơng thuộc vào danh sách Redo-list thêm Ti vào danh sách Undo-list b Sau tạo danh sách tiếp tục khôi phục sau: - Duyệt ghi log thực thao tác hủy bỏ với ghi giao tác Ti Undo-list Việc duyệt ngừng lại hoàn toàn gặp ghi Các ghi log giao tác redo-list bỏ qua pha - Định vị lại toàn ghi log - Duyệt lại theo chiều xuôi ghi log thực thao tác khởi động lại với ghi giao tác Ti Redo-list Các ghi log giao tác Undo-list bỏ qua pha Trong thuật toán ta duyệt ngược log để thực thao tác Undo cho giao tác Undo-list Sau duyệt xi để thực thao tác Redo Redo-list Việc thực phải thứ tự không bẫn đến sai 3.3 CÁC PHƢƠNG PHÁP TRUY CẬP DỮ LIỆU TRONG HỆ PHÂN TÁN 3.3.1 Các giao tác phân tán Mỗi vị trí có chứa hệ thống con: - TM (transaction manager): Quản lý việc thực giao tác mà truy xuất liệu đến liệu vị trí Các giao tác truy xuất liệu vị trí nhiều vị trí Mỗi TM thực nhiệm vụ sau: + Duy trì log (nhật ký giao tác) cho việc khôi phục liệu + Tham gia vào sơ đồ điều khiển tương tranh thích hợp để điều phối thực tương tranh giao tác thực vị trí - TC (transaction coordinator): điều phối việc thực giao tác mà khởi tạo vị trí Với giao tác TC thực nhiệm vụ sau: + Việc bắt đầu thực giao tác 47 + Chia giao tác toàn cục thành giao tác giao tác cục phân phối chúng thực vị trí thích hợp + Việc điều phối kết thúc giao tác bàn giao khơi phục lại tất vị trí Nếu bảo đảm tính chất nguyên tử, tất vị trí mà giao tác T thực phải có chung kết cuối Điều có nghĩa T bàn giao tất cả, khơi phục tất vị trí Để đảm bảo tính chất điều phối giao tác T phải thực nghi thức thỏa thuận Cấu trúc hệ thống TC TM Một nghi thức đơn giản sử dụng rộng rãi nghi thức truyền giao pha, ngồi cịn có nghi thức truyền giao pha khắc phục nhược điểm nghi thức truyền giao pha nhiên phức tạp nghi thức pha 3.3.2 Nghi thức truyền giao 2PC (2 Phase Commit) Có T giao tác khởi tạo Si điều phối giao tác TC Si Ci Khi T hoàn tất thực lệnh nó, nghĩa tất vị trí mà T có thực báo cho Ci biết hồn tất, Ci bắt đầu nghi thức 2PC - Pha 1: Ci thêm vào ghi vào log (sổ nhật ký giao tác) Sau Ci gửi thơng điệp “Prepare T” cho tất vị trí thành viên mà T thực Sau nhận thông điệp này, TM vị trí thành viên xác định: + Nếu khơng commit: thêm ghi vào log gửi thông điệp “Vote Abort” cho Ci + Nếu commit: thêm ghi vào log gửi thông điệp “Vote Commit” cho Ci - Pha 2: Khi Ci nhận câu trả lời từ vị trí thời gian chờ đợi vị trí vượt q thừoi gian quy định Ci định T bàn giao hay khôi phục lại + T commit nếu: Ci nhận thông điệp “Vote Commit” 48 + T abort nếu: Ci nhận thơng điệp “Vote Abort” Và sau Ci thêm ghi vào log sau gửi thơng điệp “Global Commit” “Global Abort” cho tất vị trí thành viên Mỗi vị trí nhận thông điệp ghi vào log minh gửi thông điệp phản hồi ACK cho Ci biết định cuối T tiến hành bàn giao hặc hủy bỏ tương ứng Sau Ci nhận tát thông điệp ACK thêm vào log ghi Tùy theo vào cấu hình mạng mà ta có kiểu truyền giao theo nghi thức pha sau 3.3.2.1 Truyền giao 2PC trung tâm Nghi thức có truyền thơng điều phối vị trí thành viên, cịn vị trí thành viên khơng có đường truyền chúng Ta có cấu trúc truyền thơng sau: Cấu trúc truyền thông 2PC trung tâm 3.3.2.2 Truyền giao 2PC tuyến tính Nếu mạng hình Bus ta dùng cách truyền giao tuyết tính: giả sử thứ tự vị trí 1,2,…,N Trong diều phối vị trí Ta truyền từ vị trí đến vị trí N pha 1, pha truyền ngược lại Trước hết điều phối gửi thơng điệp cho vị trí 2, vị trí trả lời chưa sẵn sàng vị trí gửi thơng điệp “Vote Abort” (VA) cho vị trí 3, vị trí tự động Abort Ngược lại cị trí gửi “Vote Commit” (VC) cho vị trí Tiếp tực đến vị trí N Kết thúc pha Nếu vị trí N định bàn giao gửi N-1 thơng điệp “Global Commit T” (GC), ngược lại gửi thông điệp “Global Abort T” (GA) 49 Prepare GC/GA Pha VC/VA VC/VA VC/VA GC/GA GC/GA GC/GA Pha Cấu trúc truyền thơng 2PC tuyến tính 3.3.2.3 Truyền giao 2PC phân tán Nghi thức tất vị trí thành viên có nối với nhau, pha tất độc lập định abort hay commit Bộ điều phối gửi thơng điệp cho tất vị trí thành viên khác Mỗivị trí thành viên gửi định Yes/No cho tất vị trí khác vị trí điều phối Mỗi vị trí vào định vị trí khác mà định bàn giao hay khôi pục lại trạng thái ban đầu Trong nghi thức khơng cần pha Cấu trúc truyền thông 2PC phân tán 3.3.2.2 Trường hợp timeout Trong nghi thức này, điều phối có trạng thái sau: Init, Wait, Abort, Commit Các vị trí thành viên có trạng thái sau: Init, Ready, Abort, Commit 50 Trạng thái giao tác nghi thức 2PC Giả sử thực nghi thức truyền giao 2PC xảy tượng timeout - Bộ điều phối timeout: trạng thái timeout: Wait, Abort, Commit + Wait: điều phối đợi trả lời từ vị trí để đưa định Quyết định hủy bỏ gửi “Global Abort” cho tất vị trí + Abort hay Commit: trạng thái điều phối thủ tục bàn giao hủy bỏ hồn tất vị trí thành viên chưa Tiếp tục gửi “Global Commit” “Global Abort” đợi ACK - Vị trí thành viên timeout: có trạng thái xảy là: Init Ready + Init: vị trí thành viên đợi “prepare” điều phối Như điều phối bị hỏng trạng thái init => vị trí thành viên đơn phương hủy bỏ Nếu sau nhận thơng điệp “prepare” giải cách sau: đọc log tìm ghi abort gửi “vote Abort” bỏ qua thông điệp sau điều phối rơi vào trạng thái timeout – wait + Ready: vị trí thành viên gửi “Vote Commit” chưa nhận định từ điều phối Vị trí thành viên khơng thể tự định bàn giao hay hủy bỏ Ta gọi bị Blocked cho dến nhận thêm thông tin từ điều phối vị trí khác Trong trường hợp vị trí liên lạc với nhau: xảy timeout liên lạc với vị trí khác để đưa định Giả sử Pi timeout vị trí Pj khác trả lời : - Pj trạng thái Init: Pj chưa gửi định Pj chưa nhận thông điệp “prepare” => Pj trả lời cho Pi “Vote Abort” - Pj trạng thái Ready: Pj gửi “Vote Commit” đợi định tồn cục => Pj khơng giúp Pi - Pj trạng thái Abort Commit => Pj gửi cho Pi định “Vote Abort “ “Vote Commit” tương ứng Khi Pi thực sau: 51 - Pi nhận “Vote Abort” từ tất Pj => Pi chọn hủy bỏ - Pi nhận số “Vote Abort”, số ready => Pi chọn hủy bỏ khơng xảy bàn giao toàn cục - Pi nhận tất ready => Pi bị blocked => điều phối bị hỏng - Pi nhận tất “Global Commit” tất “Global Abort” Pi nhận định điều phối - Pi nhận số “Global Commit” “Global Abort” số khác ready => Một số vị trí nhận định điều phối số đợi 3.3.2.3 Đảm bảo tính quán liệu Giả sử trình thực nghi thức truyêng giao 2PC có vị trí bị hỏng Vấn đề làm đảm bảo tính quán liệu - Vị trí thành viên bị hỏng: Sau vị trí Sk khơi phục hoạt động trở lại ta phải xem xét log giao tác thực đến đâu xảy hỏng hóc Các trường hợp là: + log chứa “Commit T” => thực Redo(T) + log chứa “Abort T” => thự Undo(T) + log chứa “Ready T” phải xác định thêm tình trạng T Nếu Bộ điều phối cịn quan tâm đến T Commit hay Abort, Commit Redo(T), ngược lại Undo(T) Nếu điều phối khơng cịn gửi thơng điệp “Query Status T” cho tất vị trí hệ thống Sau nhận chắn có vị trí tìm log xác định xem T bàn giao hay hủy bỏ, vị trí thơng báo để Sk biết + log không chứa loại Abort, Commit, Ready Khi Sk hỏng trước nhận thông điệp “prepare” => Sk thực undo - Bộ điều phối bị hỏng: vị trí định việc thực T Tuy nhiên có trường hợp vị trí thành viên khơng thể định vị trí phải đợi khơi phục liệu trường hợp điều phối bị hỏng Những trường hợp co thể xảy ra: + Có vị trí mà log chứa “Commit T” vị trí nhận “Global Commit” T phải bàn giao + Có vị trí mà log chứa “Abort T” vị trí nhận “Global Abort” T phải Abort + Nếu có vị trí khơng chứa “Ready T” log điều phối bị hỏng chưa Commit T => định Abort T 52 + Tất vị trí ghi “Ready T” => chúng định commit hay abort mà phải đợi đén điều phối khôi phục liệu 3.3.3 Nghi thức truyền giao 3PC Gọi T giao tác khởi tạo vị trí Si điều phối giao tác Si Ci Nghi thức xây dựng để tránh trường hợp blocked - Pha 1: Ci thêm vào ghi vào log Sau Ci gửi thơng điệp “Prepare T” cho tất vị trí thành viên mà T thực Sau nhận thông điệp này, TM vị trí thành viên xác định: + Nếu khơng commit: thêm ghi vào log gửi thông điệp “Vote Abort” cho Ci + Nếu commit: thêm ghi vào log gửi thông điệp “Vote Commit” cho Ci - Pha 2: + Nếu Ci nhận “Abort T” không nhận đầy đủ khoảng thời gian quy định Ci định Abort Khi Ci thêm vào log ghi gửi thông điệp “Global Abort” cho vị trí thành viên + Nếu Ci nhận từ tất thành viên “Ready T” Ci định sơ precommit Sau thêm ghi vào log gử thông điệp “Precommit T” cho tất thành viên Mỗi thành viên nhận thông điệp từ Ci ghi vào log gửi thơng điệp ACK cho Ci Nếu abort tiến hành Abort sau nhận tất thơng điệp ACK thêm ghi vào log Nếu Precommit tiếp tục pha - Pha 3: sau nhận tất ACK từ thành viên Ci định commit Ci thêm ghi gửi thông điệp “Commit T” cho thành viên Các thành viên sau nhận thông điệp thêm ghi gửi thông điệp ACK cho Ci Sau nhận tất ACK Ci thêm ghi vào log 53 3.3.2.1 Trường hợp timeout Trong nghi thức này, trạng thái điều phối là: Init, Wait, Abort, Precommit, Commit Vị trí thành viên có trạng thái: Init, Ready, Abort, Precommit, commit Các trạng thái giao tác nghi thức truyền giao 3PC Giả sử thực nghi thức 3PC xảy tượng timeout - Bộ điều phối timeout: Có trạng thái timeout là: Wait, Precommit, Abort, Commit + Wait: đợi trả lời từ vị trí để đưa định => định Abort gửi “Global Abort” cho tất vị trí + Precommit: Bộ điều phối biết chắn thành viên trạng thái Ready => tiếp tục thêm ghi gửi “Global Commit” cho tất vị trí + Abort hay Commit: Bộ điều phối đẫ hồn tất Commit Abort chưa - Vị trí thành viên timeout: trạng thái xảy timeout: Init, Ready, Precommit + Init: đợi thông điệp “prepare” Coordinator => Coordinator bị hỏng trạng thái Init => đơn phương Abort + Ready: vị trí thành viên gửi “Vote Commit” chưa nhận định từ Coordinator => liên lạc với điều phối + Precommit: thành viên nhận “prepare commit” 54 3.3.2.2 Đảm bảo tính quán liệu Khi khơi phục liệu phải đảm bảo tính qn liệu - Vị trí thành viên bị hỏng: Sau vị trí thành viên Sk khơi phục trở lại hoặt động bình thường ta phải xem xét lại log để xác định thời điểm xảy hỏng hóc + log chứa : thực Redo(T) + log chứa : thực Undo(T) + log chứa : điều phối cịn quan tâm đến T Commit hay Abort Nếu Commit thực Redo(T), ngược lai Undo(T) - Vị trí thành viên bị hỏng: Ta sử dụng thuật toán sau: + Các thành viên chọn điều phối + Bộ điều phối (CNew) gửi thông điệp đến thành viên yêu cầu trả lời trạng thái T thục vị trí + Mỗi thành viên xác định trạng thái T vị trí vào log gửi cho CNew: Commit: log chứa Abort: log chứa Ready: log chứa ghi Precommit: log chứa ghi Not Ready: log không chứa không chứa + Dựa vào trả lời cảu thành viên mà CNew định Commit Abort Restart 3PC sau: Nếu có vị trí Commit =>Commit Nếu có vị trí Abort => Abort Nếu khơng có vị trí Commit khơng có vị trí Abort có vị trí Precommit => tiếp tục nghi thức 3PC gửi thơng điệp “Precommit” cho thành viên Cịn lại => Abort T 55 Thuật toán chọn điều phối CNew Giả sử thành viên có số hiêu xác định vị trí này, giả sử vị trí Si i giả sử điều phối có số hiệu lớn Khi điều phối bị hỏng tìm vị trí làm CNew đồng thời giúp vị trí thành viên nhận đâu điều phối hành Vị trí thành viên Si gửi thông điệp cho điều phối vượt qua thời gian t mà không thấy trả lời => điều phối bị hỏng => Si phải tìm CNew Si gửi thơng điệp “Chọn CNew ” cho vị trí có số hiệu lớn Nó đợi vị trí trả lời khoảng thời gian t - Nếu không nhận trả lời => Si gửi thông báo đến vị trí có số hiệu nhỏ thơng báo CNew - Nếu Si có nhận trả lời khoảng thời gian t’, thơng báo có vị trí có số hiệu cao chọn CNew Nếu thời gian t’ mà Si chưa nhận tiếp tục thông điệp khác từ CNew chứng tỏ vị trí có số hiêu cao bị hỏng Si lại phải Restart lại thuật toán 56 3.4 Đánh giá hiệu phƣơng pháp điều khiển tƣơng tranh 3.4.1 Ƣu khuyết điểm phƣơng pháp Phương pháp dựa sở khóa: - Phương pháp khóa pha: + Ưu điểm: Lịch tạo khả + Khuyết điểm: Có thể xảy tình trạng deadlock Có thể xảy tình trạng hủy bỏ hàng loạt - Phương pháp khóa pha nghiêm ngặt: + Ưu điểm: Lịch khả Tránh xảy hủy bỏ hàng loạt + Khuyết điểm: Có thể xảy tình trạng deadlock Dữ liệu phải chiếm giữ đến cuối Phương pháp dựa sở nhãn thời gian: + Ưu điểm: Lịch tạo khả đụng độ Tránh deadlock + Khuyết điểm : Phải Restart lại nhiều lần 3.4.2 Các đặc điểm phƣơng pháp Ta xét phương pháp điều khiển tương tranh: phương pháp dựa cở sở khóa phương pháp dựa nhãn thời gian Ta rút đặc điểm phương pháp sau: Có cách thực tương tranh: waiting (đợi) restart (khởi động lại) giao tác Phương pháp khóa dùng waiting, phương pháp nhãn thời gian dùng restarting Thứ tự nối tiếp giao tác xác định cách sau: thứ tự truy xuất phần tử liệu cách gán nhãn thời gian cho giao tác Với tất phương pháp tạo việc chờ đợi, cần phải có giải pháp cho vấn đề deadlock Giải pháp phát hay ngăn ngừa deadlock Trong việc giải deadlock ln u cầu việc khởi động lại giao tác 57 KẾT LUẬN Đồ án tìm hiểu, giới thiệu phương pháp điều khiển tương tranh hệ phân tán là: phương pháp dựa sở khóa phương pháp dựa nhãn thời gian Phương pháp dựa sở khóa thứ tự cặp đụng độ xác định thời điểm khóa cịn thuật toán dựa nhãn thời gian chọn lựa thứ tự theo cách giao tác đến trước Mỗi phương pháp có ưu khuyết điểm riêng Đồng thời giới thiệu cách khôi phục lại liệu xảy tương tranh dẫn đến hỏng hóc mà dẫn đến giao tác phải hủy bỏ Giới thiệu hai giao thức truyền giao nghi thức truyền giao pha nghi thức truyền giao pha (là nghi thức khắc phục nhược điểm nghi thức pha phức tạp nhiều) Đồ án nhiều thiếu sót kính mong nhận góp ý thầy cô bạn Em hi vọng kết đạt có ích cho việc xây dựng hệ phân tán đáp ứng nhu cầu ngày cao đảm bảo tính an tồn, tồn vẹn liệu 58 TÀI LIỆU THAM KHẢO [1] Thạc Bình Cường, Phân tích thiết kế hệ thống thơng tin, NXB Thống Kê HN [2] Thạc Bình Cường, Giáo trình sở liệu: lý thuyết thực hành, NXB Bưu điện Hà Nội, 2004 [3] Giáo trình sỏ liệu phân tán Khoa CNTT, ĐHKH TN, ĐHQG Hà Nội [4].Nguyễn Văn Định, Thuật tốn tìm kết nối tối ưu cho sở dũ liệu phân tán Báo cáo đại hội CNTT toàn Quốc, Khê Lải, 2007 [6] Phạm Thị Anh Lê , Cơ sở liệu phân tán NXB Bưu Điện HN [7] Nguyễn Tuệ, Nhập môn sở liệu NXB Giáo Dục [8] Đỗ Phúc, Chuyên đề sở liệu nâng cao [9].Chu Kỳ Quang, Phạm Văn Cừ, Tiêu chuẩn khả giao dịch tương tranh sử dụng ngữ nghĩa phép toán, 59 ... cập đến sở liệu phân tán Chương 3: Timg hiểu phương pháp điều khiển tương tranh truy cập liệu sở liệu phân tán CHƢƠNG 1: GIỚI THIỆU CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 CƠ SỞ DỮ LIỆU 1.1.1 Định nghĩa sở. .. Trong đồ án tốt nghiệp em nghiên cứu tìm hiểu nội dung ? ?Các phương pháp điều khiển tương tranh truy cập liệu sở đữ liệu phân tán? ?? Nhằm hiểu rõ vấn đề tương tranh, cách thức điều khiển tương tranh. .. liệu 23 3.2 CÁC PHƢƠNG PHÁP ĐIỀU KHIỂN TƢƠNG TRANH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN .25 3.2.1 Các phương pháp điều khiển tưong tranh phân tán sở khóa 25 3.2.2 Điều