Đa phiên bản T/O

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 30 - 32)

Với sự đồng bộ hóa rw chƣơng trình T/O cơ bản có thể đƣợc cải tiến những thành phần dữ liệu đa phiên bản. Với mỗi thành phần dữ liệu x có một bảng R- ts’s và một bảng gồm bộ đôi (W-ts,value), gọi là các phiên bản. Một R-ts’s của x bản ghi nhãn thời gian của tất cả các toán tử dm-read(x) thực hiện và các phiên bản bản ghi nhãn thời gian và giá trị của tất cả các toán tử md-read(x) thực hiện. (Trong thực tế thì không thể lƣu trữ R-ts’s và các phiên bản mãi ; kỹ thuật này xóa các phiên bản cũ và nhãn thời gian đã đƣợc mô tả trong phần 2.5)

R là một dm-read(x). R đƣợc xử lý bởi việc đọc một phiên bản của x với nhãn thời gian lớn nhất nhỏ hơn ts(R) và thêm ts(R) vào x’s của bảng R-ts’s ; nhƣ hình 11a/ R sẽ không bao giờ bị loại bỏ. W là một dm-write(x) và thiết lập Interval(W) là khoảng thời gian từ ts(W) đến Min W-ts(x)>ts(W) ; nhƣ hình 11b. Nếu bất kỳ R- ts(x) nào nằm trong Interval(W), W bị loại bỏ ngƣợc lại W là output và tạo ra một phiên bản mới của x với nhãn thời gian là ts(W).

Biểu diễn các phiên bản của mục dữ liệu x trên trục thời gian :

Giá trị V1 V2 V3 ... . Vn-1 Vn

Nhãn thời gian của W 5 10 20 .... 92 100

Để xử lý một dm-read(x) với nhãn thời gian 95, tìm nhãn thời của vW lớn nhất mà nhỏ hơn 95, trong trƣờng hợp này là 92. Đó là phiên bản bạn đọc. Bởi vậy trong trƣờng hợp này, giá trị đọc bởi dm-read là Vn-1.

Chúng ta miêu tả các nhãn thời gian của x tƣơng tự

Các nhãn thời gian R 5 7 15 .... 92 100

Các giá trị V1 V2 V3 …. Vn-1 Vn Các nhãn thời gian W 5 10 20 92 100

W là một dm-write(x) với nhãn thời gian 93. Interval(W) =(93,100)

Để xử lý W chúng ta tạo ra một phiên bản mới của x với nhãn thời gian đó Các nhãn thời gian R 5 7 15 .... 92 95

Các giá trị V1 V2 V3 …. Vn-1 Vn

Các nhãn thời gian W 5 10 20 92 100

Tuy nhiên, phiên bản mới này “làm mất hiệu lực” dm-read của phần (a) bởi vì nếu dm-read đến sau một dm-write, nó sẽ đọc giá trị V thay vì đọc giá trị của Vn-1. Bởi vậy, chúng ta phải loại bỏ dm-write.

Để chứng minh tính đúng đắn của đa phiên bản T/O, chúng ta phải nhận thấy rằng mọi sự thực hiện là tƣơng đƣơng cho dãy các thực hiện trong trật tự nhãn thời gian. Thiết lập R là một dm-read(x) nó đƣợc xử lý « out of order », giả sử R đƣợc thực hiện sau một dm-write(x) nhãn thời gian của nó vƣợt quá ts(R). Từ đó R không để ý tất cả các phiên bản với nhãn thời gian lớn hơn ts(R). Giá trị đọc bởi R là với giá trị nó sẽ đọc khi nó đƣợc xử lý trong trật tự nhãn thời gian. Bây giờ thiết lập W là một dm-write(x) nó đƣợc xử lý « out of order »; giả sử rằng nó đƣợc thực hiện sau một dm-read(x) nhãn thời gian với nhãn thời gian vƣợt quá ts(W). Vì W không bị loại bỏ, tồn tại một phiên bản của x với nhãn thời gian TS lúc đó ts(W)<TS<ts(dm-read). Đáp lại hiệu quả giống nhƣ sự thực hiện theo trật tự nhãn thời gian.

Với kỹ thuật đồng bộ hóa ww, đa phiên bản T/O về cơ bản là một phiên bản nâng cao của TWR. Một dm-write(x) thƣờng tạo ra một phiên bản mới với nhãn thời gian ts(dm-write) và không bao giờ bị loại bỏ.

Sự hợp nhất two-phase commit yêu cầu rằng các dm-read và các dm- prewrite (nhƣng không dm-write) đƣợc đệm nhƣ ở T/O cơ bản. Thiết lập P là một vật đệm prewrite(x) : interval(P) là khoảng thời gian từ ts(P) đến min W-ts(s) >ts(P). Kỹ thuật đồng bộ hóa Rw đƣợc thực hiện nhƣ sau:

1. R là một dm-read(x). R không bao giờ bị loại bỏ. Nếu ts(R) nằm trong khoảng interval(prewrite(x)) với một vài đệm prewrite(x) thì R đƣợc đệm ngƣợc lại R là output.

2. P là một prewrite(x). Nếu một vài R-ts(x) trong trong interval(P), P bị loại bỏ ngƣợc lại P đƣợc đệm.

3. W là một md-write(x). W luôn luôn output ngay tức khắc.

4. Khi W là output, prewrite của nó đƣợc đệm và đệm các dm-read đƣợc khởi động lại để nhìn thấy nếu nó có thể là output.

Two-phase commit không phải là một kết quả của kỹ thuật đồng bộ hóa ww, vì dm-write không bao giờ bị loại bỏ với kỹ thuật đồng bộ hóa ww.

R=dm-read(x). R sẵn sàng nếu ts(R)∉interval(P), trong đó P là bộ đệm prewrite(x) bất kỳ.

Output nó và bộ đệm prewrite của nó

Ottput tất cả nhãn thời gian R sẵn sàng

Dừng

Hình 2.13. Bộ đệm trống cho đa phiên bản T/O

Một phần của tài liệu Cơ sở dữ liệu phân tán (Trang 30 - 32)