Giải thuật 2 PL tập trung

6 234 1
Giải thuật 2 PL tập trung

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

Thông tin tài liệu

VỀ MỘT SỐ GIẢI THUẬT Cấu trúc liệu dùng giải thuật định nghĩa Op : 〈Type = {BT;R;W;A;C}; arg : Data item; val : Value; tid : Định danh giao dịch ; res : Result〉 Ý nghĩa : với thao tác o:Op, o.Type∈ {BT;R;W;A;C} đặc tả kiểu, BT = Begin transaction, R = Read, W = Write, A = Abort, and C = Commit, arg hạng mục liệu mà thao tác truy nhập (reads / writes; với thao tác khác null) val đc dùng trường hợp Read/Write đặc tả giá trị đọc ghi cho arg, khác null tid : định danh giao dịch res : thị mã đầy đủ thao tác yêu cầu DP, chưa cần khảo sát 1- GIẢI THUẬT PL TẬP TRUNG Hình 1- Cấu trúc truyền thông khóa pha tập trung Site phát giao dịch=bộ điều phối Bộ quản trị khóa=site trung tâm Bộ xử lý liệu=các site thành viên Giải thuật 1.1: Quản trị khóa pha tập trung (C2PL-TM) Input: msg : thông điệp begin repeat Chờ msg ; switch msg case thao tác giao dịch cho op thao tác ; if op.Type = BT then DP(op) {gọi DP với thao tác } else C2PL-LM(op) {gọi LM với thao tác} case trả lời Lock Manager (LM) {khóa yêu cầu gán hay giải phóng } if yêu cầu khóa then Tìm site lưu hạng mục liệu yêu cầu ; DPSi(op) {gọi DP site Si với thao tác} else {phải thông điệp giải phóng khóa } Thông báo cho người dùng việc kết thúc giao dịch case Trả lời Data Processor {thông điệp hoàn tất thao tác } switch transaction operation cho op thao tác ; case R trả op:val (giá trị hạng mục liệu) đến ứng dụng case W thông báo ứng dụng việc ghi xong case C if thông điệp commit nhận từ thành viên then thông báo ứng dụng việc thành công giao dịch; C2PL-LM(op) {cần giải phóng khóa } else {chờ thông điệp commit đến từ thành viên } ghi lại việc đến thông điệp commit case A thông báo ứng dụng việc thoát hoàn tất ; C2PL-LM(op) {cần giải phóng khóa } until 1==1; end Giải thuật 1.2: Quản trị khóa pha tập trung (C2PL-LM) Input: op : Op begin switch op.Type case R or W {yêu cầu khóa; xem liệu gán không } tìm đơn vị khóa lu cho op:arg ⊆ lu ; if lu khóa chế độ khóa lu tương thích với op:Type then thiết lập khóa lu chế độ tương ứng thừa lệnh giao dịch op:tid ; gửi “ Khóa gán” đến điều phối TM giao dịch else đặt op vào hàng đợi cho lu case C or A {các khóa cần đươc giải phóng } foreach lu giao dịch giữ giải phóng khóa lu giao dịch ; if có thao tác chờ hàng đợi cho lu then tìm thao tác O hàng đơi ; thiết lập khóa lu thừa lệnh O ; gửi “Khóa gán “ đến điều phối TM giao dịch O:tid gửi “Khóa giải phóng” đến điều phối TM giao dịch end Giải thuật 1.3: Bộ xử lý liệu- Data Processor (DP) Input: op : Op begin switch op.Type {Kiểm tra kiểu thao tác } case BT {chưa sâu vào chi tiết } kiểm soát case R op:res READ(op:arg) ; {thao tác đọc CSDL } op:res  “Đã đọc xong” case W {ghi val vào hạng mục liệu arg } WRITE(op:arg;op:val) ; op:res  “Đã ghi xong” case C COMMIT ; {vận hành COMMIT } op:res “Đã chuyển giao” case A ABORT ; {vận hành ABORT } op:res“Đã thoát” return op end 2- GIẢI THUẬT PL PHÂN TÁN Hình - Cấu trúc truyền thông khóa pha phân tán Giải thuật 2.1 : Quản trị giao dich pha phân tán (C2PL-TM) Input: msg : thông điệp begin repeat chờ msg ; switch msg case transaction operation PS-LM(op) {gọi Quản trị khóa lịch biểu thành viên với thao tác } case Data Processor response {Thông điệp hoàn tất tháo tác} switch transaction operation op thao tác ; case R return op:val (data item value) đến ứng dụng case W thông báo ứng dụng việc hoàn tất thao tác ghi case C if commit msg nhận từ thành viên then thông báo ứng dụng việc hoàn tất giao dịch; PS-LM(op) {cần giải phóng khóa } else {chờ tới thông điệp commit đến từ thành viên } ghi lại việc tới thông điệp commit case A Thông báo ứng dụng việc hoàn tất abort ; PS-LM(op) {cần giải phóng khóa } until 1==1 ; end Giải thuật 2.2: Quản trị khóa pha phân tán (PS-LM) (Participal Scheduler) Input: op : Op begin switch op.Type case BT : DP(op) {Gọi DP với thao tác } case R hay W {yêu cầu khóa; xét xem liệu có gán không } tìm đơn vị khóa lu cho op:arg ⊆ lu ; if lu khóa chế độ khóa lu tương thích với op:Type then thiết lập khóa lu chế độ tương ứng với giao dịch op:tid ; gửi “khóa gán-Lock granted” đến DP giao dịch else đặt op vào hang đợi cho lu case C or A {các khóa cần giải phóng} foreach lu giữ giao dịch giải phóng khóa lu giao dịch giữ; if có thao tác chờ hàng đợi lu then Tìm thao tác O hàng đợi; Thiết lập khóa lu thừa lệnh O; Gửi “Khóa gán-Lock granted” đến DP giao dịch O:tid Gửi “ Các khóa giải phóng-Locks released” đến DP giao dịch end Giải thuật 2.3: Giải thuật xử lý liệu phân tán (DP) Input: op : Op begin switch op.Type {kiểm tra kiểu thao tác} case BT {các chi tiết chưa khảo sát sâu} kiểm soát thủ tục case R op:res READ(op:arg) ; {thao tác đọc CSDL- READ} op:res  “Đã đọc” case W {ghi val hạng mục liệu vào arg CSDL } WRITE(op:arg;op:val) ; op:res  “Đã ghi” case C COMMIT ; {vận hành COMMIT } op:res “Đã chuyển giao ” case A ABORT ; {vận hành ABORT } op:res“Đã thoát” return op end ... } op:res“Đã thoát” return op end 2- GIẢI THUẬT PL PHÂN TÁN Hình - Cấu trúc truyền thông khóa pha phân tán Giải thuật 2. 1 : Quản trị giao dich pha phân tán (C 2PL- TM) Input: msg : thông điệp begin... việc thoát hoàn tất ; C 2PL- LM(op) {cần giải phóng khóa } until 1==1; end Giải thuật 1 .2: Quản trị khóa pha tập trung (C 2PL- LM) Input: op : Op begin switch op.Type case R or W {yêu cầu khóa; xem.. .Giải thuật 1.1: Quản trị khóa pha tập trung (C 2PL- TM) Input: msg : thông điệp begin repeat Chờ msg ; switch msg case thao

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

Từ khóa liên quan

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

Tài liệu liên quan