1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng hệ cơ sở dữ liệu phân tán quản lý giao dịch điều khiển tương tranh

110 854 6

Đ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 110
Dung lượng 669,5 KB

Nội dung

Tổng quanGiao dịch: Tập hợp các hoạt động tạo ra sự chuyển đổi từ một trạng thái nhất quán sang trạng thái nhất quán khác của CSDL và trong khi vận hành CSDL phải đảm bảo tính nhất quán

Trang 1

CHƯƠNG IV: QUẢN LÝ

GIAO DỊCH VÀ ĐIỀU KHIỂN

TƯƠNG TRANH

Trang 2

CHƯƠNG IV QUẢN LÝ GIAO DỊCH

VÀ ĐIỀU KHIỂN TƯƠNG TRANH

Trang 4

Tổng quan

Giao dịch: Tập hợp các hoạt động tạo ra sự chuyển

đổi từ một trạng thái nhất quán sang trạng thái nhất quán khác của CSDL và trong khi vận hành CSDL phải đảm bảo tính nhất quán

Trang 5

Các trạng thái của giao dịch

– Tích cực(Active): trạng thái ban đầu và trong khi vận hành

– Chuyển giao riêng phần(Paritally committed): Sau khi phát

biểu cuối cùng đã được vận hành

– Chuyển giao(Committed): Sau khi chuyển đổi thành công hoàn

toàn

– Thất bại(Failed): Sau khi phát hiện rằng việc vận hành thông

thường không thể xử lý hơn nữa

– Thoát(Aborted): Sau khi giao dịch đã quay lui và CSDL được

nạp trở lại trạng thái trước khi khởi động giao dịch Khởi

động lại hay hủy giao dịch

Trang 7

begin transaction_Reservation

begin

input(fight_no,date,customer_name);

EXEC SQL SELECT STSOLD, CAP INTO temp1, temp2

FROM FLIGHT where FNO = fight_no and DATE = date;

