1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO MÔN CƠ SỞ DỮ LIỆU PHÂN TÁN QUẢN LÝ GIAO TÁC PHÂN TÁN

69 1,2K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 1,86 MB

Nội dung

Điều khiển tranh chấp dựa vào khóa trong Hệ cơ sở dữ liệu tập trung  Nguyên tắt chờ wait:  Một giao tác muốn truy cập dữ liệu, thì phải khóa dữ liệu đó chiếm dụng lock.. Điều khiển t

Trang 1

GVHD: PGS.TS Đồng Thị Bích Thủy Nhóm 4:

Nguyễn Tấn Cầm

Võ Duy Phúc Phạm Trần Trọng Minh Vương Shi Yến

QUẢN LÝ GIAO TÁC PHÂN TÁN

(THE MANAGEMENT OF DISTRIBUTED TRANSACTIONS)

BÁO CÁO MÔN CƠ SỞ DỮ LIỆU PHÂN TÁN

1

Trang 2

Nội dung trình bày

 Điều khiển truy xuất đồng thời trong giao tác phân tán (Concurrency Control For Distributed Transactions)

Kiến trúc giao tác phân tán (Architectural

Aspects Of Distributed Transactions)

2

Trang 3

Nội dung trình bày

 Điều khiển truy xuất đồng thời trong giao tác phân tán (Concurrency Control For Distributed Transactions)

Kiến trúc giao tác phân tán (Architectural

Aspects Of Distributed Transactions)

3

Trang 4

44

Trang 5

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung

 Nguyên tắt chờ (wait):

 Một giao tác muốn truy cập dữ liệu, thì phải khóa

dữ liệu đó (chiếm dụng) (lock).

 Muốn khóa dữ liệu mà bị khóa bởi một giao tác khác thì phải chờ cho đến khi giao tác đó giải phóng khóa (unlock)

55

Trang 6

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Các loại khóa (lock mode)

 Shared Dùng chung mode: chỉ dùng để đọc dữ liệu.

 Exclusive Dành riêng mode: dùng để ghi dữ liệu.

 Well-formed: luôn khóa dữ liệu theo chế độ

shared mode trước khi đọc; luôn khóa dữ liệu trong chế độ exclusive trước khi ghi.

 Kỹ thuật khóa chỉ đúng với giả định tất cả các giao tác đều là well-formed.

66

Trang 7

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Nguyên tắt tương tác giữa các mode lock

 Một giao tác có thể lock dữ liệu theo chế độ

shared mode nếu nó không bị lock bởi tất cả các giao tác khác, hoặc nó bị lock theo chế độ shared mode bởi một giao tác khác.

 Một giao tác có thể lock dữ liệu theo chế độ

Exclusive mode khi nó không bị lock bởi bất kỳ giao tác khác.

77

Trang 8

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Hai giao tác được gọi là đụng độ (conflict) nếu chúng ta muốn khóa trên cùng một dữ liệu với hai chế độ (mode) khóa không tương thích.

 Ví dụ: shared-exclusive (read-write) : conflict

 Ví dụ: exclusive-exclusive (write-write) : conflict

88

Trang 9

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Cấp độ khóa

 Record level:

 Cấp độ dòng

 Hỗ trợ nhiều truy xuất đồng thời vào một file

 Đụng độ xảy ra khi hai giao tác truy cập cùng một record

 File level:

 Cấp độ file

 Phạm vi ảnh hưởng của khóa là trên cả file

 Đụng độ xảy ra khi hai giao tác truy cập cùng một file

 Khóa trên dòng cung cấp nhiều truy cập đồng thời hơn là khóa trên file Hầu hết các hệ quản trị cơ sở dữ liệu đều hỗ trợ khóa cấp Record level.

99

Trang 10

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Điều kiện để hai giao tác có thể thực thi được đồng thời:

 Các giao tác phải thỏa Well-formed.

 Đảm bảo là các cặp tương thích cho locking.

 Mỗi giao tác không yêu cầu phát sinh khóa mới, sau khi kết thúc quá trình lock này.

10

Trang 11

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 2-phase-locked (2PL)

 Growing phase: kỳ nhận khóa

 Các giao tác tiến hành khóa, không tháo khóa.

 Shrinking phase: Kỳ giải phóng khóa

 Các giao tác tiến hành giải phóng khóa, nhưng không thể nhận được khóa nào mới.

 Các giao tác phải giữ tất cả các khóa exclusive cho đến khi giao tác hoàn tất (commitment).

 Ngăn ngừa các giao tác khác đọc dữ liệu đang dùng

để ghi.

11

Trang 12

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

12

Begin: Bắt đầu giao tác.

