Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
302 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VẤN ĐỀ XỬ LÝ GIAO DỊCH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN Môn học : CSDL Nâng cao Giảng viên : PGS.TS Nguyễn Hà Nam Học viên : Lê Ngọc Phú Nguyễn Huy Hoàng Hà Nội, 2012 MỤC LỤC LỜI MỞ ĐẦU .3 MỘT SỐ KHÁI NIÊM VỀ CSDL PHÂN TÁN KỸ THUẬT PHÂN TÁN CSDL XỬ LÝ GIAO DỊCH TRONG CSDL PHÂN TÁN GIAO THỨC 2PC (TWO PHASE COMMIT) ĐIỀU KHIỂN TƯƠNG TRANH TRONG CSDL PHÂN TÁN .10 Vấn đề xử lý giao dịch CSDL phân tán Lời mở đầu Như biết CSDL phân tán CSDL phân mảnh lưu trữ vị trí khác hệ thống Ở trạm có nhiều ứng dụng địi hỏi phải thực nhiều chương trình lúc thực nhiều tiến trình chương trình Một số trường hợp hai nhiếu tiến trình đọc thay đổi giá trị đối tượng không phép thực lúc chúng đưa kết khơng xác thực với thực tế Ngược lại khơng thay đổi liệu khơng quan tâm đến thứ tự đọc ghi liệu hệ điều hành yêu cầu đọc đồng thời.Khi có u cầu đọc liệu ta muốn nhiều thao tác đọc liệu tốt tiết kiệm thời gian Mỗi thực gọi giao dịch khác Việc quản lý giao dịch phải đảm bảo cho dù điều xảy giao dịch sở liệu không bị ảnh hưởng Giao dịch phân tán giao dịch bao gồm bó thao tác hai nhiều máy Thông thường, giao dịch phân tán, cần quan tâm đến tài nguyên cho giao dịch, quản lý việc giao dịch, u cầu giao dịch Trong việc kiểm sốt hoạt động đồng thời thực khóa, việc xử lý hoạt động đồng thời dựa lịch biểu cho phép giao dịch thực theo thứ tự Chúng ta thấy thực hoạt động đồng thời, giao dịch gây vấn đề liên quan đến khóa vấn đề bất khả Để loại bỏ vấn đề này, dùng xếp lịch nghi thức Trong báo cáo làm rõ vấn đề Một số khái niêm CSDL phân tán - Khái niệm: CSDL phân tán tập nhiều CSDL liên quan đến thơng qua mạng máy tính o Hệ quản trị CSDL phân tán bao gồm CSDL dạng logic chia thành phân mảnh Mỗi phân mảnh lưu trữ nhiều máy tính - điều khiển hệ quán trị CSDL riêng biệt Ứng dụng: Các ứng dụng cài đặt trạm phục vụ cho việc truy cập liệu Ứng dụng cục bộ: ứng dụng quan tâm đến liệu trạm Ứng dụng toàn cục: Liên quan đến liệu nhiều trạm khác Các loại lược đồ sử dụng CSDL phân tán: o Lược đồ toàn cục: Xác định toàn liệu CSDL phân tán Vấn đề xử lý giao dịch CSDL phân tán o Lược đồ phân mảnh: Mỗi quan hệ tổng thể chia thành phân mảnh không giao gọi phân mảnh Phân mảnh có phân mảnh ngang phân mảnh dọc o Lược đồ định vị: Xác định đoạn liệu định vị trạm mạng Rij phân mảnh i tram j o Lược đồ ánh xạ địa phương: Ánh xạ ảnh vật lý đối tượng lưu trạm Hình Lược đồ phân tán liệu Kỹ thuật phân tán CSDL Một số kỹ thuật sử dụng CSDL phân tán: - Phân mảnh: Một quan hệ chia nhỏ thành quan hệ gọi phân mảnh, - gọi phân tán Có kiểu phân mảnh phân mảnh ngang phân mảnh dọc Phân bổ: Mỗi phân mảnh lưu trữ vùng phân phối tối ưu Sao chép: Trong CSDL quan hệ phân tán, phân mảnh chép, nhân rộng lưu trữ số vùng khác 1.1 Quá trình phân mảnh Mục đích việc phân mảnh liệu CSDL phân tán nhằm hạn chế việc truy xuất thừa, nhân liệu làm tốn không gian nhớ Việc phân mảnh liệu giúp cho trình giao dịch thực đồng thời Một truy vấn tổng thể chia thành nhiều truy vấn con, truy vấn thực đồng thời với giúp việc xử lý nhanh Vấn đề xử lý giao dịch CSDL phân tán Tuy nhiên gặp số rắc truy xuất liệu truy xuất vào phần tử liệu Dữ liệu lưu trữ nhiều máy tính khác qua phân mảnh Một CSDL chia thành số phần gọi phân mảnh, phân mảnh đặt số vùng khác Nguyên tắc trình phân mảnh: - Điều kiện đầy đủ: Một mối quan hệ R chia thành phân mảnh R1, R2 Rn, mục liệu R phải tồn phân mảnh Ri Nguyên tắc nhằm bảo - đảm liệu không mát trình phân mảnh Điều kiện kiến thiết: Nó phải có khả kiến thiết lại quan hệ toàn cục từ - phân mảnh Điều kiện phân tách được: Nếu quan hệ R phân mảnh ngang thành R1,R2…Rn mục liệu Tj nằm mảnh Rj khơng nằm mảnh Rk(k#j) Đối với phân mảnh dọc thuộc tính khố phải nằm phân mảnh 1.1.1 Phân mảnh ngang Trong phân mảnh ngang, quan hệ chia theo chiều ngang Phân mảnh ngang R tách R thành n R1,R2 Rn cho quan hệ R khơi phục lại từ phép hợp R = R1 U R2 U U Rn Ví dụ : Ta có bảng KhachHang(MaKH, Hoten,Diachi, SoDT, Ngaysinh) ta phân mảnh bảng thành phân mảnh ngang sau : KH1 = Diachi=’HaNoi’(KhachHang) KH2 = Diachi=’HaiPhongi’(KhachHang) KH3 = Diachi=’TP.HCM’(KhachHang) Vấn đề xử lý giao dịch CSDL phân tán 1.1.2 Phân mảnh dọc Phân chia tập thuộc tính quan hệ tồn cục thành tập thuộc tính Mỗi R i phải chứa khóa R Phân mảnh dọc quan hệ tổng thể R tách R thành n quan hệ R1, R2 Rn cho quan hệ R hồi phục lại từ quan hệ Ri phép nối Ví dụ : Ta có bảng sau : NhanVien(MaNV, TenNV, Luong, Thue, MaNQL, MaPB) ta phân chia bảng thành phân mảnh dọc sau : NV1 = п MaNV, TenNV, MaNQL,MaPB(NhanVien) NV2 = п MaNV, Luong ,Thue(NhanVien) 1.1.3 Phân mảnh hỗn hợp Là kết hợp phương pháp phân mảnh dọc phân mảnh ngang 1.2 Phân bổ liệu Có bốn chiến lược phân tán liệu: - Tập trung liệu: Tất liệu tập trung chỗ, cách đơn giản có nhược điểm: o Dữ liệu không sẵn sàng cho truy cập từ xa o Chi phí truyền thơng lớn, thường làm cực đại việc truy cập liệu tới nơi tập - trung o Toàn hệ thống ngừng bị cố Chia nhỏ liệu: CSDL chia thành phần nhỏ liên kết (không trùng lặp) Mỗi phần liệu đưa đến trạm phù hợp để sử dụng Sao lặp liệu: o CSDL nhân thành nhiều phần đầy đủ đặt nhiều trạm o Nếu CSDL lưu trữ nơi hệ thống ta có trường hợp lặp đầy đủ o Hiện có nhiều kỹ thuật cho phép tạo không đầy đủ phù hợp với yêu cầu liệu trạm đầy đủ quản lý server o Sau khoảng thời gian định làm đồng với ứng dụng Vấn đề xử lý giao dịch CSDL phân tán - Phương thức lai: o CSDL phân thành nhiều phần: quan trọng không quan trọng o Phần quan trọng lưu trữ nơi phần quan trọng lưu nơi khác Xử lý giao dịch CSDL phân tán 1.3 Thế giao dịch Giao dịch tập hợp thao tác tạo thành đơn vị làm việc logic hệ sở liệu, thao tác đọc ghi liệu 1.4 Tính chất giao dịch Dù giao dịch thực CSDL tập trung hay phân tán phải thỏa mãn tính chất sau : - Tính ngun tử (Atomicity): Tồn thao tác giao dịch thực khơng - thực hết Tính qn (Consistency): Giao dịch phải đảm báo tính quán sở liệu Tính lập (Isolation): Nhiều giao dịch thực đồng thời, giao dịch giao dịch khác thực hiện, kết trung gian giao dịch - dấu trước giao dịch khác Tính bền lâu (Duarability): Sau giao dịch hồn thành q trình thay đổi sở liệu hệ thống xảy cố 1.5 Ví dụ giao dịch T1 Read(X); X=X – ; Write(X) ; Commit; T1- Transaction 1; T2- Transaction T2 Read(X); X= X + ; Write(X) ; Commit; Giả sử với X=5 T1 cho giá trị X sau 3, T2 cho giá trị X sau Vi phạm tính quán sở liệu Vấn đề xử lý giao dịch CSDL phân tán 1.6 Mơ hình xử lý giao dịch Hình - Mơ hình xử lý giao dịch Trong hệ quản trị CSDL phân tán chứa thành phần: Giao dịch (T: Transaction, Bộ quản lý giao dịch (TM: Transactions Manager), Bộ quản lý liệu (DM: Data Manager), Dữ liệu (D: Data) Các giao dịch quản lý quản lý giao dịch (TMs) Mỗi quản lý giao dịch liên kết giao dịch đơn với lập lịch S có nhiệm vụ xếp việc thực giao dịch đơn Bộ quản lý liệu DMs quản lý CSDL lưu trữ, có chức xử lý CSDL cuối Trong hệ CSDL quan hệ tập trung, workspace riêng biệt phần TMs liệu tự di chuyển giao dịch không gian nó, khơng gian với quản lý liệu Trong với CSDL quan hệ phân tán quản lý giao dịch quản lý liệu thực điểm khác Làm giao dịch (T) dọc ghi liệu khơng gian có truy vấn tối ưu khơng bị ảnh hưởng trực tiếp điều khiển đồng thời Giả sử T cập nhật giá trị x, y, z lưu trữ DMx, DMy, DMz Giả sử giao dịch bị lỗi DM phát lệnh ghi x, trước DM phát lệnh cho y, z Tại thời điểm CSDL khơng cịn xác Tuy nhiên trong CSDL quan hệ phân tán, TMs cịn hoạt động truy cập vào CSDL khơng xác Để tránh vấn đề này, lệnh Prewrite phải điều chỉnh chút Các lệnh lưu vào vùng lưu trữ an toàn, lệnh Prewrite rõ DM tham gia hành động COMMIT Khi TM bị lỗi pha (trong giao thức Vấn đề xử lý giao dịch CSDL phân tán pha), DMs khơng phát lệnh ghi, đồng thời nhận vấn đề thông báo cho DM khác liên quan đến trình COMMIT Chi tiết xử lý giao dịch: Hình 3- Chi tiết xử lý giao dịch Trong DDBMS trình xử lý giao dịch thực sau: - Thao tác đọc: Bộ quản lý liệu (DM) thực việc duyệt CSDL cục bộ(CSDL - server) để trả theo yêu Thao tác ghi: Bộ quản lý liệu (DM) sửa đổi CSDL cục trả chấp thuận cho lập lịch S, lập lịch S trả quản lý giao dịch (TM), (TM) trả cho giao dịch Giao thức 2PC (Two Phase Commit) Gồm hai giai đoạn sau : Giai đoạn 1: Ở vị trí đó, máy chủ gửi thông báo C-PREPARE tới tất máy chủ khác, để thực giao dịch Sau máy chủ nhận thông báo gửi lại thơng báo C-READY sẵn sàng cho việc thực giao dịch Một số máy chủ gửi lại thơng báo C-REFUSE khơng thực giao dịch lý Giai đoạn 2: Nếu máy chủ gửi thông báo C-PREPARE mà nhận thông báo CREADY từ tất máy chủ gửi thơng báo C-COMMIT tới tất máy chủ Mỗi máy chủ đồng ý nhận thông báo Nếu máy chủ gửi thông báo C-PREPARE mà nhận thông báo C-REFUSE từ máy chủ lại gửi thơng báo C-ROLLBACK tới tất máy chủ khác Khi giao dịch thực không kết thúc Vấn đề xử lý giao dịch CSDL phân tán Điều khiển tương tranh CSDL phân tán Một số vấn đề phát sinh liên quan tới việc điều khiển tương tranh khôi phục vấn đề CSDL phân tán Có số vấn đề sau: - Lỗi site: Có số tình phát sinh nhiều site bị lỗi CSDL quan hệ phân tán Trong trường hợp đó, tính qn tồn vẹn CSDL cần khôi - phục Vấn đề mạng: Khi mạng bị lỗi, gây tượng nhiều site cắt khỏi - site cịn lại mơi trường hệ quản trị CSDL phân tán Vấn đề trùng lặp liệu: Nhiều CSDL cần giám sát cẩn thận để đảm - bảo tính quán Giao dịch phấn tán: Vấn đề phát sinh giao dịch phân tán qua nhiều site Một vài - site commit/rooling thành công, số giao dịch khác lại thất bại Bế tắc phân tán: Trong hệ quản trị CSDL phân tán, bế tắc (Deadlock) xuất nhiều site Vì vậy, việc xử lý cẩn thận cần thiết 1.7 Khái niệm khóa Khóa chốt chế thường dùng để giải đề liên quan đến đồng hóa liệu việc truy cập dùng chung Mỗi phần tử liệu có khóa chốt kết hợp với chúng Bộ xếp lịch ln đảm bảo có giao dịch giữ khóa chốt mục liệu thời điểm, có giao dịch truy cập liệu thời điểm Chúng ta quan tâm đến hai loại khóa sau : - Khóa đọc (readlock): Chỉ cho phép đọc phần tử liệu giao dịch Khóa ghi (writelock): Chỉ cho phép ghi phần tử liệu giao dịch Hai khóa đụng độ chúng khóa mục liệu giao dịch khác - Bộ xếp lịch đặt khóa cho giao dịch T, khơng thể tự giải phóng khóa chưa - quản lý liệu (DM) trả lời xử lý thao tác tương ứng với khóa Mỗi xếp lịch giải phịng khóa cho giao dịch khơng thể lấy khóa - cho giao dịch Khi nhận thao tác đọc, ghi với mục liệu giao dịch từ quản lý giao dịch( TM) quản lý giao dịch kiểm tra xem có đụng độ với vài thao tác - đọc, ghi liệu từ giao dịch khác đặt trước khơng Nếu đụng độ trì hỗn đặt khóa cần thiết cho thao tác giao dịch trước Vấn đề xử lý giao dịch CSDL phân tán 10 - Nếu không đụng độ xếp lịch đặt khóa gửi thao tác đến quản lý liệu 1.8 Thế đụng độ Là thao tác đọc, ghi truy xuất đến mục liệu thời gian định gọi đụng độ Các thao tác xuất phát từ giao dịch khác 1.9 Các phương pháp giái vấn đề đụng độ 1.9.1 Thuật tốn khóa chốt hai giai đoạn (Two Phase Locking - 2PL) - Là kỹ thuật hiệu việc khắc phục số đụng độ thời gian chết - trình thực giao dịch Trong kỹ thuật lập lịch quản lý khóa chốt điều khiển giao dịch lấy - giải phóng khóa Giải tốt việc đồng hóa việc đọc, ghi Trước đọc liệu x phải khóa - mục x lại(readlock(x)),trước ghi lên x phải khóa x lại (writelock(x)) Định nghĩa khoá xung đột dựa kiểu đồng thực hiện: o Với kiểu “RW”: khoá xung đột khoá mục liệu khoá đọc khoá ghi o Với kiểu “WW”: khoá xung đột khoá mục liệu khoá khoá ghi Kỹ thuật gồm hai giai đoạn: - Giai đoạn tăng trưởng(Growing phase): cho phép nhận khóa truy xuất liệu Giai đoạn thu hồi(Shirnking phase): cho phép giải phóng khóa khóa mục liệu giao dịch Vấn đề xử lý giao dịch CSDL phân tán 11 Hình – Sơ đồ khóa 2PL Hình cho thấy rằng: Sau hoàn thành việc truy xuất liệu khóa giải phóng Điều cho phép giao dịch đợi khóa tiếp tục tiến hành nhận khóa Vì làm tăng tính đồng thời việc xử lý liệu Điểm khóa (Lock point): Là thời điểm mà giao dịch nhận tất khóa chưa bắt đầu giải phóng khóa Chính điểm cuối giai đoạn tăng trưởng đầu giai đoạn thu hồi khóa Nhận xét sơ đồ 2PL: Với sơ đồ phải biết tất yêu cầu khóa giao dịch thời điểm bắt đầu thu hồi khóa khơng tránh tình trạng deadlock 1.9.1.1 Cách thực phương pháp 2PL Việc thực phương pháp 2PL xây dựng lịch 2PL, module phần mềm nhận u cầu khố, giải phóng khố xử lý theo thứ tự 2PL Cách thực 2PL CSDL phân tán phân tán lịch (Scheduler) theo CSDL, đặt lịch cho mục liệu x DM nơi chứa x lưu trữ Theo cách này, khố đọc u cầu ngầm khố đọc ghi DM (dm-read, dm-write) yêu cầu ngầm lệnh prewrites Nếu u cầu khố khơng thể cấp, hành động lưu hàng đợi với mục liệu mong muốn Khoá ghi ngầm giải phóng dm-writes Tuy nhiên để giải phóng khố đọc điều khiển giải phóng khố đặc biệt cần yêu cầu Khi khoá giải phóng, hành động hàng đợi với mục liệu thực theo thứ tự FIFO Tuy nhiên, với giao dịch cập nhật X tất X phải cập nhật phải chứa khố ghi tất X 1.9.1.2 Kỹ thuật: Bản 2PL Kỹ thuật kỹ thuật 2PL có quan tâm tới liệu dự phịng Một liệu chọn Trước truy xuất liệu khố phải đặt Với khố đọc, kỹ thuật yêu cầu trao đổi nhiều kỹ thuật 2PL thông thường Giả sử X1 X, giao dịch T muốn đọc liệu số Xi X Để đọc X, T phải giao tiếp với DM nơi mà Xi lưu Trong theo kỹ Vấn đề xử lý giao dịch CSDL phân tán 12 thuật 2PL thơng thường T việc giao tiếp với DM X Với khố ghi, phương pháp không cần giao tiếp nhiều 1.9.1.3 Phương thức 2PL bình chọn (Voting 2PL) Phương thức chọn 2PL kỹ thuật 2PL thơng thường có khai thác liệu dự phòng Phương pháp bắt nguồn từ kỹ thuật đồng thuận Thomas phù hợp với đồng “WW” Để hiểu cách chọn, phải đặt ngữ cảnh 2PC (two-phase commit) Giả sử giao dịch T muốn ghi liệu lên X T phải gửi lệnh prewrite tới DM chứa X Với giao thức chọn, DM phải đáp ứng trực tiếp, nhận prewrite phải trả lời “ lock set” “lock blocked” Sau TM nhận thông tin từ DM, đếm số “lockset” Nếu đa số, TM coi tất khoá thiết lập Ngược lại, chờ DM gửi thơng diệp “lock blocked” Đặt bế tắc sang bên, cuối nhận đủ “lockset” để tiếp tục xử lý Vì thời điểm có giao dịch T giữ phần lớn ổ khố X, có giao dịch ghi lên X pha thời điểm Do tất X có trình tự ghi Điểm khố T xuất thu số lượng khố ghi đủ lớn mục liệu Khi cập nhật nhiều mục liệu, giao dịch phải thu lượng lớn khoá mục liệu trước phát lệnh dm-write Theo nguyên tắc, phương thức chọn 2PL điều chỉnh đồng “RW” Trước đọc X đó, giao dịch T phải u cầu khố đọc X; Khi số khoá đủ lớn thiết lập, giao dịch T đọc Kỹ thuật đòi hỏi cao: Đúng yêu cầu X khố, cho việc đọc khơng, kỹ thuật yêu cầu khoá tất Vì lý khơng phù hợp cho đồng “RW” 1.9.1.4 Kỹ thuật 2PL tập trung Thay phân tán lịch 2PL, lịch tập trung đặt site, truy xuất site khác, ổ khoá phù hợp lấy từ lịch 2PL trung tâm Ví dụ, thực dm-read(x) x không đặt site trung tâm, TM yêu cầu read-lock x site trung tâm Chờ tới site trung tâm hiểu thực khố, gửi u cầu dm-read(x) tới DM lưu giữ x Vấn đề xử lý giao dịch CSDL phân tán 13 Như hình vẽ dưới, giả sử giao dịch thực đồng thời, thực READ thực trước END Các thực mô tả sau: DM A: RL [X1]; DM B: RL [Y2]; DM C: RL [Z3] Tại thời điểm thì: T1 khố đọc X1, T2 khố đọc Y2, T3 khố đọc Z3 Trước xử lý tồn giao dịch yêu cầu khoá ghi: T1 yêu cầu khoá ghi Y1,Y2; T2 yêu cầu khoá ghi Z2, Z3; T3 yêu cầu X1 Nhưng T1 khoá ghi Y2 T2 giải phóng khố đọc; 2khoong thể có khố ghi Z3 T3 giải phóng khố đọc; T3 khơng thể có khố ghi X1 T1 giải phóng quyền đọc Đây Deadlock 1.9.2 Thuật toán nhãn thời gian 1.9.2.1 Ý tưởng: Để đảm bảo tính khả lịch biểu giao dịch tham gia vào hệ thống gán nhã thời gian nhất, thời điểm bắt đầu giao dịch Bộ xếp lịch dựa vào nhãn thời gian để xếp lịch biểu thực giao dịch 1.9.2.2 Cách thiết lập nhã thời gian Bộ xếp lịch trì đếm số lượng giao dịch lập lịch Khi giao dịch yêu cầu lập lịch lập lịch tăng đếm số lượng lên đơn vị gán giá trị số cho giao dịch u cầu Như vầy khơng thể xảy yêu cầu hai giao dịch có nhãn thời gian thứ tự tương đối nhãn thời gian giao dịch thứ tự giao dịch thực Vấn đề xử lý giao dịch CSDL phân tán 14 1.9.2.3 Mơ tả thuật tốn Giả sử có giao dịch thực với nhãn thời gian t muốn thực thao tác X mục liệu có thời gian thực đọc tr, thực ghi tw Thực thao tác : X=read t>=tw gán thời điểm đọc liệu t t>tr X=write t>=tr t>=tw Gán thời điểm ghi t t>tw Giao dịch khơng thực - X=write trtr(30>20) nên tr(A)=30 Bước 3: T2(có nhãn thời gian t=20) thực ghi B có tr=0 tw=0 mà t>tr t>tw nên tw(B)=20 Bước 4: T3(có nhãn thời gian t=30) thực ghi A có tr(A)=30 tw(A)=0 Vì t>tw(30>0) nên tw(A)=30 Bước 5: T1(có nhãn thời gian t=10) thực đọc B có tw(B)=20 t