if temp1 = temp2 then output(“no free seats");

Trang 8

 Với 2 thao tác O ij ,O ik U OS i , nếu O ij = {R(x) v W(x)} và O ik =

W(x), thì với hạng mục dữ liệu x bất kỳ, có hoặc O ij < i O ik hoặc O ik

Trang 10

Tính chất giao dịch (ACID )

• Nguyên tử: giao dịch là một đơn vị xử lý , nó hoặc thực

hiện toàn bộ hoặc không toàn bộ

• Nhất quán: 1 vận hành thành công của giao dịch phải

lấy được trạng thái nhất quán đến một trạng thái cơ sở dữ liệu mới nhất quán (Không vi phạm ràng buộc toàn vẹn)

• Cách ly: giao dịch không tạo sự biến đổi nhìn thấy trên

các giao dịch khác cho tới khi được chuyển giao, tức là giao dịch là không nhận thức với các vận hành giao dịch khác tương tranh trong hệ thống.

• Bền vững: Ngay khi 1 giao dịch đã chuyển giao thay đổi

của nó, các thay đổi này không bao giờ mất do sự cố hệ thống xảy ra sau

Trang 11

- Phục hồi giao dịch là hoạt động của việc nạp lại

nguyên tử do lỗi đưa vào, quá tải hệ thống và khóa chết

- Phục hồi do hỏng đột ngột là hoạt động của việc đảm bảo tính nguyên tử trong khi hỏng đột ngột hệ thống

Trang 12

Toàn vẹn

– Đơn giản là tính đúng đắn và toàn vẹn của giao dịch chuyển từ trạng

thái nhất quán này sang trạng thái nhất quán khác của dữ liệu

– Các giao dịch là chương trình thực hiện đúng và không vi phạm các

ràng buộc toàn vẹn của CSDL

– Dữ liệu nhiễu (dirty) là dữ liệu đã được cập nhật nhưng vẫn chưa được

chuyển giao.

– Các mức nhất quán khác nhau của CSDL

∗ Mức 0: Giao dịch T không đè lên các dữ liệu dirty của các giao dịch khác

∗ Mức 1: Mức 0 + T không chuyển giao bất kỳ thao tác viết nào trước khi

kết thúc giao dịch (EOT).

∗ Mức 2: Mức 1 + T không đọc dữ liệu dirty từ các giao dịch khác.

∗ Mức 3: Mức 2 + Các giao dịch khác không đọc bất cứ dữ liệu dirty nào

bởi T trước khi T hoàn tất.

Trang 13

Cách ly

– Tính chất nhằm đảm bảo mỗi giao dịch nhìn một

CSDL luôn nhất quán.

– Nếu 2 giao dịch truy nhâp tương tranh một hạng

mục dữ liệu đang được cập nhật bởi một trong

chúng(VD, thao tác ghi) thì không thể đảm bảo giao dịch thứ hai sẽ đọc giá trị đúng

– Tính nhất quán của các giao dịch sẽ đạt được nếu các giao dịch vận hành một cách tuần tự.

– Vì vậy, nếu một vài giao dịch được vận hành tương

tranh, kết quả phải là như nhau nếu chúng được

vận hành nối tiếp nhau (-> nối tiếp hóa)

Trang 14

Ví dụ: Xét 2 giao dịch với ban đầu x = 50.

Nếu thực hiện {T1 >T2} hay {T2 > T1} đều cho kết quả x=52

Trang 15

– Vận hành tương tranh : T2

đọc các giá trị x trong khi nó đang thay đổi, kết quả là x = 51

và sai!

Trang 16

Các tình huống xuất hiện nếu không đảm bảo tính cách ly(SQL-92):

- Đọc nhiễu: T1 thay đổi x rồi T2 đọc x trước

khi T1 kết thúc; nếu T1 thoát, T2 đọc giá trị không tồn tại trong csdl

- Đọc mờ(không lặp lại): T1 đọc x, T2 thay đổi

hay xóa x và chuyển giao; T1 cố đọc lại lần

nữa nhưng giá trị đã thay đổi hoặc không còn

- Ảo ảnh: T1 tìm kiếm csdl theo vị từ P trong

khi T2 đưa vào các bộ mới thỏa mãn P

Trang 17

Các mức cách ly khác nhau:

- Đọc không chuyển giao: 3 hiện tượng đều có

khả năng xuất hiện

- Đọc có chuyển giao: đọc mờ và ảo ảnh xuất

hiện

- Đọc lặp lại: Chỉ có thể ảo ảnh

- Nối tiếp hóa tự động: Không xảy ra ảo ảnh

Trang 18

Bền vững

– Ngay khi giao dịch chuyển giao hệ thống phải

đảm bảo rằng kết quả của các thao tác của

nó sẽ không bao giờ mất dù sau đó có thể sự

cố

– Phục hồi CSDL được dùng để đạt được nhiệm

vụ.

Trang 20

Phân loại giao dịch

• Có nhiều tiêu chí phân loại

– Quãng thời gian giao dịch

∗ On-line (tồn tại thời gian ngắn)

∗ Batch (tồn tại thời gian dài)

– Tổ chức của lênh đọc và ghi trong giao dịch

Trang 21

Phân loại giao dịch(…)

* Luồng làm việc(Workflows): Tập hợp các nhiệm vụ

được tổ chức để đạt được một quá trình vận hành đã cho Workflows phát sinh các giao dịch và thể hiện được rõ hơn các quá trình vận hành phức tạp.

* Phạm vi ứng dụng

phân tán/ không phân tán,

thuần nhất / không thuần nhất

Trang 22

Phân loại giao dịch

Trang 23

Định hướng cho xử lý giao dịch

• Cấu trúc giao dịch( mô hình giao dịch) : Phẳng (đơn giản), lồng

• Tính nhất quán của csdl nội tai : Các giải thuật điều khiển dữ liệu( đảm bảo tính nhất quán)

• Các giao thức tin cậy

– Nguyên tử và bền vững

– Các giao thức phục hồi cục bộ

– Các giao thức chuyển giao tổng thể

• Các giải thuật điều khiển tương tranh

– Đồng bộ việc vận hành các giao dịch tương tranh thế nào( tiêu chuẩn đúng đắn)

– Nhất quán trong giao dịch, cách ly

• Các giao thức điều khiển nhân bản : Điều khiển tính nhất quán tương hỗ các dữ liệu nhân bản thế nào

Trang 24

• Quản trị giao dịch nhằm đạt được 4 tính chất giao dịch: ACID

• Giao dịch có thể được phân loại theo (i) thời gian (ii) Tổ chức ghi và đọc và(iii) Cấu trúc

• Xử lý giao dịch liên quan đến các độ tin cậy, tương tranh, các giao thức nhân bản đảm bảo 4 tính chất giao dịch

Trang 26

Các cơ chế điều khiển tương tranh

a Mục tiêu

b Nối tiếp hóa phân tán

Trang 27

a Mục tiêu

-Co giãn được khi sự cố site và truyền thông

- Thực hiện song song để thỏa mãn yêu cầu hiệu năng.

- Tổng phí tính toán và lưu trữ nhỏ

-Thực hiện được trên mạng có độ trễ lớn

- Đặt ít ràng buộc trên cấu truc hoạt động nguyên tử

Trang 28

Điều khiển Tương tranh

Điều khiển tương tranh phân tán nhằm ngăn chặn việc sản sinh

ra các thực hiện không khả tuần tự của các giao tác phân tán

-> vấn đề đồng bộ các giao dịch tương tranh sao cho tính nhất

quán của cơ sở dữ liệu được bảo toàn trong khi cùng thời gian đạt được mức độ tương tranh cao nhất

Bất thường do mất điều khiển tương tranh

Mất cập nhật: Tác dụng của 1 vài giao dịch không được

phản ánh trên cơ sở dữ liệu

Phân tích không nhất quán: Giao dịch nếu đọc cùng hạng

mục dữ liệu nhiều hơn 1 lần, có thể đọc các gía trị khác nhau

Nhiều bản sao không nhất quán (khi nhân bản )

Trang 29

Các giải pháp

• Nhãn thời gian (time stamp):

 Sắp xếp các giao tác , áp đặt các thao tác truy nhập tới DL

theo thứ tự được xác định trước

 Mỗi giao tác được dẫn trỏ bởi nhãn thời gian duy nhất

 Mỗi trạm đánh nhãn thời gian một cách tự trị theo đồng hồ địa phương và số hiệu của trạm Ví dụ, một giao tác được khởi phát ở trạm i tại thời điểm t sẽ có nhãn thời gian <t,i>

• Sự đặt khoá (locking): Giao thức gồm hai giao tác nguyên

Trang 30

Các giải pháp(tiếp )

• Sự hợp thức hoá giao tác

 Phương pháp trực tiếp để hợp thức hoá một giao tác phân tán: tích hợp thực sự các cập nhật của giao tác và CSDL.

 Giao thức hợp thức hoá hai giai đoạn:

 Giai đoạn chuẩn bị: trạm điều phối yêu cầu mỗi trạm tham gia chuẩn bị cho sự hợp thức hoá

 Giai đoạn hợp thức: trạm điều phối ra lệnh cho tất

cả các trạm tham gia hợp thức hoá các cập nhật của chúng nếu như tất cả chúng đều hoàn thành đúng giai đoạn thứ nhất hay nếu không thì huỷ bỏ chúng

Trang 31

b Nối tiếp hóa phân tán

Lịch biểu nối tiếp

Các lịch biểu tương đương

Lịch biểu nối tiếp hóa

Kiểm tra tính nối tiếp

Trang 32

Lịch biểu

Lịch biểu đặc tả thứ tự sắp xếp vận hành các thao tác.

O là tập các giao dịch T = {T1, T2, , Tn}, với được đặc tả bởi thứ tự riêng phần (i, i) Một lịch biểu có ≺}, ở đây thể được đặc tả như một thứ tự riêng phần qua O

