Xử lý giao dịch trong CSDL phân tán Điều khiển tương tranh trong CSDL phân tán Nội dung... Ứng dụng toàn cục, ứng dụng cục bộ Phân đoạn:mục đích là hạn chế truy xuất dữ liệu thừa,
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đề tài :
VẤN ĐỀ XỬ LÝ GIAO DỊCH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
Môn :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
Trang 2 Lý do chọn đề tài
CSDL phân tán là gì?
Xử lý giao dịch trong CSDL phân tán
Điều khiển tương tranh trong CSDL phân tán
Nội dung
Trang 3Lý do chọn đề tài
Việc xử lý giao dịch trong các ứng dụng là rất
quan trọng.
Một ứng dụng đòi hỏi thực hiện nhiều chương
trình, một chương trình thực hiện nhiều tiến trình
Có thể truy cập một đối tượng ở cùng một thời
điểm.Xảy ra đụng độ, tranh chấp tài nguyên
Nghiên cứu vấn đề này
Trang 4CSDL phân tán là gì?
Khái niệm :CSDL phân đoạn và được lưu trên các vị trí khác nhau trong hệ thống mạng
ứng dụng :ứng dụng được cài đặt ở các trạm phục vụ cho truy xuất dữ liệu ở đó Ứng dụng toàn cục, ứng dụng cục bộ
Phân đoạn:mục đích là hạn chế truy xuất dữ liệu
thừa, phân đoạn giúp thực hiện giao dịch đồng thời , truy vân toàn cục chia thành các truy vấn con và thực hiện đồng thời Phân đoạn ngang, phân đoạn dọc
Trang 5Xử lý giao dịch trong CSDL phân tán
Thế nào là giao dịch ?
Tính chất của giao dịch.
Tính nguyên tử
Tính nhất quán
Tính cô lập
Tính bền lâu
Trang 6Xử lý giao dịch trong
CSDL phân tán
Ví dụ :
t T1 T2
Read(X);
X=X – 2 ;
Read(X);
X= X + 1 ;
Write(X) ;
Write(X) ;
Commit; Commit;
Với X=5 kết quả ????
Trang 7Xử lý giao dịch trong CSDL
phân tán
Mô hình xử lý giao dịch.
Trang 8Xử lý giao dịch trong CSDL phân
tán
Giải thích hình vẽ :
T – Transacitons, TM - Transactions manager, S-
Scheduler, DM- Data manager, D- Data
Các (T) giao dịch này chứa thao tác đọc, ghi và được quản lý bởi bộ quản lý giao dịch (TM) TM lại liên kết các thao tác đọc ghi với các bộ lập lịch, S lại chịu trách nhiệm sắp xếp việc thực hiện các thao tác của các giao dịch Việc đọc, ghi và kiểm soát tương tranh được thực hiện bởi bộ quạn trị dữ liệu (DM)
Trang 9Điều khiển tương tranh trong CSDL
phân tán
Khái niệm về khóa: Dùng cho việc giải quyết vấn đề đồng bộ hóa dữ liệu trong viêc dùng chung Mỗi phần tử dữ liệu đều
có một khóa chốt Bộ lập lịch phải đảm bảo chỉ duy nhất một giao dịch giữ khóa chột của một mục dữ liệu tại một thời
điểm Cũng chỉ có một giao dịch truy cập dữ liệu đó tại một thời điểm
Khóa đọc, khóa ghi
Hai khóa đụng độ nếu chúng cùng khóa một mục dữ liệu
trong các giao dịch khác nhau
Thế nào là đụng độ?.Các thao tác đọc, ghi cùng truy xuất đền một mục dữ liệu ở một thời điểm trong các giao dịch khác nhau
Trang 10Điều khiển tương tranh trong CSDL
phân tán
Các phương pháp giải quyết vấn đề tương
tranh.
Thuật toán khóa chốt hai giai đoạn (Two Phase
Locking - 2PL)
Là kỹ thuật giải quyết vấn đề đụng độ trong giao dịch
Bộ lập lịch quản lý khóa chốt, điều khiển khi nào lấy và giải phóng khóa dữ liệu
Giải quyết việc đồng bộ dữ liệu đọc, ghi trước khi đọc dữ liệu
x khóa rl(x), ghi thì khóa wl(x)
Giai đoạn 1: cho phép nhận các khóa và truy xuất dữ liệu
Giai đoạn 2: giải phòng các khóa đã khóa dữ liệu trong giao dịch
Trang 11Điều khiển tương tranh trong
CSDL phân tán
Thuật toán khóa chốt hai giai đoạn (Two Phase Locking - 2PL)
Trang 12Điều khiển tương tranh trong
CSDL phân tán
Thuật toán nhãn thời gian
Ý tưởng : Để đảm bảo tính khả tuần tự của lịch biểu thì mỗi giao dịch khi tham gia vào hệ thống sẽ được gán một nhã thời gian duy nhất
Cách thiết lập nhãn :
Bộ xếp lịch đếm các giao dịch đã lập lịch Khi giao dịch mới yêu cầu thì tăng giá trị lên và gán cho giao dịch đó Do đó các giao dịch thực hiện với thời gian khác nhau
Mô tả thuật toán
Một giao dịch thực hiện với nhãn thời gian t, thao tác X ,thời gian đọc là tr, thời gian ghi là tw
Trang 13Điều khiển tương tranh trong
CSDL phân tán
Mô tả thuật toán
Thực hiện thao tác này nếu :
X=read và t>=tw khi đó gán thời điểm đọc dữ liệu là t luôn nếu t>tr
X=write và t>=tr và t>=tw Gán thời điểm ghi là t nếu t>tw
Giao dịch không thực hiện gì nếu :
X=write và tr<=t<=tw
Hủy bỏ giao dịch nếu
X=read và t<tw hoặc X=write và t<tr
Trang 14Điều khiển tương tranh trong
CSDL phân tán
Thuật toán nhãn thời gian
Ví dụ :
Trang 15Điều khiển tương tranh trong
CSDL phân tán
Nghi thức kết thúc hai giai đoạn(Two phase commit)
Giai đoạn 1 :
Máy chủ gửi thông báo C-PREPARE tới tất cả các máy chủ khác Nếu sắn sàng các máy chủ này gửi lại thông báo C-READY Một số máy chủ có thể gửi lại thông báo C-REFUSE nếu không thực hiện được giao dịch bởi một lý do nào đó
Giai đoạn 2 :
Nếu nhận được thông báo READY thì nó sẽ gửi lại thông báo
C-COMMIT tới tất cả các máy chủ đó
Nếu nhận được thông báo C-REFUSE từ một máy chủ nào đó thì nó gửi lại thông báo C-ROLLBACK tới tất cả các máy chủ đó Giao dịch thực hiện không thành công