You are on page 1of 35

CƠ SỞ DỮ LIỆU NÂNG CAO

GV hướng dẫn: TS. Nguyễn Kim Anh

Nhóm thực hiện: Nhóm 09


Họ và tên MSSV
Nguyễn Đức Anh 20070095
Nguyễn Tuấn Anh 20070115
Nguyễn Viết Anh 20070125
Lê Văn Đạo 20070700
Lê Văn Hội 20071289
ĐỀ TÀI
 Mô hình giao dịch lồng an toàn và mở: tương tranh và
phục hồi
PHÂN CÔNG CÔNG VIỆC
 Từ 18-20/09: Chuẩn bị đề cương
 Từ 20/9-2/10: Dịch toàn bộ bài báo
 Từ 2/10-14/10: chỉnh sửa kết quả, nộp đề cương
 Chi tiết phân công nhiệm vụ:
 Nguyễn Đức Anh: (Nhóm trưởng) Viết đề cương, phân công
nhiệm vụ, thuyết trình, dịch phần 2,3,5
 Nguyễn Viết Anh : Phần 2,5
 Nguyễn Tuấn Anh: Phần 2+ Phần 4: Mô tả dữ liêu+ các yếu tố
tác động
 Lê Văn Hội: Phần 2,5
 Lê Văn Đạo: Phần 3,4
 Ngày 14: Trình bày riêng từng phần
 Ngày 15: Viết báo cáo
INSTRUCTION
 1, Tổng quan
 1.1 Mô hình giao dịch lồng và các thuật toán phục hồi
 1.1.1 Giao dịch
 1.1.2. Mô hình giao dịch lồng đóng
 1.1.3. Mô hình giao dịch lồng mở
 1.2. Các thuật toán phục hồi giao dịch lồng
 2,Mô hình giao dịch lồng mở và thuật toán phục hồi
 2.1 Một số ví dụ và các
 2.1.1. Chuyển tiền ngân hàng
 2.1.2 Du lịch
 2.1.3 Khái niệm
 Recovery point subtransaction
 Prewrite
 2.2 Thuật toán phục hồi sự cố
 2.2.1 Các mục tiêu
 2.2.2 Các bước thực hiện
 2.3. Cấu trúc dữ liệu
 3, Mô hình hệ thống giao dịch lồng và cài đặt
 3.1. Mô hình hệ thống giao dịch lồng
 3.2 Thuật toán điều khiển tương tranh
 4, Thao tác khởi động lại hệ thống
 4.1 Thao tác khởi động lại hệ thống
 4.2 Các hoạt động quản lý buffer
 5, Ảnh chụp về xử lý, khai thác và phục hồi giao dịch
 5.1 Cây giao dịch lồng
 5.2 Xử lý khởi động lại hệ thống
 Bước phân tích
 Bước redo
1.1.1. GIAO DỊCH
 Giao dịch
 Là một phần của ứng dụng bao gồm một tập các thao tác mà
phải được xư xý như một đơn vị vị nguyên tố không cắt được
 4 tính chất
 Atomicity
 Consistency (nhất quán)

 Isolation (độc lập)

 Durability (bền vững)


1.1.2. MÔ HÌNH GIAO DỊCH LỒNG ĐÓNG
 Mô hình giao dịch lồng đóng
 một giao dịch con có thể chứa các thao tác được thực hiện
đồng thời, hoặc các hành động mà có thể được hủy bỏ một
cách độc lập với các giao dịch liên quan.
 các thao tác được coi là các giao dịch con của giao dịch gốc.
 Quan hệ cha con này tạo ra một cây giao dịch lồng

 Những giao dịch con không thành công có thể được sửa chữa bằng

việc thay thế chúng bằng những giao dịch khác nhằm thực hiện
thành công toàn bộ giao dịch
 Mỗi giao dịch phải kiếm được khóa tương ứng trước khi truy cập

vào một đối tượng dữ liệu.


 Kết quả của một giao dịch con không thể nhìn thấy ở ngoài giao dịch

cha của chúng (Vì thế nó được gọi là đóng)


CÂY GIAO DỊCH LỒNG
HẠN CHẾ
 mỗi giao dịch con bị giới hạn chỉ trong giao dịch cha của
chúng.
 Giao dịch con phải gửi tất cả các khóa cùng các phiên bản
của đối tượng dữ liệu cập nhật tới giao dịch cha của chúng
trên cơ chế xác nhận
  Giao dịch với thời gian sống ngắn chờ đợi trước khi thay khóa