trong đó

– Với 2 thao tác đụng độ bất kỳ Oij, Okl T thì hoặc Oij

≺}, ở đây T Okl hay Okl ≺}, ở đây T Oij

Trang 33

Lịch biểu nối tiếp

Trong một lịch biểu nối tiếp

• Mọi thao tác trong giao dịch xuất hiện liên tiếp nhau

• Không xen kẽ các thao tác

• Nếu mỗi giao dịch thu được trong trạng thái nhất

quán thì lịch biểu nối tiếp các giao dịch này cũng thu được nhất quán.

S1 = { R1(A);W1(A);R1(B);W1(B);C1;R2(A);R2(B);C2; }

Trang 34

Lịch biểu nối tiếp(…)

• Lịch biểu là nối tiếp nếu mọi giao dịch trong T vận hành nối

tiếp Ví dụ: 2 giao dịch sau:

• Hai lịch biểu nối tiếp là S1 = {1, 1} và S≺1} và S 2 = {2, 2}≺1} và S

• Hai lịch biểu nối tiếp là S1 = {1, 1} và S2 = {≺}, ở đây 2, 2}≺}, ở đây

T1: Read(x)

x ← x + 1Write(x)Commit

T2: Read(x)

x ← x + 1Write(x)Commit

Trang 35

