Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

Distributed Databases

Data Replication

Department of Information Systems


University of Engineering and Technology,
Vietnam National University, Hanoi

06/05/2024 Hoa.Nguyen@vnu.edu.vn
Distributed Databases – Department of Information Systems 1
VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

 Tổng quát về nhân bản dữ liệu


 Tính nhất quán
 Các giao thức nhân bản

Chap 13, Principles of Distributed Database Systems,


M. Tamer Özsu, Patrick Valduriez, 2011

Distributed Databases – Department of Information Systems 2


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

1. Nhân bản dữ liệu (Replication)


 Nhân bản dữ liệu là gì?
 Tại sao cần nhân bản?
▪ Tính sẵn sàng : loại bỏ được các lỗi máy đơn lẻ,

▪ Hiệu năng: xử lý tại chỗ, tăng hiệu năng ,

▪ Thích ứng tốt khi tăng phạm vi địa lý của hệ thống,

▪ Một số yêu cầu đặc biệt của ứng dụng?

Distributed Databases – Department of Information Systems 3


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

1. Nhân bản dữ liệu (Replication)


 Nhược điểm
 Vấn đề trong suốt nhân bản:

Người dùng cần phải biết về sự nhân bản tùy theo mức độ trong suốt
được hỗ trợ

 Vấn đề nhất quán


▪ Chi phí về sự đảm bảo nhất quán (đồng bộ dữ liệu)
▪ Tính sẵn sàng, độ tin cậy, hiệu quả có thể giảm nếu nhân bản/đồng bộ
không hợp lý

Distributed Databases – Department of Information Systems 4


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

2. Mô hình thực hiện nhân bản


o Một đơn vị dữ liệu logic (x) với
nhiều bản được copy (copy vật lý, xi)
trên các site
o Các thao tác được chỉ định trên dữ
liệu logic, các tác động được lan
truyền tới mọi đơn vị dữ liệu vật lý
o Tương đương về bản sao: tác động
của giao dịch trên dữ liệu tương
đương với việc tác động trên tập các
đối tượng (nhân bản)
o Trong suốt: chỉ cần thao tác với dữ
liệu logic (nếu hệ thống cung cấp).

Distributed Databases – Department of Information Systems 5


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

3. Các vấn đề về nhân bản


o Tính nhất quán: Cách thức để đảm bảo tính nhất quán của toàn
hệ thống: nhất quán về dữ liệu (mutual consistency), nhất quán giao
dịch.
o Mức độ trong suốt : trong suốt hoàn toàn hay trong suốt giới hạn

o Nơi được phép phát sinh cập nhật:


• Trung tâm hóa: cập nhật xuất phát tại master
• Phân tán hóa : cập nhật xuất phát tại bất kỳ bản sao nào

o Chiến lược lan truyền cập nhật:


o Tích cực (eager - tham lam): lan truyền cập nhật ngay lập tức trước
khi giao dịch commit
o Lười biếng (lazy): không bắt buộc lan truyền cập nhật ngay lập tức

Distributed Databases – Department of Information Systems 6


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

3.1. Tính nhất quán dữ liệu (mutual consitency)


 Cơ sở dữ liệu nhất quán: mọi bản sao có giá trị đồng nhất (các
bản sao của dữ liệu logic luôn được đồng bộ)
 Nhất quán mạnh:
o Tất cả các bản sao được cập nhật theo ngữ cảnh của giao dịch
o Khi giao dịch cập nhật hoàn thành, mọi bản sao có cùng giá trị
 Nhất quán yếu:

o Khi giao dịch cập nhật hoàn thành, có thể có bản sao chưa cập
nhật
o Nó sẽ được đồng bộ sau khoảng thời gian nào đó

Distributed Databases – Department of Information Systems 7


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

3.1. Tính nhất quán dữ liệu


Ví dụ: Site A (x,y) Site
T 1: B(x,y)
Read(x) T: Read(x)
2
y ← x+5 x ← x∗10
Write(y) Write(x)
Commit Read(y)
y ← x+y
Write(y)
Commit
Xét 2 lịch trình tại A và B: Giả sử trạng thái đầu xA=xB=1; yA =yB =1
HA={R1(xA),W1(yA), C1, W2(xA), W2(yA), C2}
HB={R2(xB), W1(yB), C1 , W2(xB), R2(yB), W2(yB), C2}