cho đến khi giao dịch mước cao nhất xác nhận và giải phóng khóa
của chúng.
  Ứng dụng mất một thời gian dài chờ đợi để hoàn tác khi sử dụng

một trong các kỹ thuật trên trong trường hợp bị lỗi ở khâu cuối cùng.
 hệ thống không thích hợp cho hệ thống chứa các giao
dịch dài và ngắn.
1.1.3. MÔ HÌNH GIAO DỊCH LỒNG MỞ
 Một giao dịch con cho phép giải phóng khóa trước khi xác
nhận đến giao dịch ở cấp cao hơn
 Các khóa ở mức lá được giải phóng sớm chỉ khi ngữ nghĩa
của các thao tác được biết trước và thao tác bù tương ứng
được định nghĩa.
 Khi hủy một giao dịch ở mức cao, kết quả của nó được
hoàn tác bằng cách thực thi một thao tác nghịch đảo bù
vào giao dịch đã hoàn tất
 Có những thao tác mà không có thao tác đảo ngược như
việc chuyển một số tiền lớn tại một máy rút tiền tự động.
Hoạt động như vậy phải được trì hoãn cho đến khi mức
cao nhất xác nhận, đó là những hoạt động bị hạn chế sẵn
có (như tăng thời gian phản ứng)
1.2 CÁC THUẬT TOÁN PHỤC HỒI GIAO
DỊCH LỒNG
 Thuật toán phục hồi intentions-list và undo-logging được
Fekete cùng các đồng nghiệp (1993) đưa ra nhằm phục
hồi các giao dịch bị hủy trong môi trường giao dịch lồng
bằng cách khai thác tính chất giao hoán của các thao tác.
 intention-list
làm việc bằng cách duy trì một danh sách các
hoạt động cho mỗi giao dịch.
 Khi một giao xác nhận, danh sách được kết nối tới giao dịch cha.
 Khi nó bị hủy intention-list cũng bị loại theo.

 Trong cả hai thuật toán, một giao dịch chưa hoàn thành được cho

phép không xác nhận cập nhật tới những giao dịch mà thực hiện các
thao tác giao hoán. Đây là giới hạn cho những giao dịch ở cùng mức
trừu tượng.
 System R (Gray và các đồng nghiệp,1981)
 Moss (1987) trên cơ sở undo/redo log methods
2. MÔ HÌNH GIAO DỊCH LỒNG MỞ VÀ
THUẬT TOÁN PHỤC HỒI
 Ví dụ
 Chuyển tiền
 Du lịch
2.1.1 VÍ DỤ: CHUYỂN TIỀN
 Hãy xem xét một phần mô hình giao dịch lồng nhau là
chuyển khoản từ một nhóm người tới người khác. Trong
giao dịch cây, hãy để Ts là một giao dịch trên ,Ts1 gọi là
giao dịch dưới để thu thập (truy cập) vốn từ tài khoản
khác. Một khi Ts1 được xác nhận, Ts gọi Ts2 để các khoản
tiền tín dụng cuối cùng được đưa vào tài khoản khác.
 Giả sử sau một giao dịch Tw đã thu hồi tất cả số tiền,Ts
xác nhận. Nếu bất kỳ giao dịch nào ở trên Ts hủy bỏ thì nó
mong muốn cho các giao dịch hoàn thanh thành công trên
giao dịch phục hồi. Điểu này bởi là vì nó không thể sửa
chữa thành công của giao dịch bởi một số thao tác đền bù .
Một khả năng khác là trì hoãn hoạt động của Ts cho đến
khi mức giao dịch ở trên xác nhận hạn chế sẵn có.
2.1.2. VÍ DỤ: DU LỊCH
 Xác nhận của “fund” và “visa” là thao tác liệu sẽ đi du
lịch xác nhận hay không, đó là xác nhận ở mức dưới Sẽ
xác định xác nhận ở mức cao hơn xác nhận hay không
đến số phận của các giao dịch khác cây giao dịch. Chú ý
rằng Xác nhận giữa fund và visa, giao dịch ở mức trên
sẽ được bắt buộc để xác nhận (kể cả một vài trì hoản
hay bắt đầu lại )
RECOVERY POINT SUBTRANSACTION
 Đó là bản chất là một giao dịch sau khi có xác nhận, tổ
tiên của nó là không được phép để phục hồi lại trạng thái
cũ.
 Trong trường hợp một giao dịch cấp trên hủy bỏ hoặc