Lịch biểu nối tiếp(…)

Chúng ta cũng đã sử dụng ký pháp sau:

– {T1, T2} = {R1(x),W1(x),C1,R2(x),W2(x),C2} – {T2, T1} = {R2(x),W2(x),C2,R1(x),W1(x),C1}

Trang 36

Các lịch biểu tương đương

Hai lịch biểu là tương đương nếu chúng có cùng ảnh

hưởng trên csdl

Hai lịch biểu S và S’ là tương đương nếu và chỉ nếu:

• Chúng cùng chứa các giao dịch và các thao tác

(S.∑T=S’.∑T)

• Thứ bậc của mọi thao tác đụng độ của các giao dịch không thoát theo cùng cách thức

Trang 37

Lịch biểu nối tiếp hóa

Một lịch biểu S được gọi là nối tiếp hóa nếu nó tương

đương với một lịch biểu nối tiếp nào đó.

VD: 3 lịch biểu sau được nối tiếp hóa và tương đương

S1 = {R1(A);W1(A);R1(B);W1(B);C1;R2(A);R2(B);C2; }

S2 = {R1(A);W1(A);R2(A);R2(B);C2;R1(B);W1(B);C1}

S3 = {R1(A);W1(A);R2(A);R1(B);W1(B);C1;R2(B);C2}

Trang 38

Kiểm tra tính nối tiếp

Nếu đồ thị ưu tiên (dựa trên các thao tác đụng độ) cho lịch biểu S không có chu trình thì S là nối tiếp Lịch biểu nối tiếp có được qua sắp xếp topo

Kiểm tra việc thực hiện khả thi:

Bô lập lịch kiểm tra tính nối tiếp của lịch biểu Nó duy trì và mở rộng đô thị ưu tiên trong khi các thao tác mới được thực hiện (hay công bố) bởi các giao dịch :

+ Nếu đồ thị thực hiện là không chu trình, thì tiếp tục lập lịch.

+ Khác đi, thiết lập lại một vài giao dịch.

Tính nối tiếp trong CSDL phân tán :

+ Lịch biểu cục bộ và tổng thể phải được xem xét

+ Để lịch biểu tổng thể được nối tiếp hóa:

1.Mỗi lịch biểu cục bộ nên được nối tiếp hóa