Lịch trình tổng thể tuần tự: HA: T1→ T2, HB: T1→ T2
Dữ liệu nhất quán: xA=10, xB=10; yA= yB= 16

Distributed Databases – Department of Information Systems 8


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

3.1. Tính nhất quán dữ liệu


Ví dụ: Site A Site B
x x
T1: Read(x) T2: Read(x)
x ← x+5 x ← x∗10
Write(x) Write(x)
Commit Commit

Xét 2 lịch trình tại A và B: Giả sử trạng thái đầu xA=xB=1;


HA={R1(xA),W1(xA), C1, W2(xA), C2}
HB={R2(xB), W2(xB), C2, W1(xB), C1}

Lịch trình tổng thể phi tuần tự: HA: T1→ T2, HB: T2→ T1
Dữ liệu không nhất quán: xA=10, xB=6

Distributed Databases – Department of Information Systems 9


VI . Nhân bản dữ liệu Cơ sở dữ liệu phân tán

3.1. Tính nhất quán dữ liệu


Ví dụ: Site A Site B Site C
x x, y x, y, z

T1: x ← 20 T2: Read(x) T3: Read(x)


Write(x) y ← x+y Read(y)
Commit Write(y) z ← (x∗y)/100
Commit Write(z)
Commit
Xem xét 3 lịch trình cục bộ sau:
HA={W1(xA), C1}; HB={W1(xB), C1, R2(xB), W2(yB), C2}
HC={W2(yC), C2, R3(xC), R3(yC),W3(zC), C3, W1(xC),C1}
Giả sử trạng thái đầu: xA=xB=xC=10, yB=yC=15,zC=7 ;

Lịch trình tổng thể không tuần tự: HB: T1→T2, HC: T2→T3→T1
nhưng nhất quán dữ liệu: xA=xB=xC=20, yB=yC=35, zC=3.5

Distributed Databases – Department of Information Systems 10


3.2. Chiến lược cập nhật lan truyền
 Phân loại dựa theo thời gian lan truyền cập nhật
o Tích cực
o Lười biếng
 Phân loại dựa vào nơi phát sinh cập nhật
 Trung tâm hóa
 Phân tán
Centralized Distributed

Eager Eager centralized Eager distributed

Lazy Lazy centralized Lazy distributed

Distributed Databases – Department of Information Systems 11


3.2. Chiến lược cập nhật lan truyền
3.2.a. Chiến lược Eager
 Lan truyền tức thời cập nhật tới các bản sao.
 Đảm bảo đặc tính ACID (atomicity-nguyên tử, consistency-nhất quán, isolation-cô
lập, durability-bền vững); đồng bộ với mọi bản sao.
 Thực hiện giao thức ROWA (Read-one/Write-all)
 Thỏa mãn tiêu chuẩn nhất quán mạnh
Transaction
updates commit


Site 1 Site 2 Site 3 Site 4

Distributed Databases – Department of Information Systems 12


3.2. Chiến lược cập nhật lan truyền
3.2.a. Chiến lược Eager

 Ưu điểm:
o Mọi bản sao luôn đồng bộ, nhất quán mạnh

o Các giao dịch đọc chỉ cần đọc dữ liệu cục bộ

o Cập nhật các bản sao có tính nguyên tử, việc khôi phục khi bị
lỗi sẽ đơn giản
 Nhược điểm:
o Giao dịch phải đợi tới khi mọi bản sao được cập nhật

o Nếu một bản sao bị lỗi, toàn bộ giao dịch bị hủy bỏ


Distributed Databases – Department of Information Systems 13
3.2. Chiến lược cập nhật lan truyền
3.2.b. Chiến lược Lazy
 Không bắt buộc phải cập nhật mọi bản sao cùng với ngữ cảnh
của tiến trình cập nhật.

 Nói cách khác : tiến trình cập nhật có thể commit mà không
