Tải bản đầy đủ (.pptx) (28 trang)

Thuyết trình môn lý thuyết các hệ phân tán giao dịch và kiểm soát đồng thời

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (488.08 KB, 28 trang )

KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN
Môn học: Lý thuyết các hệ phân tán

Giao dịch và Kiểm soát đồng thời

Nhóm 10:

Lê Thị Huế
Nguyễn Tiến Thụy
Lớp:
Khóa:

1

Hệ thống thông tin
K27B

10/3/17


Nội dung

2

1.

Giao dịch

2.



Giao dịch lồng nhau

3.

Kiểm soát truy cập đồng thời

4.

Khóa

5.

Kiểm soát đồng thời tin cậy

6.

Nhãn thời gian

10/3/17


1. 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

3

10/3/17


1. Giao Dịch (2)

Ví dụ:
Thực hiện một giao dịch chuyển tiền giữa 2 tài khoản ngân hàng
Chuyển $300 từ tài khoản A sang B
A

$200
$500

B

$100

$300

$300

4


10/3/17


1. Giao Dịch (3)

ACID – Các tính chất của giao dịch:

 Tính nguyên tử (Atomicity)
 Tính nhất quán (Consistency)
 Tính tách biệt (Isolation)
 Tính bền vững (Durability)

5

10/3/17


1. Giao Dịch (4)
Lịch sử của 1 giao dịch

6

10/3/17


1. Giao Dịch (5)
Đặ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 đó.



7



10/3/17


2. Giao dịch lồng nhau




Giao dịch lồng nhau là giao dịch được bao gồm một số giao dịch khác.
Giao dịch ngoài cùng được gọi là giao dịch top-level. Các giao dịch khác nhỏ hơn gọi là
giao dịch con



8


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

10/3/17


2. 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:





9

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


10/3/17


3. Kiểm soát truy cập đồng thời
Vấn đề mất dữ liệu cập nhật

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
Tăng số dư của B thêm 10% lấy từ A

$200

 

 

$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

Tăng số dư của B thêm 10% lấy từ C

$220

$220*10%
= $242

Trừ Tài khoản C số tiền đã chuyển vào B

10

$278

10/3/17


3. Kiểm soát truy cập đồng thời (2)

- Khi 2 giao dịch thực hiện đồng thời


11

10/3/17


3. Kiểm soát truy cập đồng thời (3)

Truy vấn không phù hợp

12

10/3/17


3. Kiểm soát truy cập đồng thời (4)

Serial equivalence

13

10/3/17


4. Khóa







Giao dịch phải được lên kế hoạch để tác động lên các dữ liệu được chia sẻ một cách tuần tự.
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.

14

10/3/17


4. Khóa (2)

Ví dụ về Xung đột hoạt động

15

10/3/17


4. Khóa (3)

Quy tắc sử dụng Khóa:

1)

Trong một giao dịch, khi một hành động truy cập đối tượng:

a)
b)


Nếu đối tượng không bị khóa, thì nó sẽ bị khoá và thực thi hành động
Nếu đối tượng có một khóa xung đột với một giao dịch khác, giao dịch sẽ phải
chờ đợi cho đến khi nó được mở khóa

...

2)

16

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ở.

10/3/17


4. Khóa (4)

Quy 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.


17

10/3/17


4. Khóa (5)

Deadlocks:

18

10/3/17


4. Khóa (6)

Phòng chống Deadlocks:
1.Phát hiện Deadlocks:

19

10/3/17


4. Khóa (7)

Phòng chống Deadlocks:
2.Timeouts:


20

10/3/17


5. Kiểm soát đồng thời tin cậy

-

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

21

10/3/17


6. Nhãn thời gian


-

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

10/3/17


6. Nhãn thời gian (2)

-

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 đó

23

10/3/17


6. Nhãn thời gian (3)

-


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.

-

Các quy tắc đặt nhãn thời gian đảm bảo rằng mỗi giao 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

24

10/3/17


6. Nhãn thời gian (4)

-

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

25


10/3/17


×