2 Hai thao tác đụng độ nên theo cùng một thứ tự tương đối trên mọi lịch biểu cục bộ nơi chúng xuất hiện

Trang 39

CHƯƠNG IV QUẢN LÝ GIAO DỊCH

VÀ ĐIỀU KHIỂN TƯƠNG TRANH

Trang 40

Điều khiển tương tranh

• Điều khiển tương tranh là bài toán đồng bộ

các giao dịch tương tranh(thứ tự các phép toán giao dịch tương tranh) sao cho đạt được 2 tính chất :

- Duy trì tính nhất quán csdl

- Đạt được mức độ tương tranh các thao tác

• Dãy vận hành các giao dịch đạt được nhất quán nếu mỗi giao dịch nhất quán.

Trang 41

• Đụng độ các thao tác: Hai thao tác Oij(x) và Okl(x) của giao dịch Ti và

Tk đụng độ khi và chỉ khi ít nhất có một thao tác ghi, tức là

T2: Read(x)

x ← x + 1Write(x)Commit

Trang 42

Xử lý tương tranh dựa trên khóa

• Giao dịch chỉ ra bằng khóa các yêu cầu từ bộ lập lịch (quản trị khóa)

• Khóa hoặc là khóa đọc rl (còn gọi là khóa chia xẻ) hoặc

là khóa ghi wl (còn gọi là khóa dành riêng )

• Các khóa đọc và các khóa ghi có thể đụng độ

Trang 43

Khóa 2 pha

Yêu cầu

1 Giao dịch khóa đối tượng trước khi sử dụng nó (read / write)

2 khi đối tượng bị khóa bởi các giao dịch khác, giao dịch muốn

sử dụng yêu cầu phải chờ

3 Khi giao dịch giải phóng 1 khóa, nó không yêu cầu bất kỳ

khóa nào trên đối tượng khác

Tính nghiêm ngặt của khóa : Mọi khóa được giải phóng cuối

mỗi giao dịch (sl shared lock)

(sl(x);sl(y);r(x); unlock(x);r(y); unlock(y)) hay

(sl(x);sl(y);r(x);r(y); unlock(x); unlock(y))

Việc triến khai thông qua bảng khóa (trong các hệ thống thương

mại là các header dữ liệu , id của giao dịch)

Trang 44

Khóa 2 pha(tiếp)

1 Giao dịch khóa một đối tượng trước khi sử dụng nó (read / write)

2 Khi đối tượng bị giao dịch khác khóa, giao dịch này phải chờ

3 Khi giao dịch giải phóng 1 khóa, nó không yêu cầu bất kỳ khóa nào khác(trên đối tượng khác)

Trang 45

Khoa 2 pha Tập trung

• Chỉ có 1 bộ lập lịch

2PL trong hệ thống

phân tán.

• Các yêu cầu Khóa

được công bố cho

bô lập lịch trung

tâm (từ bộ quản trị

giao dịch )

Trang 46

Khóa 2 pha phân tán

• Bộ lập lịch được đặt ở mỗi

site, điều khiển các yêu cầu

khóa cho dữ liệu ở site đó.

• Giao dịch có thể đọc bất kỳ

nhân bản nào của đối tượng x,

bằng cách dành được một

khóa đọc trên bản sao của x

• Giao dịch viết x phải dành

được khóa ghi trên mọi bản

sao của x.

Trang 47

CHƯƠNG IV QUẢN LÝ GIAO DỊCH

VÀ ĐIỀU KHIỂN TƯƠNG TRANH

Trang 48

Thứ tự nhãn thời gian

 “Lựa chọn” thứ tự nối tiếp và vận hành theo đó

 Giả thiết tổng thể (phạm vi hệ thống) là tăng đơn điệu

1 Giao dịch Ti được gán một nhãn thời gian duy nhất tổng thể TS(Ti) định nghĩa mối quan hệ giữa các giao dịch già hơn và trẻ hơn