Lock Point: thời điểm giao tác nhận tất cả các khóa nhưng chưa giải phóng khóa nào End: Kết thúc giao tác

12

Trang 13

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Tuần tự xin và tháo khóa:

(Begin application) Begin transaction Acquire locks before reading or writing Commit

Release locks (End application)

13

Trang 14

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Vấn đề gặp phải: Deadlock

 Một hệ thống ở trạng thái deadlock nếu tồn tại một tập hợp các giao dịch sao cho mỗi giao dịch trong tập hợp đang chờ một giao dịch khác trong tập hợp.

 Ví dụ: (T0, T1, T2, …, Tn-1, Tn)

 T0 chờ mục dữ liệu được giữ bởi T1

 T1 chờ mục dữ liệu bị chiếm bởi T2

 …

 Tn-1 chờ mục dữ liệu được giữ bởi Tn

 Tn chờ mục dữ liệu bị chiếm bởi T0

Trang 15

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu tập trung (tt)

 Phương pháp giải quyết vấn đề Deadlock:

 Ngăn ngừa Deadlock

 Đảm bảo hệ thống không bao giờ rơi vào tình trạng Deadlock.

 Thường dùng cho các hệ thống có xác suất rơi vào deadlock cao.

 Phát hiện Deadlock và khôi phục

 Cho phép hệ thống đi vào Deadlock, và cố gắng khôi phục.

 Dùng cho hệ thống có xác suất rơi vào deadlock thấp.

15

Trang 16

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán

ROOT

DTM AGENT

DTM AGENT

DTM AGENT

Local Transaction Manager (LTM)

Messages Messages

Messages Messages

16

Trang 17

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán (tt)

 Nếu các giao tác thỏa well-formed và locked thì giao thức khóa hai pha vẫn còn

2-phase-đúng trong Hệ cơ sở dữ liệu phân tán.

 Các vấn đề gặp phải với trình quản lý giao tác phân tán (DTM)

 Phân phối nhiều bản sao của cùng một dữ liệu.

17

Trang 18

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán (tt)

 Hướng giải quyết (trình bày chi tiết trong chương 9)

 Write-locks-all, read-locks-one: Exclusive lock có được ở tất cả các bản sao, trong khi shared lock chỉ có mặt ở một bản sao Khi

đó, có sự đụng độ shared-exclusive ở site mà shared lock được yêu cầu Đụng độ Exclusive-exclusive ở tất cả các site.

 Majority locking: Cả shared và exclusive được gắn cho đa số các bản sao dữ liệu (số bản sao được yêu cầu nhiều hơn các bản sao không yêu cầu gắn lock) Như vậy có ít nhất một đụng

độ xảy ra khi có hai giao tác yêu cầu khóa cùng một dữ liệu.

 Primary copy locking: Nâng một bản sao nào đó làm bản sao đặc quyền (Primary copy) Tất cả các lock phải được yêu cầu tại bản sao này,vì vậy sẽ phát hiện đụng độ ngay tại khu vực này.

18

Trang 19

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán (tt)

 Quản lý Deadlock

 Đồ thị chờ đợi (wait-for-graph) WFG

 Đồ thị có hướng, một cung Ti -> Tj tồn tại trong WFG nếu Ti

đang đợi giao tác Tj giải phóng khóa trên một thực thể nào đó

 Nếu có chu trình thì có Deadlock

 Local WFG: Đồ thị chờ đợi tại mỗi vị trí.

 Global WFG: Đồ thị chờ đợi toàn cục, gồm tất cả các LWFG

19

j

19

Trang 20

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán (tt)

Trang 21

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán (tt)

 Phương pháp xử lý Deadlock

 Phát hiện và giải phóng Deadlock

 Dùng GWFG để phát hiện Deadlock (chu trình)

 Giải phóng Deadlock bằng cách chọn ra một hoặc nhều giao tác “nạn nhân” (bị deadlock), tước quyền rồi hủy bỏ chúng nhằm phá vỡ chu trình trong GWFG

 Dựa vào đâu để chọn “nạn nhân:

 Lượng công sức đã được đầu tư trong giao tác Công sức này sẽ bị mất nếu giao tác bị hủy bỏ

 Chi phí hủy bỏ giao tác Phụ thuộc vào các số lượng cập nhật mà giao tác đã thực hiện

 Lượng công sức để kết thúc giao tác Tránh hủy giao tác sắp kết thúc

 Số lượng các chu trình chứa giao tác Chọn giao tác nằm trong nhiều chu trình để hủy

21

Trang 22

Điều khiển tranh chấp dựa vào khóa trong