cần đợi các bản sao cập nhật. Cập nhật lan truyền có thể được
thực hiện sau khoảng thời gian nào đó.
 Trong khoảng thời gian nhất định (tùy vào mỗi ứng dụng), các bản
sao có thể không nhất quán.
Distributed Databases – Department of Information Systems 14
3.2. Chiến lược cập nhật lan truyền
3.2.b. Chiến lược Lazy

 Ưu điểm: Giảm thời gian chờ đợi commit của giao dịch

 Nhược điểm: Dữ liệu có thể không nhất quán, do đó có thể giao


dịch nào đó sẽ đọc được dữ liệu không đúng.

Distributed Databases – Department of Information Systems 15


3.2. Chiến lược cập nhật lan truyền
3.2.c. Kiểu trung tâm hóa (centralized)
 Trong các bản sao (vật lý) của một đối tượng dữ liệu(logic),
luôn có một bản được coi là master, các bản còn lại là slave

 Site lưu master gọi là


trung tâm (master site),
còn lại là site phân tán
(slave site)

 Việc cập nhật luôn phát sinh tại master, sau đó lan truyền tới
slave
Distributed Databases – Department of Information Systems 16
3.2. Chiến lược cập nhật lan truyền
3.2.c. Kiểu trung tâm hóa

 single master: chỉ có


1 site master cho mọi
đối tượng dữ liệu
logic

 primary copy: có thể


có các site master
khác nhau cho mỗi
đối tượng dữ liệu
logic
Distributed Databases – Department of Information Systems 17
3.2. Chiến lược cập nhật lan truyền
3.2.c. Kiểu trung tâm hóa

 Ưu điểm:
o Dễ cho ứng dụng cập nhật vì việc định vị cập nhật chỉ xảy ra
tại master.
o Luôn xác định ít nhất 1 site, trên đó dữ liệu được đã cập nhật
(up-to-date)

 Nhược điểm:
o single master: quá tải cho master
o primary copy: hạn chế về tính nhất quán dữ liệu

Distributed Databases – Department of Information Systems 18


3.2. Chiến lược cập nhật lan truyền
3.2.d. Kiểu phân tán (distributed)

 Phát sinh cập nhật có thể xảy ra tại bất kỳ site (bản copy) nào.
Tức là có thể xảy ra tại site phát sinh ra giao dịch, sau đó lan
truyền tới site khác.

 Ưu điểm: Khả năng sẵn


sàng của hệ thống cao.

 Nhược điểm: Vấn đề tương


tranh, đồng bộ dữ liệu khó
khăn.

Distributed Databases – Department of Information Systems 19


3.2. Chiến lược cập nhật lan truyền

Eager Centralized
+ Dữ liệu luôn nhất quán + Luôn có 1 site luôn được cập
+ Đọc dữ liệu cục bộ luôn là hợp lệ nhật phản ánh đúng dữ liệu
+ Thay đổi có tính nguyên tử − Có thể quá tải tại master
− Giao dịch phải cập nhật mọi bản sao
− Dữ liệu cục bộ của thao tác đọc
− Thời gian chậm
có thể chưa được cập nhật
− Tính sẵn sàng thấp

Lazy Distributed
+ Các giao dịch thực hiện cục bộ, giảm + Giao dịch có thể khởi chạy tại
thời gian commit bất kỳ site nào
− Dữ liệu có thể không nhất quán, + Phân tải trên các site
− Hạn chế về tính trong suốt nhân bản − Việc đồng bộ trên các bản sao
sẽ phức tạp.

Distributed Databases – Department of Information Systems 20


3.3. Các giao thức cập nhật lan truyền nhân bản

Lazy Centralized protocol Lazy Distibuted protocol

Lazy

Eager
Eager Centralized protocol Eager Distibuted protocol

Centralized Distributed

Distributed Databases – Department of Information Systems 21


3.3.1. Eager Centralized Protocols

o Có một “trung tâm” cho mỗi dữ liệu logic. Giao dịch cập
nhật dữ liệu luôn thực hiện tại “trung tâm” rồi lan truyền
tới các bản sao.
o Lan truyền cập nhật tới các bản sao (copy) theo phương
thức “tích cực” (ngay lập tức)