2 Bộ quản trị giao dịch gắn nhãn thời gian cho mọi thao tác công bố bởi các giao dịch

3 Mỗi đối tượng x có 2 nhãn thời gian:

RTS(X) := max{TS(T) | T đã đọc x}

WTS(X) := max {TS(T) | T đã ghi x}

Trang 49

Phân giải đụng độ thao tác bằng thứ tự

Một thao tác có thể xử lý nếu mọi bước đụng độ của các gỉa thiết rằng giao dịch T muốn thao tác trên đối tượng x:

Case operation of:

read: if TS(T) < WTS(x) then reject (reschedule) read;

Trang 50

Thứ tự thời gian

• Giao dịch (T i ) được gán nhãn thời gian duy nhất tổng thể ts(T i )

• Bộ quản trị giao dịch gắn nhãn thời gian cho mọi thao tác được công bố bới giao dịch

• Mỗi hạng mục dữ liệu được gán nhãn thời gian ghi (wts) và nhãn thời gian đọc (rts):

rts(x)=nhãn thời gian lớn nhất cho việc đọc bất kỳ trên x

wts(x)=nhãn thời gian lớn nhất cho việc ghi bất kỳ trên x

• Các thao tác đụng độ được giải quyết bởi thứ tự nhãn thời gian

TO cơ bản:

với R i (x) với W i (x)

if ts(T i )<wts(x) if ts(T i )<wts(x) and ts(T i )<rts(x)

then reject R i (x) then reject W i (x)

else accept R i (x) else accept W i (x)

rtsts(T i ) wtsts(T i )

Trang 51

Thứ tự nhãn thời gian được giữ

• TO cơ bản cố gắng vận hành một thao tác ngay khi nhận được nó

– Diễn biến theo thời gian

– Quá nhiều khởi động lại do không giữ trễ

• Nhãn thời gian được giữ sẽ giữ trễ từng thao tác cho tới khi có một đảm bảo không khởi tạo lại

Trang 52

Rj(x) sao cho

ts(Ti)<ts(xr)<ts(Tj)

Trang 54

Các giải thuật điều khiển tương tranh tối ưu

• Mô hình vận hành giao dịch: chia thành các giao dịch con, mỗi một trong chúng vận hành tai 1 site

– Tij: Giao dịch Ti vận hành tại site j

• Giao dịch vận hành độc lập trên mỗi site cho tới khi chúng đến cuối pha đọc của chúng

• Mọi giao dịch con được gán một nhãn thời gian ở

cuối pha đọc của chúng

• Kiểm tra tính hợp lệ thực hiện trong pha kiểm tra

Nếu có một sự cố , tất cả bị từ chối

Trang 55

Kiểm tra hợp lệ điều khiển

tương tranh lạc quan

• Nêu mọi giao dịch Tk ở đó ts(T k )<ts(T ij ) đã hoàn thành pha ghi

trước khi Tij bắt đầu pha đọc của nó thì kiểm tra hợp lệ thành công

– Giao dịch vận hành theo thứ tự nối tiếp

Đọc Kiểm tra Ghi

Tk

Đọc Kiểm tra Ghi

Tij

Trang 56

Kiểm tra hợp lệ điều khiển

tương tranh lạc quan

• Nêu có 1 giao dịch bất kỳ Tk sao cho ts(T k )<ts(T ij ) đã hoàn

thành pha ghi trong khi Tij bắt đầu pha đọc của nó thì việc kiểm tra hợp lệ thành công nếu WS(Tk)RS(Tij)=

– Pha đọc và pha ghi chồng lấn nhưng pha đọc Tij không sử dụng hạng mục dữ liệu được ghi bởi Tk

Đọc Kiểm tra Ghi

Tk

Đọc Kiểm tra Ghi

Tij

Ngày đăng: 15/01/2016, 22:28

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w