Hệ cơ sở dữ liệu phân tán (tt)

 Phương pháp xử lý Deadlock

 Ngăn chặn Deadlock

 Khai báo tất cả các mục dữ liệu sẽ được truy xuất.

 Nếu tất cả các mục dữ liệu này đều sẵn sàng thì giao tác được phép thi hành, ngược lại thì không được thi hành.

 Tránh Deadlock

 WAIT-DIE:

 Nếu Ti yêu cầu một khóa trên mục dữ liệu đã được khóa bởi Tj thì Ti được phép chờ nếu và chì nếu Ti già hơn Tj Nếu Ti trẻ hơn Tj thì Ti bị hủy bỏ và được khởi động lại timestamp cũ.

 If ts(Ti) < ts(Tj) then Ti chờ else Ti chết.

 WOUND-DIE:

 Nếu Ti yêu cầu một khóa trên một mục dữ liệu đã được Tj khóa thì Ti được phép chờ nếu và chỉ nếu nó trẻ hơn Tj; bằng không

Tj bị hủy và trao khóa cho Ti.

 If ts(Ti) < ts(Tj) then Tj bị hủy và trao khóa else Ti chờ

 Phát hiện và giải phóng Deadlock

22

Trang 23

Nội dung trình bày

 Điều khiển truy xuất đồng thời trong giao tác phân tán (Concurrency Control For Distributed Transactions)

Kiến trúc giao tác phân tán (Architectural

Aspects Of Distributed Transactions)

23

Trang 24

Kiến trúc giao tác phân tán

thúc hai giai đoạn)

nhận 2 pha.

24

Trang 25

Giới thiệu

 Các giao tác phân tán (distributed

transactions) được thực thi bởi nhiều tiến trình

Trang 26

Nghi thức xác nhận 2 pha (2PC)

hiện các thao tác của giao dịch tại vị trí nguồn.

trí có tham gia vào việc thực hiện các thao tác của giao dịch.

26

Trang 27

Nghi thức xác nhận 2 pha (2PC)

 Giai đoạn 1 (phase 1):

 Xét một giao tác T được khởi động từ một vị trí nào đó và gọi thực hiện các giao tác ở các site khác hoặc ở chính vị trí khởi động giao tác T

(ta gọi các giao tác này là C)

 Tất cả các giao tác con Ti sẽ quyết định đồng ý hay huỷ bỏ Giao tác con C gởi tín hiệu báo chuẩn bị kết thúc cho các TiTi sẽ phản hồi

cho C bằng tín hiệu đồng ý kết thúc hay không

 Giai đoạn 2 (phase 2)

 Dựa trên các thông tin trả lời của giai đoạn 1, C có thể quyết định chấm dứt T hay không Sau đó C sẽ gởi tín hiệu đồng ý toàn cục( global

commit) hay hủy bỏ toàn cục(global abort) đến các Ti

T sẽ không được kết thúc nếu có một Ti chưa kết thúc

27

Trang 29

29

Trang 31

Write BEGIN COMMIT log

PREPARE

commit

READY

to commit?

ready

ready

commit

commit

yes

GLO BAL

COM MIT

Msg TYPE

commit

commit

Write END T

log Write END T

log

Trang 32

Write BEGIN COMMIT log

PREPARE

READY

to commit?

Trang 33

Write BEGIN COMMIT log

PREPARE

abort

READY

to commit?

ready

ready

Abort

Commit ACK

Trang 34

Ví dụ:

Begin transaction BookTrip

book plane

book hotel

book rental car

End transaction BookTrip

34

Trang 35

Phase 1: Client giao tiếp với điều phối viên

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Trang 36

Phase 1: Client gọi phương thức đến BookPlane

Trang 37

Phase 1: Đối tượng thông báo đến các thành viên

Các thành viên có thể biết được thông tin điều phối viên thông qua TID (vi dụ: địa chỉ IP)

Điều phối viên được trỏ đến thành viên

Các thành viên có thể biết được thông tin điều phối viên thông qua TID (vi dụ: địa chỉ IP)

Điều phối viên được trỏ đến thành viên

Thành viên chỉ có thể gọi phương thức

Join nếu như đã ở trạng thái sẵn sàng

Thành viên chỉ có thể gọi phương thức

Join nếu như đã ở trạng thái sẵn sàng

join(TID,ref to participant)

plane.bookFlight(111,”Seat32A”,TID)

37

Trang 38

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Trang 39

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

COMMIT toàn cục đến mỗi thành viên

Điều phối viên bắt đầu

phase 2 và gởi kết quả

COMMIT toàn cục đến

to rent a car

39

Trang 40

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Trang 41

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Điều phối viên gởi thông báo GLOBAL_ABORT đến tất cả thành viên

Recoverable objects needed

to rent a car

41