các hệ thống bị lỗi sau xác nhận của các điểm khôi phục
của giao dịch, các giao dịch bị lỗi không thể hoàn tất trên
hệ thống phục hồi
 Thực hiện giao dịch như vậy cho phép một giao dịch
phục hồi điểm tiết lộ kết quả của nó cho các giao dịch
khác tại bất kỳ mức độ nào trước khi giao dịch cha của
nó xác nhận.
PREWRITE OPERATION
 Để tránh hoàn tác thao tác và các hậu quả hủy bỏ và làm tăng
độ sẵn sàng, chúng tôi giả định mỗi giao dịch phát ra một
thao tác prewrite trước một thao tác write của đối tượng mà
nó dự định ghi.
 Mỗi thao tác prewrite chứa kết quả của giao dịch user-visiable
và đứng trước phương thức ghi cuối cùng được liên kết.
 Một hoạt động prewrite thực sự không làm thay đổi trạng thái
của dữ liệu nhưng nó chỉ đưa ra giá trị đối tượng dữ liệu sẽ có
sau khi phương thức write đươc liên kêt với nó được thực
hiên.
  Lợi thế của prewrite là một thao tác đọc của các giao dịch
khác có thể lấy được các giá trị trước khi trạng thái của một
đối tượng dữ liệu cập nhập lên bộ nhớ ổn định và do đó làm
tăng tính sẵn dùng của các giá trị dữ liệu mới
2.2. THUẬT TOÁN PHỤC HỒI SỰ CỐ
 Mục tiêu
 Các bước thực hiện
2.2.1. MỤC TIÊU
 Khôi phục trạng thái cơ sở dữ liệu của các đối tượng dữ liệu mà cơ sở dữ không
chứa các giá trị được xác nhận cuối cùng với các dữ liệu liên quan khi lỗi hệ
thống xảy ra
 Khôi phục các giá trị prewrite (lưu giữ tại vùng đệm ghi prewrite-buffer) của các
đối tượng dữ liệu đã được công bố xác nhận điểm phục hồi giao dịch con trước
khi hệ thống thất bại.
 Để xác định đối tượng dữ liệu, đối tượng bảng dirty object table phải được phục
hồi.
 Một hệ thống sụp đổ tạo ra thêm một vấn đề về sự hoàn thành của các giao dịch
mức đỉnh mà các giao dịch con điểm phục hồi của chúng đã được xác nhận trước
khi hệ thống sụp đổ. . Họ phải làm lại có được các khóa được giữ bởi chúng tại
thời điểm sụp đổ trước khi giao dịch mới có được khóa như vậy.
 Để xử lý trên, các giao dịch, bảng khóa phải được hồi phục. Bảng giao dịch giữ
một danh sách của tất cả các giao dịch đang hoạt động trong hệ thống bất cứ lúc
nào.
 Để kích hoạt giao dịch ở mức đỉnh mới ngay sau khi dirty object, giao dịch, và
các bảng khóa gồm các trạng thái của việc ghi và ghi bộ đệm của dirty data đối
tượng được tái lập.
2.1.2. CÁC BƯỚC PHỤC HỒI HỆ THỐNG
 Revival of dirty table ( phục hồi bảng dirty object )
 Revival of transaction and lock table ( phục hồi các giao
dịch và các bảng khóa )
 Revival of buffer ( phục hồi bộ đệm )

 Transaction logging and recovery (phục hồi và ghi nhật


ký giao dịch )
2.3 CẤU TRÚC DỮ LIỆU
 2.3.1 Các trường:
 LSN: Cho địa chỉ bản ghi đăng nhập trống.Nó là một giá trị tăng.Nó
hiển thị loại dữ liệu bản ghi đăng nhập. Điều này có thể bao gồm các
bản ghi đăng nhập khác nhưng không bắt buộc.
 Transaction-id: nhận dạng giao dịch tham gia trong bản ghi đăng nhập
 Object-id:Nhận dạng các đối tượng tham gia vào bản ghi đăng nhập.Nó
hiển thi bản ghi đăng nhập "dữ liệu" và "khóa" các loại
 Value: Đây là dữ liệu mô tả thực thi cập nhật .Bao gồm việc ghi lại giá
trị.
 Commit-state: Mô tả bản ghi nhật ký được gi trong suốt thời gian xác