o Commit chỉ xảy ra khi mọi bản sao đã được cập nhật
thành công.

Distributed Databases – Department of Information Systems 22


3.3.1. Giao thức Eager Centralized

 Các yếu tố cần xác định:


o Mức độ phân tán của “trung tâm”: Single master, Primary copy
o Mức độ trong suốt:
• Trong suốt có giới hạn: ứng dụng cần phải biết đâu là master
Cập nhật phải gửi thực hiện tại master; Đọc dữ liệu tại site cục bộ
• Trong suốt hoàn toàn: ứng dụng không cần phải biết đâu là master

 Các lựa chọn cài đặt :


 Single master, trong suốt có giới hạn
 Single master, trong suốt hoàn toàn
 Primary copy, trong suốt hoàn toàn

Distributed Databases – Department of Information Systems 23


3.3.1.a. Giao thức Eager Single Master/Limited Transparency

 Ứng dụng chuyển giao dịch cập nhật lên master


 Tại Master:
o Read: đọc dữ liệu tại master, trả về cho user
o Write: ghi dữ liệu tại master, lan truyền tới các site khác (FIFO )
o Commit : Thực hiện theo 2PC
o Abort: Hủy giao dịch trên master, điều phối hủy trên các slave

 Tại Slaves : Nhận và thực hiện thao tác ghi lan truyền từ master

Distributed Databases – Department of Information Systems 24


3.3.1.a. Giao thức Eager Single Master/Limited Transparency(cont)

 Ứng dụng chuyển giao dịch chỉ đọc tới slave phù hợp
 Tại Slave
o read: thi hành đọc dữ liệu
o write từ master : thực hiện ghi theo trật tự FIFO
o write từ client: từ chối
o commit : thực hiện commit cục bộ
o tham dự 2PC với master

Distributed Databases – Department of Information Systems 25


3.3.1.b. Eager Single Master/Full Transparency

• Hệ thống có bộ quản lý giao dịch (TM), mọi ứng d ụng bi ết TM

• Ứng dụng gửi mọi giao dịch tới TM

Coordinating TM Master Site


 gửi op(x) tới master site (trung tâm)  nếu op(x) = Read(x): lập read lock
trên x gửi “lock granted” msg tới TM
 nếu op(x) = Write(x)
 gửi Read(x) tới site bất kỳ có x  đặt write lock trên x
 cập nhật x
 thông báo điều phối ghi tới TM
 gửi Write(x) tới mọi site có x
 khi nhận được Commit thực hiện,
điều phối 2PC
 Thực thi và điều phối 2PC

Distributed Databases – Department of Information Systems 26


3.3.2. Giao thức Eager Primary copy

 Mỗi dữ liệu logic (gồm tập các bản sao vật lý) có một trung tâm
(master riêng biệt)  có một TM riêng (cục bộ)
 Lan truyền cập nhật với chiến lược tích cực
 Tương ứng có 2 mức độ trong suốt nhân bản : hoàn toàn, giới
hạn; tuy nhiên chỉ xét tới kiểu trong suốt hoàn toàn.

Distributed Databases – Department of Information Systems 27


3.3.2. Eager Primary Copy/Full Transparency

 Ứng dụng chuyển giao dịch trực tiếp tới TM cục bộ


 TM cục bộ:
o Chuyển thao tác tới “trung tâm” của dữ liệu cần thao tác
o thiết lập các khóa, gửi Read tới slave thích hợp, Write tới mọi
slave.
o Điều phối 2PC

Distributed Databases – Department of Information Systems 28


3.3.2. Eager Primary Copy/Full Transparency

 tại Primary copy site


 Read(x): khóa x và trả về TM
 Write(x): khóa x, thực thi update, thông báo cho TM
 tham gia 2PC
 Slaves: (như 3.3.1.a)
o read: thi hành đọc dữ liệu
o write từ master : thực hiện ghi
theo trật tự FIFO
o write từ client: từ chối
o commit : thực hiện commit cục
bộ
o tham dự 2PC với master