Trang 42

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Trang 43

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Trang 44

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Điều phối viên bắt đầu phase2:

hỏi các thành viên để uỷ thác,

Do không có tín hiệu từ vị trí BookPlane nên

gởi GLOBAL ABORT

Điều phối viên bắt đầu phase2:

hỏi các thành viên để uỷ thác,

Do không có tín hiệu từ vị trí BookPlane nên

gởi GLOBAL ABORT

Recoverable objects needed

to rent a car

Phase2: Server BookPlane bị lỗi sau khi trả về ‘OK’ (2)

44

Trang 45

BookTrip Coordinator

BookPlane Participant BookHotel Participant BookRentalCar Participant

Trang 46

Phase 1: yêu cầu chuẩn bị và phản hồi

Trang 47

Global CommitACK

Global Commit

ACK

47

Trang 48

Nghi thức xác nhận 2 pha (2PC)

1. 2PC cho phép 1 thành viên có thể đơn phương hủy bỏ 1 giao dịch cho đến khi nó quyết định gửi biểu quyết commit

2. Khi một thành viên biểu quyết commit hay abort một giao dịch,

nó không thể thay đổi biểu quyết của nó nữa.

3. Khi một thành viên đang trong trạng thái sẵn sàng(READY),

nó có thể chuyển sang commit hoặc abort , phụ thuộc vào thông báo từ điều phối viên.

4. Quyết định kết thúc toàn cục được đưa ra bởi điều phối viên theo đúng qui tắt xác nhận toàn cục.

5. Mỗi tiến trình sẽ thiết lập một bộ đếm thời gian khi nó chuyển vào 1 trạng thái.

48

Trang 49

Kiến trúc của giao tác phân tán

thúc hai giai đoạn)

nhận 2 pha.

49

Trang 51

Kiến trúc tập trung

51

Trang 52

Kiến trúc tập trung

 Đặc điểm:

 Điều phối viên liên lạc với tất cả các thành viên.

 Các thành viên không thể liên lạc được với nhau.

52

Trang 54

54

Trang 55

Kiến trúc phân cấp

55

Trang 57

 Ủy thác giao dịch: gửi thông báo vote- commit(biểu quyết

ủy thác).

 Hủy bỏ giao dịch: gửi thông báo vote-abort (biểu quyết hủy bỏ).

57

Trang 59

Kiến trúc tuyến tính

59

Trang 60

Kiến trúc tuyến tính

 Đặc điểm:

 Các thành viên có thể trao đổi với nhau.

 Có thứ tự giữa các vị trí trong hệ thống dành cho việc giao tiếp.

 Nghi thức 2PC được cài đặt bằng cách trong pha đầu tiên truyền tới (từ 1-> N) và trong pha thứ 2 truyền ngược lại từ N về điều phối viên.

60

Trang 61

Kiến trúc tuyến tính

 Pha 1:

 Điều phối viên gởi thông báo repare đến thành viên 2

 Nếu thành viên 2 chưa sẵn sàng xác nhận giao dịch

 vote-abort đến thành viên 3 và giao dịch bị hủy tại thời điểm này

 Ngược lại, nếu thành viên 2 đồng ý commit  gởi thông báo vote-commit cho thành viên 3  READY

 Quá trình tiếp tục cho đến khi commit đến thành viên N

 Kết thuc pha 1

61

Trang 62

62

Trang 63

Kiến trúc phân quyền

63

Trang 64

Kiến trúc phân quyền

Trang 65

Kiến trúc phân quyền

 Điều phối viên gửi thông báo prepare đến tất cả các thành viên.

 Mỗi thành viên sau đó sẽ gửi quyết định của mình đến tất cả các thành viên khác và đến điều phối viên bằng thông báo vote-commit hoặc vote-

abort.

 =>Mỗi thành viên đợi các thông báo từ tất cả các thành viên khác rồi đưa ra quyết định theo đúng quy tắc ủy thác toàn cục

65

Trang 66

Kiến trúc của giao tác phân tán

thúc hai giai đoạn)

nhận 2 pha.

Aug 20, 2024

66

Trang 67

Nhận xét – Số lượng các thông báo

Các kiến trúc trên có số lượng các thông báo phụ thuộc vào số lượng các thành viên N:

 Kiến trúc tập trung và phân cấp có 4N thông báo.

 Kiến trúc tuyến tính có 2N thông báo.

 Kiến trúc phân quyền có N(N+1) thông báo

67

Trang 68

Nhận xét – Thời gian chờ

Thời gian chờ phụ thuộc vào thời gian T để truyền thông báo từ vị trí này đến vị trí khác của 1 giao tác

Trang 69

Thank You!

69

Ngày đăng: 29/06/2015, 14:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w