Bài giảng cơ sở dữ liệu phân tán chương 6 nguyễn mậu hân

36 545 0
Bài giảng cơ sở dữ liệu phân tán  chương 6   nguyễn mậu hân

Đ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

CHƯƠNG 6: ĐIỀU KHIỂN TƯƠNG TRANH NGUYỄN MẬU HÂN, PhD HUE COLLEGE OF SCIENCES - HUE UNIVERSITY CONTENTS  Một số vấn đề điều khiển đồng thời  Một số tính chất thao tác đơn vị liệu  Lịch lịch khả  Sắp xếp giao tác nhãn thời gian  Điều khiển tương tranh chế khóa CHƯƠNG 6: ĐiỀU KHIỂN TƯƠNG TRANH MỤC ĐÍCH Giới thiệu  Giao tác tập hợp thao tác có thứ tự truy xuất liệu CSDL thành đơn vị công việc logic (xem thao tác nguyên tố), chuyển CSDL từ trạng thái quán sang trạng thái quán khác  Nguyên lý điều khiển tương tranh: Là trình điều khiển giúp cho nhiều giao tác diễn đồng thời mà không xảy tranh chấp Giới thiệu xảy Mất dữĐiều liệu (Lost update) có đụng độ? Khóa chờ (Livelock) Khóa chết (Deadlock) Giới thiệu Để ghi nhận hoàn tất hay không thao tác người ta sử dụng lệnh sau: BEGIN TRANSACTION Bắt đầu giao tác COMMIT TRANSACTION Kết thúc giao tác thành công ROLLBACK TRANSACTION Kết thúc giao tác không thành công, thao tác làm ảnh hưởng CSDL trước undo, CSDL trả tình trạng trước thực giao tác END Chỉ mạng ý nghĩa hình thức, thường không sử dụng TRANSACTION Một số vấn đề điều khiển đồng thời 1 Mất liệu cập nhật (lost Ví dụ: Cho quan hệ HANGHOA (MaHH, Tên update) HH, ĐVT, SLTon) Giả sử: SLTon =20 Transaction T1 (bán hàng) T2 (bán hàng) Begin Transaction Read(SLTon)→x1 Begin Transaction x1 - 10→x1 Write x1→SLTon Commit T1  Lost Read(SLTon)→x2 x2 - 3→x2 Write x2→SLTon Commit T2 Gía trị x1 20 20 10 10 10 10 x2 20 20 17 17 17 SLTon 20 20 20 20 20 10 17 17 Update: Thao tác cập nhật T1 xem bị mất, không ghi nhận (do thay đổi giao tác khác ghi đè lên) Một số vấn đề điều khiển đồng thời 1.2 Đọc liệu chưa commit (uncommitted data) Ví dụ: Cho quan hệ HANGHOA ( MaHH,TenHH, ĐVT, SLTon) SLton = 20  Transaction Transaction Giá trị T1 sửa đổi dòng X T1(nhập hàng) T2 (bán hàng) x1 x2 SLton chưa commit, Begin transaction 20 transaction T2 Read (SLton)→ x1 20 20 đọc dòng X 120 20 x1 + 100 → x1 Transaction T1 120 120 Write x1 → SLton Begin transaction 120 rollback Read (SLton)→ x2 120 120 thay đổi 120 x2 – → x2 dòng X → 120 115 Write x2 → SLton liệu mà 120 Commit T2 Transaction T2 20 Rollback T1 đọc chưa tồn Một số vấn đề điều khiển đồng thời 1.3 Thao tác đọc lập lại (unrepeatable data) Ví dụ: Xét giao tác sau: T1 T2 Read(A) Read(A) A = A + 10 Print (A) Write (A) Read (A) Print (A) Giả sử A = 20 giao tác thực đồng thời theo thứ tự sau: Một số vấn đề điều khiển đồng thời 1.3 Thao tác đọc lập lại (unrepeatable data) Transaction T1 Begin transaction Read (A) → x1 x1 +10 → x1 Write x1 → A Commit T1 Giá trị T2 x1 x2 20 20 20 Begin transaction Read (A) → x2 Print (x2) Read (A) → x2 Commit T2 20 30 30 30 30 30 A 20 30 20 20 20 30 Sắp xếp giao tác nhãn thời gian 4.2 Thuật toán xếp toàn phần Procedure Read (Ti, A) Ghi chú: •tA: nhãn thời gian đơn vị Begin If tA ≤ tTi then liệu A Nhận xét thao tác •tTi: nhãn thời gian giao tác Thực Ví  dụ 1: tT1 = 100, tT2 = 120, tA = Thuật toán xếp đọc Ti thứ tự giao T1 đầu t T tA có tA := tTi tác (thời chưa Ban = • A gian bắt đầu) không Read Atác truy cập tA = 100 Else giao nhằm xếp trình tự Read A tA = 120 Procedure WriteT(T , A) Rollback bắt i i A=A+1 thực thao tác A=A+1 Begin đầu lại với nhãn thời gian giao tác Write A tA = 120 Ifmới tA ≤ tTi then Write A tA > tT1 nên T1 End Proc Thực thao phải rollback tác ghi bắt đầu lại với timestamp tA := tTi Else Sắp xếp giao tác nhãn thời gian 4.2 Thuật toán xếp toàn phần Trong trường hợp Nhận xét rõ Ví dụ 2: tT1 = 100, tT2 = 120, tA = T1 T2 Read A Read A Read A Read A tA tA = 100 tA = 120 tA = 120 tA > tT1 nên T1 phải rollback bắt đầu lại với timestamp Như vậy: Thuật toán xếp toàn phần : không quan tâm đến tính chất thao tác liệu (Read/Write) nên có nhãn thời gian cho đơn vị liệu Nếu quan tâm đến tính chất thao tác liệu cần nhãn thời gian cho đơn vị liệu tương ứng với thao tác đọc ghi đơn vị liệu ràng không xảy đụng độ T1 không cần phải rollback bắt đầu lại với timestamp Tuy nhiên thuật toán xếp toàn phần không phân biệt tính chất thao tác liệu Read hay Write nên Sắp xếp giao tác nhãn thời gian Read (Ti, A) 4.3 Thuật toán xếpProcedure phần Mỗi đơn vị liệu A có nhãn thời gian RTS WTS Ban T1(tT1 = T2(tT2 = đầu, RTS = WTS = WTS(A) RTS(A) 100) 120) RTS(A) nhãn giao tác Read Athời gian 100 Read A 120 có timestamp lớn truy A=A+1 cập (Read) thành A=A+ công lên A Write A 120  WTS(A) nhãn Write A T1 thời gian củarollback giao tác có timestamp lớn truy cập (Write) thành công lên A Begin If WTS(A) [...]... dữ liệu (Read/Write) nên chỉ có 1 nhãn thời gian duy nhất cho 1 đơn vị dữ liệu Nếu quan tâm đến tính chất của thao tác dữ liệu thì cần 2 nhãn thời gian cho 1 đơn vị dữ liệu tương ứng với thao tác đọc và ghi trên đơn vị dữ liệu đó ràng không xảy ra đụng độ T1 không cần phải rollback và bắt đầu lại với timestamp mới Tuy nhiên do thuật toán sắp xếp toàn phần không phân biệt tính chất của thao tác dữ liệu. .. giao đơn vị dữ tác chỉ cầnliệu lấy giá trị của 1 đơn vị dữ liệu nhưng không thay đổi giá trị đó Vì vậy để giảm bớt tình huống phải chờ khi các giao tác cùng đọc dữ liệu, người ta đề nghị tách yêu cầu khóa thành 2 yêu cầu khóa riêng 5 Điều khiển tương tranh bằng cơ chế khóa 5.3 Kỹ thuật khóa đọc/viết (Readlock/Writelock) * Khóa để đọc (hay Shared lock): một giao tác T chỉ muốn đọc 1 đơn vị dữ liệu A sẽ... cập đến đơn vị dữ liệu đó cho đến khi nó nhả khóa (unlock) Khi một giao tác T thực hiện được việc lock đơn vị dữ liệu A, ta nói, T đang giữ lock A Tại mỗi thời điểm, chỉ có một tập con các đơn vị dữ liệu bị khóa, vì vậy bộ quản lý khóa có thể lưu các khóa hiện hành trong một bảng khóa (lock table) với các mẫu tin có dạng sau: (A, L, T) (giao tác T có một khóa kiểu L trên đơn vị dữ liệu A) 5 Điều... bảo đảm không xảy ra vấn đề deadlock T1 Lock A Lock B Unlock A Unlock B T2 Ghi chú Lock B Lock A Unlock B Unlock A T1 phải chờ T2 unlock B T2 phải chờ T1 unlock A → deadlock CHƯƠNG 6: ĐIỀU KHIỂN TƯƠNG TRANH PHÂN TÁN HẾT CHƯƠNG 6 36 ... L trên đơn vị dữ liệu A) 5 Điều khiển tương tranh bằng cơ chế khóa 5.2 Kỹ thuật khóa đơn giản Một giao tác khi có yêu cầu truy xuất đến đơn vị dữ liệu thì phải phát ra yêu cầu xin khóa (lock) trên đơn vị dữ liệu đó, nếu yêu cầu này được chấp thuận thì được quyền thao tác và như vậy các giao tác khác sẽ không được phép truy cập đến đơn vị dữ liệu đó cho đến khi giao tác giữ khóa được unlock T1 Không... và O22 không khả hoán vị O13 và O23 là khả hoán vị O14 khả hoán vị với các thao tác còn lại 2 Một số tính chất khi thao tác trên đơn vị dữ liệu Nhận xét: Các thao tác truy xuất các đơn vị dữ liệu khác nhau là tương Các thao tác truy xuất trên cùng đơn vị dữ liệu: •Nếu có liên quan đến phép cộng, trừ thì khả hoán vị •Read – Read → khả hoán vị •Write – Write → không có tính khả hoán vị •Read – Write... 5 Điều khiển tương tranh bằng cơ chế khóa 5.1 Khái niệm khóa (lock) Phương pháp thông dụng nhất để điều khiển việc truy xuất các đơn vị dữ liệu là sử dụng khóa (lock) Lock là một đặc quyền truy xuất (access priveleg) lên các đơn vị dữ liêu của các giao tác mà bộ quản lý khóa có thể trao cho một giao tác hay thu hồi lại Khi 1 giao tác đã khóa (lock) trên 1 đơn vị dữ liệu nào đó thì các giao tác khác... lần Tlà có cơ hội nhận trên A 2 cấp quyền lock trên 1 đơn vị dữ liệu nào đó mà không xác định được thời điểm được đáp ứng yêu cầu Yêu cầu hệ thống khi trao khóa phải ghi nhận tất cả các thỉnh cầu chưa được đáp ứng, và khi đơn vị dữ liệu A được mở khóa thì trao cho các giao tác đã xin đầu tiên trong số những giao tác đang đợi khóa A Và khi đó bộ lập lịch (schedulers) sẽ tiến hành thực hiện cơ chế: giao... giao tác Nhãn thời gian có tính chất duy nhất và tăng dần ( Ti < Tj ↔ tTi< tTj) Nhãn thời gian của đơn vị dữ liệu: là nhãn thời gian của giao tác cuối cùng có truy cập đến đơn vị dữ liệu đó thành công, hay là nhãn thời gian cao nhất trong số các giao tác có truy cập thành công đến đơn vị dữ liệu đó T1 T2 T3 Read A Read A Read A tA tA = tT1 tA = tT2 tA = tT3 4 Sắp xếp các giao tác bằng nhãn thời gian... Write A A (5) 5 5 5 5 6 6 T2 Nhận xét Lock A Read A A=A+1 Write A Unlock A Lock A Read A A=A+1 Write A T2 chờ T1 Unlock T1 sẽ hoàn tất Unlock A trước khi T2 bắt Kỹ thuật khóa đầu Khi 5 Điều khiển tương tranh bằng cơ chế khóa 5.2 Kỹ thuật khóa đơn giản Ví dụ T1 T2 Lock A Read A A=A+1 Write A Lock B Read B B=B+1 Write B Unlock B Unlock A Lock A Read A Unlock A Nhận xét Nếu không phân biệt khóa cho thao ... Unlock A T1 phải chờ T2 unlock B T2 phải chờ T1 unlock A → deadlock CHƯƠNG 6: ĐIỀU KHIỂN TƯƠNG TRANH PHÂN TÁN HẾT CHƯƠNG 36 ... giữ Giao tác yêu cầu lock R-lock W-lock R-lock Yes No W-lock No No Điều khiển tương tranh chế khóa 5.3 Kỹ thuật khóa đọc/viết (Readlock/Writelock) Ví dụ (Với đơn vị liệu B=2) T1 Rlock B Read B... chất thao tác liệu (Read/Write) nên có nhãn thời gian cho đơn vị liệu Nếu quan tâm đến tính chất thao tác liệu cần nhãn thời gian cho đơn vị liệu tương ứng với thao tác đọc ghi đơn vị liệu ràng không

Ngày đăng: 03/12/2015, 00:06

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • CHƯƠNG 6: ĐiỀU KHIỂN TƯƠNG TRANH

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Slide 8

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • Slide 15

  • Slide 16

  • Slide 17

  • Slide 18

  • Slide 19

  • Slide 20

Tài liệu cùng người dùng

Tài liệu liên quan