Giao Dịch- Mục đích của giao dịch là đảm bảo các đối tượng luôn ở trạng thái nhất quán khi chúng được truy cập bởi nhiều giao dịch hoặc trong trường hợp có lỗi xảy ra.. • Bất kỳ giao d
Trang 1Giao dịch và Kiểm soát đồng thời
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
Nhóm 10:
Lê Thị Huế Nguyễn Tiến Thụy
Lớp: Hệ thống thông tin
Khóa: K27B
Trang 31 Giao Dịch
- Mục đích của giao dịch là đảm bảo các đối tượng luôn ở
trạng thái nhất quán khi chúng được truy cập bởi nhiều giao
dịch hoặc trong trường hợp có lỗi xảy ra.
- Khái niệm về hoạt động nguyên tử
- Trong một số trường hợp, các client đòi hỏi một chuỗi các yêu cầu riêng biệt, yêu cầu đặt ra là:
• Không bị can thiệp bởi các hành động đồng thời từ các client khác.
• Hoặc tất cả các hoạt động phải thực hiện thành công, hoặc không có một hành động nào thành công nếu máy chủ bị lỗi
Trang 5ACID – Các tính chất của giao dịch:
Trang 66
Lịch sử của 1 giao dịch
1 Giao Dịch (4)
Trang 7Đặc điểm của giao dịch
• Nếu một máy chủ bị lỗi bất thường thì hành động cuối cùng cần được thay thế
• Bất kỳ giao dịch nào chưa được xác thực sẽ bị hủy bỏ
• Giao dịch nào được xác thực trong thời điểm gần nhất sẽ được
sử dụng để khôi phục
• Để đối phó với một client bị lỗi trong quá trình giao dịch, máy chủ sẽ cung cấp cho mỗi giao dịch, một khoảng thời gian nhất định và loại bỏ giao dịch nếu không hoàn thành trước thời gian đó.
• …
1 Giao Dịch (5)
Trang 8top-• Một giao dịch con có thể bị hủy bỏ một cách độc lập với giao dịch con khác
Trang 92 Giao dịch lồng nhau (2)
Ưu điểm của giao dịch lồng nhau:
• Các giao dịch con tại 1 mức có thể chạy đồng thời với các giao dịch con khác tại cùng mức trong cây phân cấp
• Các giao dịch con có thể xác thực hoặc hủy bỏ độc lập nhau
Các quy tắc trong xác thực giao dịch lồng nhau:
• Một giao dịch có thể xác thực hoặc hủy bỏ chỉ sau khi giao dịch con của nó đã hoàn thành
• Khi một giao dịch con hoàn thành, thì nó hoặc xác thực tạm thời hoặc Hủy bỏ tạm thời
• … T, T1, T11, T12, T2, T21, T22
Trang 1005/10/202 4
10
Vấn đề mất dữ liệu cập nhật
3 Kiểm soát truy cập đồng thời
Ví dụ:
Tài khoản A, B, C có số dư tương ứng là $100, $200, $300
- Khi 2 giao dịch thực hiện lần lượt:
Giao dịch T (A => B) Giao dịch U (C => B) Xem số dư ở tài khoản B $200
Tăng số dư của B thêm 10% lấy từ A $200*10%= $220 Trừ Tài khoản A số tiền
đã chuyển vào B $80 Xem số dư ở tài khoản B $220
Tăng số dư của B thêm 10%
lấy từ C $220*10%= $242 Trừ Tài khoản C số tiền đã
chuyển vào B $278
Trang 113 Kiểm soát truy cập đồng thời (2)
- Khi 2 giao dịch thực hiện đồng thời
Trang 1205/10/202 4
12
3 Kiểm soát truy cập đồng thời (3)
Truy vấn không phù hợp
Trang 133 Kiểm soát truy cập đồng thời (4)
Serial equivalence
Trang 14• Một cơ chế đơn giản là việc sử dụng Khóa
• Máy chủ sẽ khóa bất kỳ đối tượng được sử dụng trong hoạt động giao dịch của client
• Nếu một client khác yêu cầu quyền truy cập vào một đối tượng đã bị khóa thì yêu cầu sẽ bị treo và nó phải chờ đến khi đối tượng được mở khóa
Trang 154 Khóa (2)
Ví dụ về Xung đột hoạt động
Trang 16giao dịch khác, giao dịch sẽ phải chờ đợi cho đến khi nó được mở khóa
2) Khi một giao dịch thành công hoặc hủy bỏ, tất cả
các khóa của đối tượng sẽ được mở.
4 Khóa (3)
05/10/2024
Trang 17Quy tắc sử dụng khóa cho các giao dịch lồng nhau:
Sử dụng khóa để các giao dịch con được truy cập một cách tuần tự:
- Mỗi tập hợp các giao dịch lồng nhau phải ngăn
chặn tác động của tập hợp các giao dịch lồng nhau khác.
- Mỗi giao dịch trong một tập hợp các giao dịch
lồng nhau phải ngăn chặn tác động của các giao dịch khác trong tập hợp này.
4 Khóa (4)
Trang 18Deadlocks:
4 Khóa (5)
05/10/2024
Trang 19Phòng chống Deadlocks:
4 Khóa (6)
1.Phát hiện Deadlocks:
Trang 20Phòng chống Deadlocks:
4 Khóa (7)
05/10/202 4
2.Timeouts:
Trang 21- Việc duy trì khóa phát sinh chi phí ngay cả khi giao dịch
chỉ đọc không hề ảnh hưởng đến sự thay đổi của dữ liệu
- Việc sử dụng khóa có thể dẫn đến DeadLock Phòng
chống DeadLock làm giảm khả năng hoạt động đồng thời, và do đó tình huống DeadLock phải được giải quyết bằng cách sử dụng timeout hoặc bằng cách phát hiện DeadLock
- Khóa không thể được phát hành cho đến khi kết thúc
giao dịch Điều này có thể làm giảm khả năng hoạt động đồng thời
5 Kiểm soát đồng thời tin cậy
Trang 22- Mỗi giao dịch được gán một nhãn thời gian duy nhất khi
nó bắt đầu
- Các nhãn này xác định vị trí của nó trong trình tự thời
gian của các giao dịch
- Thứ tự các yêu cầu từ giao dịch có thể hoàn toàn theo
nhãn thời gian của chúng
6 Nhãn thời gian
05/10/2024
Trang 23- Quy tắc cấp nhãn thời gian cơ bản được dựa trên các
hoạt động xung đột:
• Yêu cầu của một giao dịch để đọc một đối tượng chỉ hợp lệ nếu đối tượng đó đã được ghi bởi một giao dịch trước đó
• Yêu cầu của một giao dịch, để Ghi một đối tượng chỉ hợp lệ nếu lần đọc đối tượng đó là lần đọc cuối cùng
và đã được ghi bởi các giao dịch trước đó
6 Nhãn thời gian (2)
Trang 24- Nếu mỗi giao dịch có phiên bản dự kiến riêng của từng
đối tượng mà nó truy cập, khi đó nhiều giao dịch đồng thời có thể truy cập cùng một đối tượng
dịch truy cập một tập các phiên bản của các đối tượng
Nó cũng phải đảm bảo rằng các phiên bản dự kiến của từng đối tượng được xác thực theo thứ tự được xác định bởi nhãn thời gian của các giao dịch thực hiện chúng
6 Nhãn thời gian (3)
05/10/2024
Trang 25- Các giao dịch đang chờ đợi, sẽ chờ các giao dịch trước
đó hoàn tất việc ghi của chúng nếu cần thiết Các hoạt động ghi có thể được thực hiện sau khi các hoạt động đóng lại Hoạt động đọc cần phải chờ đợi cho các giao dịch trước đó kết thúc Điều này sẽ không dẫn đến Deadlock, vì giao dịch chỉ chờ đợi những giao dịch trước đó (không thể có chu trình trong đồ thị wait-for)
- Mỗi đối tượng có một nhãn thời gian ghi và thiết lập
một phiên bản thử nghiệm, trong đó có một nhãn thời gian ghi liên kết với nó; mỗi đối tượng cũng có một tập hợp các nhãn thời gian đọc
6 Nhãn thời gian (4)
Trang 266 Nhãn thời gian (5)
05/10/2024
Quy tắc GHI
Trang 276 Nhãn thời gian (6)
Quy tắc ĐỌC
Trang 28Thanks you!