Distributed Databases – Department of Information Systems 29


3.3.3. Eager Distributed Protocol
 Thao tác cập nhật có thể khởi phát tại bản sao (site) bất kỳ
 Mỗi site đều sử dụng 2 phase locking (2PL).
 Thao tác Read thực hiện cục bộ.
 Thao tác Write thực hiện trên mọi site (bắt đầu từ cục bộ), rồi lan truyền
 Site khởi phát sẽ là điều phối 2PC
 Slaves: (như trên)

Distributed Databases – Department of Information Systems 30


3.3.3. Eager Distributed Protocol

 Đặc điểm:
o Trình tự thực hiện (tương tranh) writes tại các site khởi tạo

(đóng vai trò như master); các site khác tương tự như đối với
các slave
o Lịch trình cục bộ là tuần tự

 Ưu điểm: Đơn giản, dễ cài đặt


 Nhược điểm: chi phí truyền thông cao

Distributed Databases – Department of Information Systems 31


3.3.4. Lazy Centralized

 Tất cả dữ liệu có chung một master


 Mọi giao dịch cập nhật được gửi lên master,
 Khởi phát cập nhật tại master, commit cục bộ, lan truyền cập
nhật tới các bản sao khác .
 Tương ứng có 2 mức độ trong suốt: hoàn toàn hoặc giới hạn

Distributed Databases – Department of Information Systems 32


3.3.4.a. Lazy Single Master/Limited Transparency

 Giao dịch cập nhật được gửi lên master


 Master:
o read: thực thi read và gửi dữ liệu về user
o write: thực thi write cục bộ
o commit/abort: thực thi cục bộ, sau khoảng thời gian commit: gửi thông
báo updates tới các slave
 Slaves:
o read: thực thi read cục bộ o cập nhật(từ master): thực thi updates

Distributed Databases – Department of Information Systems 33


3.3.4.b. Lazy Single Master/Full Transparency

 Có 1 master chung cho mọi đơn vị dữ liệu logic


 Các ứng dụng không cần biết master
 Thực hiện tương tự như (3.3.4.a)
 Nhược điểm:
 Có thể vi phạm tính nhất quán dữ liệu
 Một giao dich có thể không đọc được đúng dữ liệu do chính
nó cập nhật.

Distributed Databases – Department of Information Systems 34


3.3.4.c. Lazy Primary Copy/Limited Transparency

 Mỗi dữ liệu logic có một master (primary copy) khác


nhau
 Các ứng dụng (slave) phải biết master của mình
 Mỗi primary copy thực hiện tương tự như (3.3.4.a)
 Slave : thực hiện tương tự như (3.3.4.a)

Distributed Databases – Department of Information Systems 35


3.3.5. Lazy Distributed protocols
 Mỗi site (mỗi bản copy) đều có thể thực hiện giao dịch
 Tại mỗi site:
 read: thực thi Read cục bộ, trả về cho user
 write: thực thi Write cục bộ
 commit/abort: thực thi cục bộ
 sau commit: gửi thông báo commit tới các site khác

Distributed Databases – Department of Information Systems 36


Các giao thức cập nhật lan truyền

3.3.1.a. Eager Single Master/Limited Transparency


3.3.1.b. Eager Single Master/Full Transparency
3.3.2. Eager Primary Copy/Full Transparency
3.3.3. Eager Distributed Protocol

3.3.4.a. Lazy Single Master/Limited Transparency


3.3.4.b. Lazy Single Master/Full Transparency

3.3.4.c. Lazy Primary Copy/Limited Transparency


3.3.5. Lazy Distributed protocols

Distributed Databases – Department of Information Systems 37


Thuật ngữ viết tắt
 2PC: 2 phase commit
 1SR:one-copy serializability
 RC: relexed concurrency: tương tranh lỏng/yếu
 ACID (atomicity, consistency, isolation, durability):nguyên tử,
nhất quán, cô lập, bền vững
 ROWA (Read-one/Write-all)
 PC2PL: primary copy two-phase locking

Distributed Databases – Department of Information Systems 38

You might also like