nhận của một giao dịch con. Nó bao gồm dữ liệu liên, biến cục bộ… của
giao dịch con được xác nhận
 Active: Hiển thị bản ghi đăng nhập trong phiên giao dịch con.Bao gồm
dữ liệu cá nhân,biến cục bộ,..., của phiên giao dịch con cam kết
 Lock: Hiển thị bản ghi được đăng nhập khi phiên giao dịch con lấy được
khóa.Thông tin không khóa bao gồm "giữ lại" hoặc "tổ chức" giao dịch.
2.3.2 PHÂN LOẠI CÁC BẢN GHI
 “Data”: Định dạng dữ liệu của hồ sơ đăng nhập: (LSN,
transaction-id, Object-id, giá trị priwrite hoặc write)
 “Transaction”: Định dạng giao dịch của hồ sơ đăng nhập
(transaction- id,trạng thái). Lưu ý rằng trạng thái là giá
trị "hoạt động" hoặc là "Xác nhận"
 “Lock”: Định dạng khóa (transaction-id, lock type,
Object-id).
 Chúng ta tham khảo cấu trúc hoàn chỉnh bản ghi log (hồ
sơ nhìn thấy) cùng với loại thông tin của nó (END-CHK-
POINT) là một hồ sơ để xác định kết thúc của một hoạt
động.
BẢNG DIRTY DATA OBJECT
 Mỗi lần nhập dữ liệu vào trong bảng đối tượng dữ liệu thô gồm trường
Object-ID. RccLSN(Dãy số khôi phục đăng nhập) ghi lại và ghi các
hoạt động.Giá trị của hoạt động ghi RCCLSN trong đăng nhập có thể
được cập nhật,không bị mất dữ liệu cho dù bị mất điện.Giá trị nhỏ nhất
RccLSN trong bảng cho điểm bắt đầu kích hoạt lại. Tất cả bản ghi
đăng nhập phải ghi lại, LSNs lớn hơn giá trị nhỏ nhất RccLSN,yêu cầu
làm lại các bản ghi đăng nhập không có tác dụng chuyển đổi thành các
cơ sở dữ liệu ổn định.
 Giá trị hoạt động ghi lại của RccLSN nhỏ nhất lớn hơn RccLSN tối đa
của tất cả các hoạt động ghi cho các điểm khởi đầu để làm lại các hoạt
động ghi lại.Tất cả các bản ghi đăng nhập ghi lại mà LSNS lớn hơn
RccLSN nhỏ nhất được yêu cầu làm lại mà không phải hoạt động .Bởi
vậy, các bản ghi đăng nhập ghi lại cần được làm lại.Mỗi khi các giá trị
ghi được yêu cầu , tương ứng với phần bảng đối tượng dữ liệu thô
được xóa đi.Tương tự,mỗi khi đối tượng dữ liệu được lưu trữ ổn
định,các lần nhập tương ứng được lấy ra từ bảng.
3. MÔ HÌNH HỆ THỐNG GIAO DỊCH
LỒNG
 3.1 Các thành phần
 Quản trị dữ liệu (Data Managers – DMs).
 stable-db
 Prewrite-buffer

 Write-buffer

 Private log, common log

 Quản trị giao dịch (Transaction Managers- TMs)


 Write-TM
 Read- TM

 Analysis-TM

 Redo-TM

 Quản trị phục hồi (Recovery Manager – RMs)


 read-RM, priwrite-RM, write-RM, tranfer-RM
 các phân tích của hệ thống khởi động lại (analysis-RM) và redo-RM
CÂY GIAO DỊCH LỒNG CHO CÁC THAO TÁC BÌNH
THƯỜNG VÀ THAO TÁC KHỞI ĐỘNG LẠI HỆT
HỐNG
3.2 THUẬT TOÁN ĐIỀU KHIỂN TƯƠNG
TRANH
4. THAO TÁC KHỞI ĐỘNG HỆ THỐNG
 khởi động lại hệ thống thực hiện hai bước: analysis
pass(bước phân tích) và bước redo .
 Bước phân tích được mô phỏng như là một phân tích analysis
–TM mà khởi tạo một analysis –RM . the analysis-RM khởi
tạo nên một bản sao truy cập, mà khởi tạo khóa , giao dịch
các bảng dirty Object bằng cách đặt các bản sao lưu trữ lâu
dài của chúng trong bộ đệm sau bản ghi check print cuối
cùng.
 1 read- analysis trả về 1 tập các RESLSN nhỏ nhất: đối
