Tải bản đầy đủ (.ppt) (69 trang)

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

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 (493.92 KB, 69 trang )

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
QUẢN LÝ GIAO TÁC PHÂN TÁN
(THE MANAGEMENT OF DISTRIBUTED TRANSACTIONS)
(THE MANAGEMENT OF DISTRIBUTED TRANSACTIONS)
BÁO CÁO MÔN CƠ SỞ DỮ LIỆU PHÂN TÁN
1
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
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
Tổng quan



Phân tích các vấn đề xảy ra khi thực thi đồng
thời các giao tác.

Giải quyết vấn đề tranh chấp dựa vào khóa
(based on locking).

Giao thức khóa hai pha trong cơ sở dữ liệu tập
trung.

Giao thức khóa hai pha trong cơ sở dữ liệu phân
tán và các vấn đề xảy ra trong môi trường phân
tán.
44
Đ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
Đ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
Đ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

Đ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
Đ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
Đ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.
1010
Đ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.
1111
Đ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
Đ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)
1313
Đ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ụ: (T
0
, T
1
, T
2
, …, T
n-1
, T
n
)

T
0
chờ mục dữ liệu được giữ bởi T
1

T
1
chờ mục dữ liệu bị chiếm bởi T
2




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

T
n
chờ mục dữ liệu bị chiếm bởi T
0

Tất cả đều chờ…

Có thể hủy (abort) một số giao dịch tham gia vào Deadlock để
giải quyết vấn đề.
14
T
1
T
2
Khóa A
Chờ Khóa B
Khóa B
Chờ Khóa A
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)

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.
1515
Đ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
AGENT AGENT
DTM
AGENT
DTM
AGENT
DTM
AGENT
LTM
At site k
LTM
At site j
LTM
At site i

AGENT
Distributed
Transaction
Distributed
Transaction
Manager
(DTM)
Local
Transaction
Manager
(LTM)
MessagesMessages
Messages Messages
1616
Đ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à 2-phase-
locked thì giao thức khóa hai pha vẫn còn
đú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.
1717
Đ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.
1818
Đ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 T
i
-> T
j
tồn tại trong WFG nếu T
i

đang đợi giao tác T

j
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
T
i
T
j
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)

Ví dụ về LWFG và GWFG

Xét 4 giao tác T1, T2, T3, T4

T1->T2->T3->T4

T1 và T2 chạy tại vị trí 1

T3 và T4 chạy tại vị trí 2
20
T
1
T

4
T
3
T
2
Vị trí 1 Vị trí 2
T
1
T
4
T
3
T
2
Vị trí 1 Vị trí 2
LWFG GWFG
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)

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.
2121
Đ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
2222
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
Kiến trúc giao tác phân tán
1) Giới thiệu
2) Nghi thức xác nhận 2 pha (giao thức kết
thúc hai giai đoạn)

3) Các kiến trúc giao tiếp của nghi thức xác
nhận 2 pha.
4) Nhận xét.
24
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
ở các vị trí khác nhau.

Sự giao tiếp giữa 2 tiến trình(processes) hay
giữa 2 server có thể thực hiện thông qua
sessions và datagrams

Có 2 loại kiến trúc giao tác phân tán cơ bản:

Cấu trúc tập trung

Cấu trúc phân cấp
25

×