tuongj dirty data với sự chú ý đẻ viết trước các thao tác. Nó
cũng trả về một danh sách các giao dịch hoạt động và trạng
thái khởi động lại của chúng.Thông tin ở trên sẽ là đầu ra của
một analysis-TM. 1 check point lấy ở điểm cuối của bước
phân tích
REDO PASS
 Hoạt động làm lại được thực hiện sử dụng giá tự viết trước và ảnh
sau lấy từ nơi lưu trữ hoạt động làm lại có thể đươc bỏ nếu không có
đối tượng dirty data. Cây thừa kế giao dịch cho phép hoạt động này
gồm 1 redo- TM cho mỗi đối tượng, 1 redo-TM ở mức tiếp theo và
truy cập các giao dịch phụ ở mức lá. Mỗi redo-TM khởi tạo một redo-
RM mà các trigger copy , đọc viết trước và viết truy nhập các giao
dịch con để làm lại thao tác biểu diển trong nhật kí lưu trử tương ứng
với các đối tuongj dữ liệu sau bản ghi check point cuối cùng. 1 bản
sao giao dịch khở tạo lại write-buffer bằng cách sao chép nột dung
của stable-db đến write-buffer (bộ đệm viết) . 1 sự truy cập viết trước
với sự trợ giúp của giá trị bản ghi nhật kí viết truocs nếu giá trị
cuarLSN được liên kết với bản ghi nhật kí viết trướ là lón hơn LSNs
của tất cả các bản ghi sau được lấy từ nơi lưu trữ . 1 truy cập viết
thay thế giá trị của đối tượng dữ liệu từ nhật kí trong bộ đệm viết liên
kết của đối tượng dữ liệu nếu LSN của đối tượng dữ liệu tyrong bộ
đêm viết được tìm thấy nhỏ hơn LSN của bản ghi nhật kí.
ẢNH CHỤP VỀ XỬ LÝ KHAI THÁC VÀ PHỤC HỒI
GIAO DỊCH
 U là người sử dụng giao dịch
 T1 và T2 lần lượt là các read-TMs và
write-TMs
 T’2 là giao dịch daemon tương ứng.
 T11,T21,T22 lần lượt là read-RMs,
prewrite-RMs, và write-RMs
 T’23 là transfer-RM.
 T111 la quá trình truy nhập đọc
 T211 và T212 lần lượt là quá trình
truy nhập ghi lại
 T221 và T222 lần lượt là quá trình
truy nhập ghi
 T’231 và T’’232 các giao dịch con
truyền truy nhập. Các đối tượng dữ
liệu hỗ trợ được truy nhập bỏi các
giao dịch là X và Y.
BẢNG GIAO DỊCH BẢNG KHÓA VÀ
NHẬT KÝ SƯ KIỆN
BẢNG GIAO DỊCH BẢNG KHÓA VÀ
NHẬT KÝ SƯ KIỆN (TIẾP)
5.2. XỬ LÝ KHỞI ĐỘNG LẠI HỆ THỐNG
5.2.1 Bước phân tích
5.2.1. BƯỚC PHÂN TÍCH
DẪN RA CÁC MỤC SAU LẦN CHECKPOINT CUỐI
CÙNG BẢN GHI TỊA THỜI ĐIỂM HỆ THỐNG SỰ CỐ.
5.2.2. BƯỚC REDO
Xem xét các bản ghi nhật ký cơ sở dữ liệu tương ứng với các đối
tượng dữ liệu tại thời điểm lỗi hệ thống
BƯỚC REDO
KẾT LUẬN
 Một mô hình giao dịch lồng, các thuật toán điều khiển
tương tranh và phục hồi của nó đã được trình bày trong
bài báo này. Chúng ta đã giới thiệu nội dung của một
điểm phục hồi giao dịch và thao tác prewrite trong mô
hình cho phép tương tranh cao. Thuật toán phục hồi bào
gồm các thao tác khởi động lại hệ thông ; các thao tác
phân tích và phục hồi và các thao tác quản lý bộ đệm,
mà được mô hình hóa trong khuôn khổ của mô hình giao
dịch lồng. Mô hình hóa các chức năng phục hồi trong
khuôn khổ các giao dịch con tăng tính đồng thời trong
suốt quá trình khởi động lại hệ thống. Trong tương lai
mô hình này cần phải mở rộng ra trong môi trường phát
triển nhanh chóng của ngôn ngữ lập trình

You might also like