You are on page 1of 27

A.

Data Replication

Mục đích của REPLICATION:

1. Tính khả dụng của hệ thống: Loại bỏ các điểm lỗi đơn lẻ bằng cách sao chép dữ liệu, để các mục dữ
liệu có thể truy cập được từ nhiều trang web => Khi một số vị trí ngừng hoạt động, dữ liệu vẫn có thể
truy cập được từ các vị trí khác.

2. Hiệu suất: Một trong những yếu tố đóng góp chính vào thời gian phản hồi là chi phí liên lạc. Việc sao
chép cho phép định vị dữ liệu gần các điểm truy cập của chúng hơn => giảm thời gian phản hồi.

3. Khả năng mở rộng: Khi các hệ thống phát triển về mặt địa lý và về số lượng địa điểm, việc sao chép
cho phép tìm ra cách hỗ trợ sự tăng trưởng này với thời gian phản hồi có thể chấp nhận được.

4. Yêu cầu ứng dụng: Việc sao chép có thể được quyết định bởi các ứng dụng, có thể muốn duy trì nhiều
bản sao dữ liệu như một phần thông số kỹ thuật hoạt động của chúng.

Mặc dù việc sao chép dữ liệu có những lợi ích rõ ràng nhưng nó đặt ra thách thức đáng kể trong việc giữ
cho các bản sao khác nhau được đồng bộ hóa. Mỗi mục dữ liệu x được sao chép các bản sao x1, x2,...,xn.
Coi x là mục dữ liệu logic và coi các bản sao của nó là mục dữ liệu vật lý. Các giao dịch của người dùng sẽ
thực hiện các thao tác đọc và ghi trên mục dữ liệu logic x. Giao thức nhân rộng chịu trách nhiệm ánh xạ
các hoạt động này để đọc và ghi trên các mục dữ liệu vật lý x1,...,xn.

Một số yếu tố ảnh hưởng đến việc thiết kế giao thức nhân rộng:

• Thiết kế cơ sở dữ liệu:

- Cơ sở dữ liệu phân tán có thể được sao chép toàn bộ hoặc một phần.
- Trong trường hợp sao chép một phần, số lượng mục dữ liệu vật lý cho mỗi mục dữ liệu logic có
thể khác nhau và một số mục dữ liệu có thể không được sao chép.
+ Giao dịch cục bộ: Các giao dịch chỉ truy cập các mục dữ liệu không được sao chép,
chúng được thực thi cục bộ tại một địa điểm và việc thực hiện chúng thường không liên quan
đến chúng ta ở đây.
+ Giao dịch toàn cầu: Các giao dịch truy cập các mục dữ liệu được sao chép có thể được
thực hiện tại nhiều địa điểm.
• Tính nhất quán của cơ sở dữ liệu:

- Khi các giao dịch toàn cầu cập nhật bản sao của một mục dữ liệu tại các vị trí khác nhau, giá trị
của các bản sao này có thể khác nhau tại một thời điểm nhất định.
- Một bản sao cơ sở dữ liệu được cho là nhất quán nếu tất cả các bản sao của từng mục dữ liệu
của nó có giá trị giống hệt nhau.
- Các tiêu chí nhất quán khác nhau phụ thuộc vào mức độ đồng bộ hóa của các bản sao:
+ Một số đảm bảo rằng các bản sao nhất quán khi giao dịch cập nhật được thực hiện,
được gọi là tiêu chí nhất quán mạnh mẽ.
+ Các cách tiếp cận thoải mái hơn được gọi là tiêu chí nhất quán yếu.

• Nơi thực hiện cập nhật:

- Quyết định cơ bản trong việc thiết kế giao thức nhân rộng là nơi thực hiện cập nhật cơ sở dữ liệu
lần đầu tiên.
+ Các kỹ thuật này có thể được coi là tập trung nếu chúng thực hiện cập nhật trước trên
bản sao chính
+ Được coi là phân tán nếu chúng cho phép cập nhật trên bất kỳ bản sao nào.

• Lan truyền cập nhật.

- Sau cập nhật trên một bản sao (bản chính hoặc bản sao khác), quyết định tiếp theo là cách các
bản cập nhật ảnh hưởng đến những bản sao khác.
- Lựa chọn ảnh hưởng được chia làm 2 loại là háo hức và lười biếng.
+ Các kỹ thuật háo hức thực hiện tất cả các cập nhật trong bối cảnh giao dịch toàn cầu đã bắt
đầu hoạt động ghi. Do đó, khi giao dịch được thực hiện, các cập nhật của nó sẽ được áp dụng
cho tất cả các bản sao. Các kỹ thuật háo hức được xác định thêm tùy theo thời điểm chúng đẩy
từng thao tác ghi sang các bản sao khác, một số đẩy từng thao tác ghi riêng lẻ, một số khác thực
hiện gộp các thao tác ghi và truyền bá chúng tại điểm cam kết.
+ Mặt khác, các kỹ thuật lười biếng sẽ truyền bá các bản cập nhật sau khi giao dịch bắt đầu được
thực hiện.

• Mức độ minh bạch trong nhân rộng:

- Một số giao thức nhân rộng nhất định yêu cầu mỗi ứng dụng phải biết vị trí chính nơi các hoạt
động giao dịch sẽ được gửi.
+ Các giao thức chỉ cung cấp tính minh bạch trong sao chép có giới hạn cho các ứng
dụng.
+ Các giao thức khác cung cấp tính minh bạch trong việc sao chép đầy đủ bằng cách liên
quan đến Transaction Manager (TM) tại mỗi địa điểm.

B.1 Tính nhất quán của Replicated Databases


- Có hai vấn đề liên quan đến tính nhất quán của cơ sở dữ liệu được sao chép.

+ Một là tính nhất quán lẫn nhau, liên quan đến sự hội tụ các giá trị của các mục dữ liệu vật lý
tương ứng với một mục dữ liệu logic.

+ Thứ hai là tính nhất quán của giao dịch

6.1.1 Tính nhất quán lẫn nhau

Tiêu chí nhất quán chung cho cơ sở dữ liệu được sao chép có thể mạnh hoặc yếu. Mỗi loại phù hợp cho
các lớp ứng dụng khác nhau với các yêu cầu về tính nhất quán khác nhau.

+ Tiêu chí nhất quán mạnh mẽ yêu cầu tất cả các bản sao của một mục dữ liệu có cùng giá trị khi
kết thúc quá trình thực hiện giao dịch cập nhật. Điều này đạt được bằng nhiều cách khác nhau, nhưng
việc thực thi 2PC tại điểm cam kết của giao dịch cập nhật là cách phổ biến để đạt được sự nhất quán
mạnh mẽ lẫn nhau.

+ Tiêu chí nhất quán lẫn nhau yếu không yêu cầu giá trị của các bản sao của một mục dữ liệu
phải giống hệt nhau khi giao dịch cập nhật kết thúc. Điều cần thiết là nếu hoạt động cập nhật dừng lại
một thời gian thì các giá trị cuối cùng sẽ giống hệt nhau. Điều này thường được gọi là tính nhất quán
cuối cùng, đề cập đến thực tế là các giá trị bản sao có thể khác nhau theo thời gian nhưng cuối cùng sẽ
hội tụ.

Khả năng tuần tự hóa Epsilon (ESR) cho phép truy vấn xem dữ liệu không nhất quán trong khi các bản
sao đang được cập nhật. Nó giới hạn lỗi trên các giá trị đọc bằng một giá trị epsilon, được xác định theo
số lần cập nhật (thao tác ghi) mà một truy vấn “bỏ sót”. Cho một giao dịch (truy vấn) chỉ đọc TQ, đặt TU
là tập hợp tất cả các giao dịch cập nhật đang thực hiện đồng thời với TQ. Nếu RS(TQ) ꓵ W S(TU ) = ∅ (TQ
đang đọc một số bản sao của một số mục dữ liệu trong khi một giao dịch trong TU đang cập nhật (có thể
là một bản sao khác) của các mục dữ liệu đó), thì sẽ xảy ra xung đột đọc ghi và TQ có thể đang đọc dữ
liệu không nhất quán. Sự không nhất quán được giới hạn bởi những thay đổi được thực hiện bởi TU. Rõ
ràng, ESR không hy sinh tính nhất quán của cơ sở dữ liệu mà chỉ cho phép các giao dịch (truy vấn) chỉ đọc
đọc dữ liệu không nhất quán. Giả sử ε được đặt thành 2. Một truy vấn đọc có thể đọc dữ liệu không nhất
quán nếu dữ liệu đã được cập nhật tối đa 2 lần kể từ khi truy vấn bắt đầu.

 ESR không làm suy yếu tính nhất quán của cơ sở dữ liệu mà còn “kéo dài” nó.

Một số ràng buộc khác:

+ Các ràng buộc về thời gian: Người dùng có thể chấp nhận sự khác biệt của các giá trị bản sao
vật lý trong một khoảng thời gian nhất định: x iphản ánh giá trị của bản cập nhật tại thời điểm t,
trong khi x j phản ánh giá trị tại t - delta và x j có thể được chấp nhận.

+ Ràng buộc về giá trị: Có thể chấp nhận được việc có các giá trị của tất cả các mục dữ liệu vật lý
trong một phạm vi nhất định của nhau. Người dùng có thể coi cơ sở dữ liệu là nhất quán lẫn
nhau nếu các giá trị không phân kỳ nhiều hơn một lượng (hoặc tỷ lệ phần trăm) nhất định.

+ Ràng buộc kéo theo trên nhiều mục dữ liệu: Đối với các giao dịch đọc nhiều mục dữ liệu, người
dùng có thể hài lòng nếu khoảng thời gian giữa các mốc thời gian cập nhật của hai mục dữ liệu
nhỏ hơn một ngưỡng hoặc trong trường hợp tính toán tổng, nếu tổng được tính toán trên một
mục dữ liệu nằm trong một phạm vi nhất định của giá trị gần đây nhất (nghĩa là ngay cả khi giá trị
bản sao vật lý riêng lẻ có thể nằm ngoài phạm vi này, miễn là một tính toán tổng cụ thể nằm
trong phạm vi, thì có thể chấp nhận được).

B.2 Tính nhất quán trong giao dịch


Tính nhất quán lẫn nhau đề cập đến các bản sao hội tụ về cùng một giá trị, trong khi tính nhất quán của
giao dịch yêu cầu lịch sử thực thi toàn cầu phải được tuần tự hóa.

Ví dụ 1:

Có 3 vị trí (A, B và C) và ba mục dữ liệu (x, y, z) được phân bổ như sau: Vị trí A host x, vị trí B host x, y, Vị
trí C host x, y, z.
Hãy xem xét ba giao dịch sau:

Lệnh Write của T1 phải được thực thi ở cả ba vị trí (vì x được sao chép ở cả ba vị trí), lệnh Write của T2
phải được thực hiện tại B và C, và Write của T3 chỉ được thực hiện tại C.

Thứ tự thực hiện của H B là T 1 -> T 2, trong khi H C là T 2 -> T 3 -> T 1, lịch sử thực thi toàn cầu không
được nhất quán. Tuy nhiên cơ sở dữ liệu lại nhất quán lẫn nhau, ví dụ x A= x B = x C = 10, y B = y c = 15 và
z c = 7, sau khi qua lịch sử giao dịch trên x A= x B = x C = 20, y B = y c = 35 và z c = 3.5

C Chiến lược quản lý cập nhật


Các giao thức nhân rộng có thể được phân loại theo thời điểm các bản cập nhật được truyền tới các bản
sao (háo hức và lười biếng) và nơi các bản cập nhật được phép xảy ra (trung tâm và phân tán). Hai quyết
định này thường được gọi là chiến lược quản lý cập nhật.

C.1 Lan truyền cập nhật háo hức


Các phương pháp lan truyền cập nhật háo hức áp dụng các thay đổi cho tất cả các bản sao trong bối
cảnh giao dịch cập nhật. Do đó, khi giao dịch cập nhật được thực hiện, tất cả các bản sao đều có cùng giá
trị. Lan truyền háo hức có thể sử dụng lan truyền đồng bộ của mỗi bản cập nhật bằng cách áp dụng nó
trên tất cả các bản sao cùng một lúc (khi lệnh Write được thực hiện) hoặc lan truyền trì hoãn, theo đó
các bản cập nhật được áp dụng cho một bản sao khi chúng được phát hành, nhưng ứng dụng của chúng
trên các bản sao khác được hoãn lại cho đến khi kết thúc giao dịch.
Kỹ thuật háo hức thường thực thi các tiêu chí nhất quán lẫn nhau mạnh mẽ. Vì tất cả các bản sao đều
nhất quán lẫn nhau khi kết thúc giao dịch cập nhật, nên lần đọc tiếp theo có thể đọc từ bất kỳ bản sao
nào (tức là người ta có thể ánh xạ Read(x) thành Read(xi) cho bất kỳ xi nào). Tuy nhiên, Write(x) phải
được áp dụng cho tất cả xi. Do đó, các giao thức tuân theo quá trình lan truyền cập nhật háo hức được
gọi là giao thức đọc một/ghi tất cả (ROWA).

Những uu điểm của việc lan truyền cập nhật háo hức bao gồm:

- Đầu tiên, nó thường đảm bảo rằng tính nhất quán lẫn nhau được thực thi bằng cách sử dụng
1SR, do đó không có sự mâu thuẫn trong giao dịch.
- Thứ hai, một giao dịch có thể đọc bản sao cục bộ của mục dữ liệu (nếu có sẵn bản sao cục bộ) và
chắc chắn rằng giá trị cập nhật được đọc. Vì vậy, không cần phải đọc từ xa.
- Cuối cùng, những thay đổi đối với bản sao được thực hiện một cách nguyên tử.

Nhược điểm chính của việc lan truyền cập nhật háo hức là giao dịch phải cập nhật tất cả các bản sao
trước khi có thể kết thúc. Điều này có hai hậu quả:

- Đầu tiên, hiệu suất thời gian phản hồi của giao dịch cập nhật bị ảnh hưởng do nó thường phải
tham gia vào quá trình thực thi của 2 PC và do tốc độ cập nhật bị hạn chế bởi máy chậm nhất.
- Thứ hai, nếu một trong các bản sao không có sẵn thì giao dịch không thể kết thúc vì tất cả các
bản sao cần được cập nhật.

C.2 Lan truyền cập nhật lười biếng


Trong lan truyền cập nhật lười biếng, các bản cập nhật bản sao không phải tất cả đều được thực hiện
trong bối cảnh giao dịch cập nhật. Giao dịch không đợi cho đến khi các cập nhật của nó được áp dụng
cho tất cả các bản sao trước khi chuyển giao, nó chuyển giao ngay khi một bản sao được cập nhật. Tuyên
truyền lười biếng được sử dụng trong những ứng dụng mà tính nhất quán lẫn nhau mạnh mẽ có thể là
không cần thiết và quá hạn chế. Các ứng dụng này có thể chấp nhận một số điểm không nhất quán giữa
các bản sao để có được hiệu suất tốt hơn. Ví dụ về các ứng dụng như vậy là dịch vụ tên miền (DNS), cơ
sở dữ liệu trên các trang web được phân bổ rộng rãi về mặt địa lý, cơ sở dữ liệu di động và cơ sở dữ liệu
trợ lý kỹ thuật số cá nhân. Trong những trường hợp này, tính nhất quán lẫn nhau yếu thường được thực
thi.
Ưu điểm chính của kỹ thuật lan truyền cập nhật lười biếng là chúng thường có thời gian phản hồi thấp
hơn cho các giao dịch cập nhật, vì một giao dịch cập nhật có thể được thực hiện ngay khi nó cập nhật
một bản sao.

Nhược điểm là các bản sao không nhất quán lẫn nhau và một số bản sao có thể lỗi thời, do đó, thao tác
đọc cục bộ có thể đọc dữ liệu cũ và không đảm bảo trả về giá trị cập nhật.

C.3 Kĩ thuật tập trung


Các kỹ thuật lan truyền cập nhật tập trung yêu cầu các bản cập nhật trước tiên được áp dụng ở bản
chính và sau đó được truyền sang các bản sao khác (được gọi là bản phụ). Vị trí lưu trữ bản sao chính
cũng được gọi tương tự là vị trí chính, trong khi các vị trí lưu trữ bản sao phụ cho mục dữ liệu đó được
gọi là vị trí phụ.

Những ưu điểm của kỹ thuật tập trung là:

- Đầu tiên, việc áp dụng các bản cập nhật rất dễ dàng vì chúng chỉ diễn ra ở trang chính và chúng
không yêu cầu đồng bộ hóa giữa nhiều trang bản sao.
- Thứ hai, có sự đảm bảo rằng ít nhất một địa điểm lưu giữ bản sao chính, có các giá trị cập nhật
cho một mục dữ liệu. Các giao thức này thường phù hợp trong kho dữ liệu và các ứng dụng khác
nơi việc xử lý dữ liệu được tập trung tại một hoặc một vài địa điểm chính.

Nhược điểm chính là nếu có một vị trí trung tâm lưu trữ tất cả các bản chính thì vị trí này có thể bị
quá tải.

 Phân phối trách nhiệm của vị trí chính cho từng mục dữ liệu như trong kỹ thuật sao chép chính là
một cách để giảm ảnh hưởng của vấn đề này, nhưng nó đặt ra các vấn đề về tính nhất quán, đặc biệt
là liên quan đến việc duy trì khả năng tuần tự hóa toàn cầu trong các kỹ thuật sao chép lười biếng, vì
các giao dịch làm mới phải được thực hiện tại các bản sao theo cùng thứ tự tuần tự hóa.

C.4 Kĩ thuật phân tán


Các kỹ thuật phân tán áp dụng cập nhật trên bản sao cục bộ tại vị trí mà giao dịch cập nhật bắt đầu và
sau đó các bản cập nhật được truyền đến các vị trí bản sao khác. Chúng được gọi là kỹ thuật phân tán vì
các giao dịch khác nhau có thể cập nhật các bản sao khác nhau của cùng một mục dữ liệu ở các địa điểm
khác nhau. Chúng có thể phân phối tải đồng đều hơn và có thể mang lại tính sẵn sàng cao nhất cho hệ
thống nếu được kết hợp với các kỹ thuật lan truyền lười biếng.

Một vấn đề phức tạp nảy sinh trong các hệ thống này là các bản sao khác nhau của một mục dữ liệu có
thể được cập nhật đồng thời tại các vị trí khác nhau (chính). Nếu các kỹ thuật phân tán được kết hợp
bằng các phương pháp lan truyền háo hức thì các phương pháp kiểm soát đồng thời phân tán có thể giải
quyết thỏa đáng vấn đề cập nhật đồng thời. Tuy nhiên, nếu sử dụng các phương pháp lan truyền lười
biếng thì các giao dịch có thể được thực hiện theo các thứ tự khác nhau tại các trang web khác nhau gây
ra lịch sử toàn cầu không phải 1SR. Hơn nữa, nhiều bản sao khác nhau sẽ không đồng bộ. Để quản lý
những vấn đề này, một phương pháp đối chiếu được áp dụng bao gồm việc hoàn tác và thực hiện lại các
giao dịch theo cách sao cho việc thực hiện giao dịch giống nhau ở mỗi địa điểm. Đây không phải là một
vấn đề dễ dàng vì việc đối chiếu thường phụ thuộc vào ứng dụng.

D Phương thức nhân rộng

D.1 Phương thức tập trung háo hức


Trong phương thức tập trung háo hức, một vị trí chính sẽ kiểm soát các hoạt động trên một mục dữ liệu.
Các giao thức này được kết hợp với các kỹ thuật nhất quán mạnh mẽ để các cập nhật cho một mục dữ
liệu logic được áp dụng cho tất cả các bản sao của nó trong khi giao dịch cập nhật, được cam kết sử dụng
giao thức 2PC. Do đó, sau khi giao dịch cập nhật hoàn tất, tất cả các bản sao đều có cùng giá trị cho các
mục dữ liệu được cập nhật (tức là nhất quán lẫn nhau) và lịch sử toàn cầu thu được là 1SR.

D.1.1 Single Master with Limited Replication


Transparency
Trường hợp đơn giản nhất là có một bản gốc duy nhất cho toàn bộ cơ sở dữ liệu (tức là cho tất cả các
mục dữ liệu) với tính minh bạch trong sao chép hạn chế để các ứng dụng người dùng biết được trang
chính. Trong trường hợp này, các giao dịch cập nhật toàn cầu (tức là các giao dịch chứa ít nhất một thao
tác Write(x), trong đó x là mục dữ liệu được sao chép) được gửi trực tiếp đến trang chính, cụ thể hơn là
tới Transaction Manager (TM) tại trang chính. Tại bản gốc, mỗi thao tác Read(x) được thực hiện trên bản
sao chính (tức là Read(x) được chuyển đổi thành Read(xM), trong đó M biểu thị bản sao chính) và được
thực thi như sau: thu được khóa đọc trên xM, việc đọc được thực hiện và kết quả được trả về cho người
dùng. Tương tự, mỗi Write (x) tạo ra một bản cập nhật của bản sao chính bằng cách trước tiên lấy khóa
ghi rồi thực hiện thao tác ghi. Sau đó, TM chính sẽ chuyển tiếp lệnh Ghi đến các trang phụ một cách
đồng bộ hoặc theo kiểu hoãn lại. Trong cả hai trường hợp, điều quan trọng là phải phổ biến các bản cập
nhật sao cho các bản cập nhật xung đột được thực thi ở các máy phụ theo cùng thứ tự chúng được thực
thi ở máy chủ. Điều này có thể đạt được bằng cách đánh dấu thời gian hoặc bằng một số sơ đồ đặt hàng
khác.

Single Master with Limited Replication (Sao chép chính đơn với Báo bản Giới hạn) là một dạng của Eager
Centralized Protocols (giao thức tập trung theo yêu cầu) được sử dụng trong sao chép dữ liệu, đặc biệt là
trong các hệ quản trị cơ sở dữ liệu phân tán.

Đặc điểm:

Một nút chính (master): Chỉ có một máy chủ chính chịu trách nhiệm xử lý tất cả các yêu cầu cập nhật
(ghi) dữ liệu.

Báo bản giới hạn: Dữ liệu được sao chép sang một số máy chủ khác, được gọi là các bản sao (replica)
hoặc các máy chủ phụ (slave). Tuy nhiên, các bản sao này chỉ được dùng để đọc, không tham gia vào quá
trình cập nhật dữ liệu.

Xác nhận tập trung: Khi một giao dịch cập nhật được gửi đến máy chủ chính, máy chủ chính sẽ xử lý giao
dịch, cập nhật dữ liệu của mình và sau đó gửi bản cập nhật đến tất cả các bản sao.

Giới hạn minh bạch: Người dùng và ứng dụng cần biết về sự tồn tại của máy chủ chính và các bản sao, và
họ cần phải gửi các yêu cầu cập nhật đến máy chủ chính.

Ví dụ:
Một mục dữ liệu x có vị trí chính ở trang A và vị trí phụ ở vị trí B và C. Hãy xem xét ba giao dịch sau:

Giả sử rằng T2 được gửi đến vị trí phụ tại B và T3 tới vị trí phụ tại C. Giả sử rằng T2 đọc x tại B [Read(xB)]
trước khi cập nhật của T1 được áp dụng tại B, trong khi T3 đọc x tại C [Read(xC) ] sau khi cập nhật của T1
tại C. Khi đó lịch sử được tạo ra sẽ như sau:

Thứ tự tuần tự hóa tại Site B là T2 -> T1, trong khi ở Site C là T1 -> T3. Do đó, thứ tự tuần tự hóa toàn cầu
là T2 -> T1 -> T3 thì ổn. Vì vậy lịch sử là 1SR.

Do đó, nếu tuân theo cách tiếp cận này, các giao dịch đọc có thể đọc dữ liệu được cập nhật đồng thời tại
bản gốc nhưng lịch sử toàn cầu vẫn sẽ là 1SR.

D.1.2 Single Master with Full Replication Transparency

Single Master with Full Replication Transparency (Kiến trúc Chủ đơn với Minh bạch Bản
sao Toàn bộ) là một phương pháp thiết kế để quản lý dữ liệu trong các hệ thống phân
tán. Nó đảm bảo tính nhất quán của dữ liệu bằng cách chỉ định một nút duy nhất (gọi là
"master") chịu trách nhiệm xử lý các yêu cầu cập nhật dữ liệu.

Đặc điểm chính:

 Master đơn: Chỉ có một nút "master" chịu trách nhiệm cập nhật dữ liệu. Nút này nhận
các yêu cầu ghi và áp dụng các thay đổi cho bản sao dữ liệu của chính nó.
 Bản sao toàn bộ: Tất cả các nút khác trong hệ thống đều lưu giữ một bản sao đầy đủ
của dữ liệu. Điều này đảm bảo khả năng phục hồi cao trong trường hợp nút master bị
lỗi.
 Minh bạch bản sao toàn bộ: Không giống như các mô hình khác ẩn giấu sự tồn tại
của các bản sao, Single Master with Full Replication Transparency cho phép các nút
khác nhận biết về sự tồn tại của các bản sao và trạng thái cập nhật của chúng. Tuy
nhiên, các nút khác không được phép ghi trực tiếp vào dữ liệu.

Hoạt động như thế nào:


1. Yêu cầu ghi: Khi một yêu cầu ghi được gửi đến hệ thống, nó sẽ được định hướng đến
nút master.
2. Xử lý master: Nút master xử lý yêu cầu ghi, cập nhật bản sao dữ liệu cục bộ của mình
và truyền bá bản cập nhật đến tất cả các bản sao khác.
3. Cập nhật bản sao: Các nút khác nhận được bản cập nhật và áp dụng nó cho bản sao
cục bộ của chúng.

Ưu điểm:

 Tính nhất quán mạnh: Bằng cách chỉ cho phép master cập nhật dữ liệu, Single Master
with Full Replication Transparency đảm bảo tính nhất quán cao của dữ liệu. Tất cả các
bản sao luôn phản ánh trạng thái cập nhật giống nhau.
 Khả năng phục hồi cao: Nếu nút master bị lỗi, hệ thống có thể dễ dàng chuyển sang
một bản sao khác làm master mới vì tất cả các bản sao đều có dữ liệu cập nhật đầy đủ.
 Minh bạch: Kiến trúc này minh bạch về sự tồn tại của các bản sao, giúp dễ dàng gỡ lỗi
và giám sát hệ thống.

Nhược điểm:

 Hiệu suất: Truyền bá cập nhật đến tất cả các bản sao có thể ảnh hưởng đến hiệu suất
của hệ thống, đặc biệt là đối với các cập nhật thường xuyên.
 Điểm nghẽn: Nút master có thể trở thành điểm nghẽn nếu nó là nút xử lý tất cả các
yêu cầu ghi.

Các tình huống sử dụng:

Single Master with Full Replication Transparency phù hợp cho các hệ thống yêu cầu
tính nhất quán dữ liệu mạnh mẽ và khả năng phục hồi cao, ngay cả với chi phí là giảm
một chút hiệu suất. Ví dụ về các tình huống sử dụng lý tưởng:

 Hệ thống quản lý kho hàng, nơi tính nhất quán dữ liệu về số lượng sản phẩm là rất
quan trọng.
 Hệ thống bỏ phiếu điện tử, nơi cần đảm bảo tính toàn vẹn của dữ liệu phiếu bầu.

Tóm lại:

Single Master with Full Replication Transparency là một phương pháp thiết kế hữu ích
để quản lý dữ liệu trong các hệ thống phân tán, cung cấp tính nhất quán và khả năng
phục hồi dữ liệu mạnh mẽ với một số đánh đổi về hiệu suất.

Single Master with Full Replication Transparency của một chủ duy nhất yêu cầu mỗi ứng dụng người
dùng phải biết trang chính và chúng đặt tải trọng đáng kể lên chủ phải xử lý (ít nhất) các hoạt động Đọc
trong các giao dịch cập nhật cũng như đóng vai trò điều phối viên cho các giao dịch này trong 2PC chấp
hành. Ở một mức độ nào đó, những vấn đề này có thể được giải quyết bằng cách liên quan đến việc
thực hiện các giao dịch cập nhật, Transaction Manager (TM) tại địa điểm nơi ứng dụng chạy. Do đó, các
giao dịch cập nhật không được gửi tới máy chủ mà đến TM tại địa điểm ứng dụng chạy (vì chúng không
cần biết máy chủ). TM này có thể đóng vai trò là TM phối hợp cho cả giao dịch cập nhật và chỉ đọc. Các
ứng dụng có thể chỉ cần gửi giao dịch của mình tới TM địa phương, mang lại sự minh bạch hoàn toàn. Có
những lựa chọn thay thế để triển khai tính minh bạch hoàn toàn, TM điều phối chỉ có thể hoạt động như
một “bộ định tuyến”, chuyển tiếp từng hoạt động trực tiếp đến trang web chính. Sau đó, trang web
chính có thể thực thi các hoạt động cục bộ (như được mô tả ở trên) và trả về kết quả cho ứng dụng. Mặc
dù việc triển khai thay thế này mang lại sự minh bạch hoàn toàn và có ưu điểm là dễ triển khai nhưng nó
không giải quyết được vấn đề quá tải ở máy chủ. Một cách thực hiện thay thế có thể như sau: 1. TM điều
phối sẽ gửi từng hoạt động khi nó nhận được đến trang trung tâm (chính). Điều này không yêu cầu thay
đổi thuật toán C2PL-TM (Thuật toán 5.1).

2. Nếu hoạt động là R(x), thì trình quản lý khóa tập trung (C2PL-LM trong Thuật toán 5.2) có thể tiến
hành bằng cách đặt khóa đọc trên bản sao x của nó (gọi là xM) thay mặt cho giao dịch này và thông báo
cho điều phối TM rằng khóa đọc được cấp. TM phối hợp sau đó có thể chuyển tiếp R(x) tới bất kỳ trang
phụ nào chứa bản sao của x [tức là chuyển đổi nó thành R(xi)]. Việc đọc sau đó có thể được thực hiện
bởi bộ xử lý dữ liệu (DP) tại nô lệ đó.

3. Nếu thao tác là W (x), thì trình quản lý khóa tập trung (chính) sẽ tiến hành như sau:

(a) Đầu tiên nó đặt khóa ghi trên bản sao xM của nó.

(b) Sau đó nó gọi DP cục bộ của nó để thực hiện W (xM) trên bản sao của chính nó.

(c) Cuối cùng, nó thông báo cho TM điều phối rằng khóa ghi đã được cấp.

TM phối hợp, trong trường hợp này, gửi W (x) tới tất cả các máy phụ có bản sao của x tồn tại; DP tại các
nô lệ này áp dụng lệnh Ghi cho các bản sao cục bộ của họ. Sự khác biệt cơ bản trong trường hợp này là
trang chính không xử lý việc Đọc hoặc phối hợp các bản cập nhật trên các bản sao. Những thứ này được
để lại cho TM tại địa điểm nơi ứng dụng người dùng chạy. Dễ dàng nhận thấy rằng thuật toán này đảm
bảo rằng lịch sử là 1SR vì thứ tự tuần tự hóa được xác định tại một bản gốc duy nhất (tương tự như các
thuật toán điều khiển đồng thời tập trung). Cũng rõ ràng rằng thuật toán tuân theo giao thức ROWA,
như đã thảo luận ở trên—vì tất cả các bản sao được đảm bảo cập nhật khi giao dịch cập nhật hoàn tất,
nên việc Đọc có thể được thực hiện trên bất kỳ bản sao nào.
D.1.3 Primary Copy with Full Replication Transparency
Primary Copy với Full Replication Transparency là một kỹ thuật được sử dụng trong
các hệ thống phân tán để cải thiện độ tin cậy và tính sẵn sàng của dữ liệu. Kỹ thuật này
bao gồm việc tạo ra nhiều bản sao (replicas) của các mục dữ liệu, với một bản sao
được chỉ định là "bản sao chính".

Cách hoạt động:

 Phân phối dữ liệu: Dữ liệu được chia thành các khối, và mỗi khối có một bản sao
chính nằm trên một máy chủ cụ thể. Các máy chủ khác giữ các bản sao của khối đó.
 Độ minh bạch đầy đủ: Các ứng dụng và người dùng không cần phải biết về việc sao
chép. Họ chỉ đơn giản tương tác với hệ thống như thể chỉ có một bản sao của dữ liệu.
 Cập nhật tập trung: Tất cả các bản cập nhật (ghi) cho một mục dữ liệu đều được
hướng đến bản sao chính của nó. Máy chủ bản sao chính xử lý bản cập nhật và sau đó
chuyển tiếp nó đến tất cả các bản sao.
 Duy trì tính nhất quán: Các cơ chế được đưa ra để đảm bảo rằng tất cả các bản sao
cuối cùng đều phản ánh những thay đổi tương tự được thực hiện trên bản sao chính.
Điều này có thể đạt được thông qua các giao thức như cam kết hai giai đoạn (2PC).

Lợi ích:

 Tăng độ tin cậy: Nếu một máy chủ chứa bản sao bị lỗi, dữ liệu vẫn có sẵn từ các bản
sao khác.
 Cải thiện tính sẵn sàng: Các yêu cầu đọc có thể được phục vụ từ bất kỳ bản sao nào,
có khả năng cải thiện hiệu suất và khả năng mở rộng.
 Quản lý đơn giản hóa: Các ứng dụng không cần xử lý quản lý bản sao, giúp hệ thống
dễ sử dụng hơn.

Nhược điểm:

 Độ phức tạp tăng lên: Duy trì tính nhất quán giữa các bản sao yêu cầu thêm xử lý và
chi phí truyền thông.
 Tác động tiềm ẩn đến hiệu suất: Cập nhật có thể mất nhiều thời gian hơn để lan
truyền đến tất cả các bản sao.
 Điểm thất bại đơn: Máy chủ bản sao chính có thể trở thành điểm thắt cổ chai hoặc
điểm thất bại đơn nếu nó không khả dụng.

Trường hợp sử dụng:

 Cơ sở dữ liệu có sẵn cao: Đảm bảo truy cập liên tục vào dữ liệu quan trọng ngay cả
trong thời gian gián đoạn máy chủ.
 Hệ thống tập tin phân tán: Đảm bảo tính sẵn sàng của tệp trên các vị trí phân tán theo
địa lý.
 Hệ thống cộng tác thời gian thực: Giữ dữ liệu nhất quán cho nhiều người dùng cùng
làm việc trên cùng một tài liệu.

Ví dụ:
Giả sử bạn có một hệ thống phân tán lưu trữ thông tin khách hàng. Hệ thống này sử
dụng Primary Copy với Full Replication Transparency để đảm bảo tính sẵn sàng cao
của dữ liệu.

 Dữ liệu khách hàng được chia thành các khối, và mỗi khối được sao chép trên ba máy
chủ khác nhau.
 Một trong những máy chủ được chỉ định là "bản sao chính" cho mỗi khối.
 Khi một ứng dụng cần cập nhật thông tin khách hàng, nó sẽ gửi yêu cầu đến bản sao
chính của khối chứa dữ liệu đó.
 Bản sao chính xử lý bản cập nhật và sau đó chuyển tiếp nó đến hai bản sao còn lại.
 Bằng cách này, tất cả các bản sao của dữ liệu khách hàng luôn được cập nhật và đồng
bộ.

So sánh với các kỹ thuật sao chép khác:

 Primary Copy: Kỹ thuật này tương tự như Primary Copy với Full Replication
Transparency, nhưng nó không cung cấp độ minh bạch đầy đủ. Các ứng dụng và
người dùng cần biết về bản sao chính và phải tương tác trực tiếp với nó để thực hiện
các bản cập nhật.
 Multi-Leader Replication: Kỹ thuật này cho phép nhiều máy chủ hoạt động như bản
sao chính cho các khối dữ liệu khác nhau. Điều này có thể cải thiện hiệu suất và khả
năng mở rộng, nhưng nó cũng có thể làm tăng độ phức tạp và giảm tính nhất quán.

Kết luận:

Primary Copy với Full Replication Transparency là một kỹ thuật hữu ích để cải thiện độ
tin cậy và tính sẵn sàng của dữ liệu trong các hệ thống phân tán. Kỹ thuật này cung cấp
một giải pháp cân bằng giữa hiệu suất, tính nhất quán và độ phức tạp.

Bây giờ chúng ta hãy nới lỏng yêu cầu phải có một chủ cho tất cả các mục dữ liệu; mỗi mục dữ liệu có thể
có một chủ khác nhau. Trong trường hợp này, đối với mỗi mục dữ liệu được sao chép, một trong các bản
sao được chỉ định là bản sao chính. Do đó, không có một bản gốc duy nhất nào xác định thứ tự xê-ri hóa
toàn cầu, do đó cần phải cẩn thận hơn. Trong trường hợp cơ sở dữ liệu được sao chép hoàn toàn, bất kỳ
bản sao nào cũng có thể là bản sao chính cho một mục dữ liệu; tuy nhiên, đối với cơ sở dữ liệu được sao
chép một phần, tùy chọn minh bạch sao chép có giới hạn chỉ có ý nghĩa nếu giao dịch cập nhật chỉ truy
cập các mục dữ liệu có trang web chính ở cùng một trang. Nếu không, chương trình ứng dụng không thể
chuyển tiếp các giao dịch cập nhật tới một máy chủ; nó sẽ phải thực hiện từng thao tác một và hơn nữa,
không rõ chủ bản sao chính nào sẽ đóng vai trò là người điều phối việc thực thi 2PC. Do đó, giải pháp
thay thế hợp lý là hỗ trợ minh bạch đầy đủ, trong đó TM tại trang ứng dụng đóng vai trò là TM điều phối
và chuyển tiếp từng hoạt động đến trang chính của mục dữ liệu mà nó thực hiện. Hình 6.2 mô tả trình tự
các thao tác trong trường hợp này khi chúng tôi nới lỏng giả định trước đây về việc sao chép hoàn toàn.
Trang A là trang chính cho mục dữ liệu x và trang B và C giữ các bản sao (tức là chúng là nô lệ); tương tự,
mục dữ liệu chính của y là trang C với các trang phụ B và D. Hãy nhớ lại rằng phiên bản này vẫn áp dụng
các bản cập nhật cho tất cả các bản sao trong ranh giới giao dịch, yêu cầu tích hợp với các kỹ thuật kiểm
soát đồng thời. Một đề xuất rất sớm là thuật toán khóa hai pha bản sao chính (PC2PL) được đề xuất cho
phiên bản phân phối nguyên mẫu của INGRES. PC2PL là một phần mở rộng đơn giản của giao thức chính
duy nhất được thảo luận ở trên nhằm cố gắng khắc phục các vấn đề về hiệu suất tiềm ẩn của giao thức
sau. Về cơ bản, nó triển khai các trình quản lý khóa tại một số địa điểm và giao cho mỗi trình quản lý
khóa chịu trách nhiệm quản lý các khóa cho một bộ đơn vị khóa nhất định mà nó là địa điểm chính. Sau
đó, người quản lý giao dịch gửi yêu cầu khóa và mở khóa của họ đến người quản lý khóa chịu trách
nhiệm về đơn vị khóa cụ thể đó. Do đó, thuật toán coi một bản sao của mỗi mục dữ liệu là bản sao chính
của nó. Là một kỹ thuật kiểm soát bản sao điều khiển đồng thời kết hợp, phương pháp sao chép chính
yêu cầu một thư mục phức tạp hơn ở mỗi trang, nhưng nó cũng cải thiện các phương pháp đã thảo luận
trước đó bằng cách giảm tải của trang chính mà không gây ra lượng lớn giao tiếp giữa người quản lý giao
dịch và người quản lý khóa.

D.2 Eager Distributed Protocols

Eager Distributed Protocols (Giao thức phân tán hối


hả)
Eager Distributed Protocols (EDPs) là một loại giao thức được sử dụng trong hệ
thống phân tán để đảm bảo tính nhất quán của dữ liệu. Trong các hệ thống phân tán,
dữ liệu thường được sao chép trên nhiều máy chủ khác nhau để cải thiện tính sẵn sàng
và khả năng chịu lỗi. Tuy nhiên, việc giữ cho tất cả các bản sao được cập nhật đồng bộ
có thể là một thách thức, đặc biệt là khi nhiều máy chủ có thể thực hiện cập nhật đồng
thời.

EDPs hoạt động bằng cách áp dụng các cập nhật cho tất cả các bản sao của một
mục dữ liệu ngay lập tức sau khi chúng được áp dụng cho bản sao ban đầu (gọi
là bản sao chính). Điều này đảm bảo rằng tất cả các bản sao đều có phiên bản cập
nhật mới nhất của dữ liệu và tránh được các vấn đề về tính nhất quán có thể xảy ra với
các giao thức khác như lazy protocols (giao thức lười biếng).

Các đặc điểm chính của EDPs:

 Cập nhật đồng bộ: Các cập nhật được áp dụng cho tất cả các bản sao đồng thời hoặc gần
như đồng thời.
 Phức tạp hơn: Duy trì tính nhất quán đồng bộ đòi hỏi nhiều hoạt động xử lý và truyền thông
hơn so với các giao thức khác.
 Độ trễ cao hơn: Có thể có độ trễ cao hơn khi áp dụng các cập nhật do cần phải truyền chúng
đến tất cả các bản sao.
 Ít rủi ro về tính nhất quán: EDPs đảm bảo tính nhất quán mạnh mẽ, giảm thiểu nguy cơ đọc
dữ liệu không nhất quán.

Ví dụ về hoạt động của EDP:

1. Giả sử có một hệ thống lưu trữ thông tin tài khoản ngân hàng, được sao chép trên ba máy chủ
khác nhau.
2. Khi một người gửi tiền vào tài khoản, giao dịch cập nhật được gửi đến bản sao chính.
3. Bản sao chính xác nhận giao dịch, cập nhật số dư tài khoản cục bộ và ngay lập tức gửi bản
cập nhật đến hai bản sao còn lại.
4. Các bản sao còn lại nhận được bản cập nhật và áp dụng nó vào số dư tài khoản cục bộ của
chúng.
5. Bằng cách này, tất cả các bản sao đều được cập nhật đồng thời và phản ánh số dư tài khoản
chính xác.

Ưu điểm của EDPs:

 Tính nhất quán mạnh mẽ: EDPs đảm bảo rằng tất cả các bản sao luôn có cùng phiên bản dữ
liệu mới nhất, loại bỏ các vấn đề về tính nhất quán.
 Dễ dàng triển khai: EDPs tương đối dễ dàng để triển khai và hiểu, vì chúng không yêu cầu các
cơ chế phức tạp để đảm bảo tính nhất quán.

Nhược điểm của EDPs:

 Hiệu suất thấp hơn: Các hoạt động đồng bộ hóa cần thiết trong EDPs có thể dẫn đến hiệu
suất tổng thể thấp hơn so với các giao thức khác.
 Tăng chi phí: Truyền cập nhật đến tất cả các bản sao đồng thời có thể tốn nhiều tài nguyên
mạng và máy tính hơn.

Các trường hợp sử dụng của EDPs:

 Hệ thống tài chính, nơi tính nhất quán dữ liệu là tối quan trọng.
 Hệ thống kiểm soát hàng tồn kho, nơi cần theo dõi chính xác số lượng sản phẩm có sẵn.
 Hệ thống đặt hàng, nơi cần đảm bảo rằng tất cả các máy chủ có thông tin cập nhật về đơn đặt
hàng.

So sánh với Lazy Distributed Protocols:

 Lazy Distributed Protocols (LDPs): Trong LDPs, cập nhật không được áp dụng đồng bộ cho
tất cả các bản sao. Thay vào đó, chúng có thể được trì hoãn cho đến một thời điểm sau đó.
Điều này có thể cải thiện hiệu suất nhưng có thể dẫn đến vấn đề về tính nhất quán, nơi các bản
sao có thể có phiên bản dữ liệu khác nhau.

Kết luận:

EDPs là một lựa chọn tốt khi tính nhất quán dữ liệu là yêu cầu quan trọng nhất, ngay cả
khi nó có thể ảnh hưởng đến hiệu suất. Lựa chọn giữa EDPs và LDPs phụ thuộc vào
các yêu cầu cụ thể của hệ thống.

Trong eager distributed replica control, các bản cập nhật có thể bắt nguồn từ bất cứ đâu và trước tiên
chúng được áp dụng trên bản sao cục bộ, sau đó các bản cập nhật được truyền đến các bản sao khác.
Nếu bản cập nhật bắt nguồn từ một địa điểm không tồn tại bản sao của mục dữ liệu, thì nó sẽ được
chuyển tiếp đến một trong các địa điểm sao chép, nơi điều phối việc thực thi nó. Một lần nữa, tất cả
những điều này được thực hiện trong bối cảnh giao dịch cập nhật và khi giao dịch được thực hiện, người
dùng sẽ được thông báo và các bản cập nhật được thực hiện vĩnh viễn.

D.3 Lazy Centralized Protocols

Lazy Centralized Protocols (LCPs) là một loại giao thức được sử dụng trong hệ thống
phân tán để đảm bảo tính nhất quán của dữ liệu. Trong các hệ thống phân tán, dữ liệu
thường được sao chép trên nhiều máy chủ khác nhau để cải thiện tính sẵn sàng và khả
năng chịu lỗi. Tuy nhiên, việc giữ cho tất cả các bản sao được cập nhật đồng bộ có thể
là một thách thức, đặc biệt là khi nhiều máy chủ có thể thực hiện cập nhật đồng thời.

LCPs hoạt động bằng cách chỉ cập nhật bản sao chính (master copy) của một
mục dữ liệu khi nó được cập nhật. Các bản sao khác (replica) không được cập nhật
ngay lập tức, thay vào đó, chúng được cập nhật sau đó một cách lười biếng. Điều này
có thể cải thiện hiệu suất so với các giao thức đồng bộ như Eager Distributed Protocols
(EDPs) vì nó giảm thiểu lượng truyền thông và xử lý cần thiết để cập nhật tất cả các
bản sao.

Đặc điểm chính của LCPs:

 Cập nhật không đồng bộ: Các cập nhật được áp dụng cho bản sao chính và sau đó
được lan truyền đến các bản sao khác một cách lười biếng.
 Hiệu suất cao hơn: LCPs có thể đạt hiệu suất cao hơn EDPs vì chúng không yêu cầu
cập nhật đồng bộ cho tất cả các bản sao.
 Rủi ro về tính nhất quán cao hơn: LCPs có thể dẫn đến các vấn đề về tính nhất
quán, vì các bản sao có thể có phiên bản dữ liệu khác nhau cho đến khi chúng được
cập nhật lười biếng.

Ví dụ về hoạt động của LCP:

1. Giả sử có một hệ thống lưu trữ thông tin tài khoản ngân hàng, được sao chép trên ba
máy chủ khác nhau.
2. Khi một người gửi tiền vào tài khoản, giao dịch cập nhật được gửi đến bản sao chính.
3. Bản sao chính xác nhận giao dịch, cập nhật số dư tài khoản cục bộ và không gửi bản
cập nhật đến các bản sao khác ngay lập tức.
4. Sau một khoảng thời gian nhất định, hoặc khi có một số lượng cập nhật nhất định, bản
sao chính gửi bản cập nhật đến các bản sao khác.
5. Các bản sao khác nhận được bản cập nhật và áp dụng nó vào số dư tài khoản cục bộ
của chúng.

Ưu điểm của LCPs:

 Hiệu suất cao hơn: LCPs có thể cải thiện hiệu suất so với EDPs bằng cách giảm thiểu
lượng truyền thông và xử lý cần thiết.
 Khả năng mở rộng tốt hơn: LCPs có thể mở rộng tốt hơn EDPs vì chúng không yêu
cầu tất cả các bản sao được cập nhật đồng thời.

Nhược điểm của LCPs:

 Rủi ro về tính nhất quán cao hơn: LCPs có thể dẫn đến các vấn đề về tính nhất
quán, vì các bản sao có thể có phiên bản dữ liệu khác nhau cho đến khi chúng được
cập nhật lười biếng.
 Phức tạp hơn: LCPs có thể phức tạp hơn để triển khai và quản lý so với EDPs vì
chúng yêu cầu các cơ chế để theo dõi và cập nhật lười biếng các bản sao.

Các trường hợp sử dụng của LCPs:

 Hệ thống nơi hiệu suất là yêu cầu quan trọng nhất và tính nhất quán có thể được hy
sinh một phần.
 Hệ thống có dung lượng dữ liệu lớn, nơi việc cập nhật đồng bộ tất cả các bản sao có
thể tốn kém.
 Hệ thống nơi các bản sao được truy cập không thường xuyên, vì độ trễ cập nhật lười
biếng có thể không đáng kể.

So sánh với Eager Distributed Protocols:

 Eager Distributed Protocols (EDPs): Trong EDPs, cập nhật được áp dụng cho tất cả
các bản sao đồng thời. Điều này đảm bảo tính nhất quán mạnh mẽ nhưng có thể ảnh
hưởng đến hiệu suất.

Kết luận:

LCPs là một lựa chọn tốt khi hiệu suất là yêu cầu quan trọng nhất và tính nhất quán có
thể được hy sinh một phần. Lựa chọn giữa LCPs và EDPs phụ thuộc vào các yêu cầu
cụ thể của hệ thống.

Lưu ý:

 LCPs cũng được gọi là eventually consistent protocols (giao thức nhất quán cuối
cùng).
 Có nhiều biến thể khác nhau của LCPs, với các cơ chế khác nhau để quản lý cập nhật
lười biếng và đảm bảo tính nhất quán.

Lazy Centralized Protocols tương tự như các Eager Distributed Protocols ở chỗ các bản cập nhật trước
tiên được áp dụng cho bản sao chính và sau đó được truyền đến các bản phụ. Sự khác biệt quan trọng là
việc truyền bá không diễn ra trong giao dịch cập nhật mà diễn ra sau khi giao dịch được thực hiện dưới
dạng giao dịch làm mới riêng biệt. Do đó, nếu một trang phụ thực hiện thao tác R(x) trên bản sao cục bộ
của nó, thì nó có thể đọc dữ liệu cũ (không mới), vì x có thể đã được cập nhật ở trang chủ, nhưng bản
cập nhật có thể chưa được truyền đến các trang phụ.
Fig. 6.3 Hoạt động của eager distributed replication protocol
(1) Hai thao tác Ghi được áp dụng cho hai bản sao cục bộ của cùng một mục dữ liệu.
(2) Các thao tác Ghi được truyền độc lập đến các bản sao khác.
(3) Bản cập nhật trở thành vĩnh viễn tại thời điểm cam kết (chỉ hiển thị cho Giao dịch 1).

Hình 6.4: Hoạt động của lazy single master replication protocol
(1) Cập nhật được áp dụng cho bản sao cục bộ.
(2) Cam kết giao dịch làm cho bản cập nhật trở thành vĩnh viễn trên bản chính.
(3) Cập nhật được truyền đến các bản sao khác trong các giao dịch làm mới.
(4) Giao dịch 2 đọc từ bản sao cục bộ.

D.3.1 Single Master with Limited Transparency

Single Master with Limited Transparency (Bản sao


chính đơn với Độ minh bạch hạn chế)
Single Master with Limited Transparency (SM-LT) là một kỹ thuật sao chép dữ liệu
được sử dụng trong các hệ thống phân tán. Trong kỹ thuật này, dữ liệu được sao chép
trên nhiều máy chủ (replicas), nhưng chỉ có một máy chủ được chỉ định là "bản sao
chính" (master copy).

Đặc điểm chính:

 Giám sát tập trung: Các cập nhật (ghi) cho dữ liệu chỉ được gửi đến bản sao chính.
 Sao chép thụ động: Các bản sao khác (replicas) không chủ động yêu cầu cập nhật. Chúng bị
động nhận các bản cập nhật từ bản sao chính.
 Độ minh bạch hạn chế: Ứng dụng và người dùng cần biết vị trí của bản sao chính để gửi các
yêu cầu cập nhật.
 Cập nhật đồng bộ (thường): Bản sao chính thường cập nhật các bản sao khác ngay lập tức
hoặc gần như ngay lập tức sau khi áp dụng cập nhật.

Hoạt động:

1. Ứng dụng hoặc người dùng gửi yêu cầu cập nhật đến bản sao chính.
2. Bản sao chính xử lý yêu cầu cập nhật và cập nhật dữ liệu cục bộ của mình.
3. Bản sao chính sau đó gửi bản cập nhật đến tất cả các bản sao khác.
4. Các bản sao khác nhận được bản cập nhật và áp dụng nó vào dữ liệu cục bộ của chúng.

Ưu điểm:

 Hiệu suất cao hơn so với đồng bộ hóa toàn cầu: Bởi vì chỉ có một bản sao chính xử lý cập
nhật, SM-LT có thể cải thiện hiệu suất so với các hệ thống yêu cầu tất cả các bản sao được cập
nhật đồng thời.
 Quản lý đơn giản hơn: Các ứng dụng và người dùng cần biết vị trí của bản sao chính, nhưng
việc quản lý đồng bộ hóa giữa các bản sao được xử lý bởi hệ thống.

Nhược điểm:

 Điểm thất bại đơn: Bản sao chính là một điểm thất bại đơn. Nếu bản sao chính bị lỗi, các cập
nhật sẽ không thể được thực hiện và dữ liệu có thể không khả dụng.
 Độ minh bạch hạn chế: Ứng dụng và người dùng cần biết vị trí của bản sao chính, điều này
có thể làm phức tạp việc phát triển và quản lý ứng dụng.
 Rủi ro về tính nhất quán: Trong một số trường hợp, có thể có độ trễ giữa thời điểm bản sao
chính được cập nhật và thời điểm các bản sao khác nhận được bản cập nhật. Điều này có thể
dẫn đến các vấn đề về tính nhất quán, nơi các bản sao có thể có phiên bản dữ liệu khác nhau
trong một khoảng thời gian ngắn.

So sánh với các kỹ thuật sao chép khác:

 Primary Copy with Full Transparency: Trong kỹ thuật này, cũng có một bản sao chính, nhưng
các ứng dụng và người dùng không cần biết vị trí của nó. Thay vào đó, các yêu cầu cập nhật
được gửi đến bất kỳ bản sao nào và sau đó được chuyển tiếp đến bản sao chính.
 Multi-Master Replication: Kỹ thuật này cho phép nhiều máy chủ hoạt động như bản sao chính
cho các phân vùng dữ liệu khác nhau.
Các trường hợp sử dụng:

 Hệ thống nơi hiệu suất là một yêu cầu quan trọng và tính nhất quán cuối cùng (eventually
consistent) là đủ.
 Hệ thống có dung lượng dữ liệu lớn, nơi việc cập nhật đồng bộ tất cả các bản sao có thể tốn
kém.
 Hệ thống không yêu cầu tính nhất quán dữ liệu mạnh mẽ, chẳng hạn như hệ thống lưu trữ tạm
thời.

Lưu ý:

 SM-LT là một kỹ thuật phổ biến được sử dụng trong nhiều hệ thống phân tán.
 Mức độ đồng bộ hóa giữa bản sao chính và các bản sao khác có thể thay đổi tùy thuộc vào hệ
thống cụ thể.

Trong trường hợp này, các giao dịch cập nhật được gửi và thực hiện trực tiếp tại trang chính (như trong
trang chính háo hức), khi giao dịch cập nhật được thực hiện, giao dịch làm mới sẽ được gửi đến các nô
lệ. Trình tự các bước thực hiện như sau: (1) giao dịch cập nhật trước tiên được áp dụng cho bản sao
chính, (2) giao dịch được cam kết tại bản gốc và sau đó (3) giao dịch làm mới được gửi đến các bản sao
phụ. Khi một trang phụ nhận được R(x), nó sẽ đọc từ bản sao cục bộ của nó và trả về kết quả cho người
dùng. Lưu ý rằng, như đã nêu ở trên, bản sao của chính nó có thể không được cập nhật nếu bản gốc
đang được cập nhật và bản phụ chưa nhận và thực hiện giao dịch làm mới tương ứng. Một W (x) mà
một nô lệ nhận được sẽ bị từ chối (và giao dịch bị hủy), vì lẽ ra giao dịch này phải được gửi trực tiếp đến
trang web chính. Khi một Slave nhận được một giao dịch làm mới từ Master, nó sẽ áp dụng các cập nhật
cho bản sao cục bộ của nó. Khi nhận được Cam kết hoặc Hủy bỏ (Việc hủy bỏ chỉ có thể xảy ra đối với các
giao dịch chỉ đọc được gửi cục bộ), nó sẽ thực hiện các hành động này một cách cục bộ. Trường hợp bản
chính có độ trong suốt hạn chế cũng tương tự nên chúng tôi không đề cập chi tiết. Thay vì đi đến một
trang chính duy nhất, W (x) được gửi tới bản sao chính của x; phần còn lại là đơn giản. Làm thế nào có
thể đảm bảo rằng các giao dịch làm mới có thể được áp dụng ở tất cả các máy phụ theo cùng một thứ
tự? Trong kiến trúc này, vì có một bản sao chính duy nhất cho tất cả các mục dữ liệu nên thứ tự có thể
được thiết lập bằng cách sử dụng dấu thời gian. Trang chính sẽ đính kèm dấu thời gian cho mỗi giao dịch
làm mới theo thứ tự cam kết của giao dịch cập nhật thực tế và trang phụ sẽ áp dụng các giao dịch làm
mới theo thứ tự dấu thời gian.
D.3.2 Single Master or Primary Copy with Full Replication
Transparency

Single Master hay Primary Copy với Full Replication


Transparency là gì?
Single Master và Primary Copy là hai phương pháp sao chép dữ liệu nhằm duy trì sự
nhất quán giữa nhiều bản sao dữ liệu. Tuy nhiên, chúng khác nhau về cách xử lý cập
nhật và mức độ minh bạch cho ứng dụng.

Single Master với Full Transparency

 Khái niệm: Có một bản sao chính (master) được chỉ định chịu trách nhiệm cho tất cả các cập
nhật. Ứng dụng có thể tương tác với bất kỳ bản sao nào để đọc hoặc ghi.
 Hoạt động ghi:
o Ứng dụng gửi yêu cầu cập nhật đến bất kỳ bản sao nào.
o Bản sao được chọn chuyển tiếp yêu cầu đến master.
o Master xử lý cập nhật, đảm bảo tính nhất quán và truyền bá nó đến tất cả các bản sao.
 Hoạt động đọc:
o Ứng dụng có thể đọc từ bất kỳ bản sao nào.
o Bản sao được chọn truy xuất dữ liệu cục bộ hoặc từ master (để đảm bảo tính nhất quán).
 Minh bạch: Ứng dụng không biết về master và không cần nhắm mục tiêu cụ thể đến nó.
 Ưu điểm:
o Phát triển ứng dụng đơn giản hơn (không cần biết vị trí master).
o Cân bằng tải dễ dàng hơn cho các hoạt động đọc.
 Nhược điểm:
o Điểm lỗi duy nhất (sự cố master ảnh hưởng đến tất cả các bản cập nhật).
o Thắt cổ chai hiệu suất (master có thể bị quá tải).

Primary Copy với Full Transparency

 Khái niệm: Mỗi mục dữ liệu có một bản sao chính (primary copy) được chỉ định. Ứng dụng có
thể tương tác với bất kỳ bản sao nào để đọc hoặc ghi.
 Hoạt động ghi:
o Ứng dụng gửi yêu cầu cập nhật đến bất kỳ bản sao nào.
o Bản sao được chọn xác định bản sao chính cho mục dữ liệu.
o Yêu cầu được chuyển tiếp đến bản sao chính, thực hiện cập nhật và truyền bá nó đến các bản
sao khác.
 Hoạt động đọc:
o Ứng dụng có thể đọc từ bất kỳ bản sao nào.
o Bản sao được chọn truy xuất dữ liệu cục bộ hoặc từ bản sao chính (để đảm bảo tính nhất
quán).
 Minh bạch: Ứng dụng không biết về bản sao chính và không cần nhắm mục tiêu cụ thể đến
chúng.
 Ưu điểm:
o Khả năng mở rộng: Cập nhật có thể được phân tán trên nhiều bản sao, cải thiện hiệu suất.
o Chống chịu lỗi tốt hơn: Nếu bản sao chính bị lỗi, bản sao khác có thể tiếp quản (yêu cầu cấu
hình bổ sung).
 Nhược điểm:
o Tăng độ phức tạp so với single master (quản lý nhiều bản sao chính).
o Các vấn đề tiềm ẩn về tính nhất quán có thể phát sinh nếu các bản cập nhật không được phối
hợp chính xác giữa các bản sao chính (yêu cầu giao thức phối hợp mạnh mẽ).

Lựa chọn phương pháp phù hợp

Lựa chọn giữa Single Master và Primary Copy phụ thuộc vào yêu cầu cụ thể của bạn:

 Đơn giản và dễ sử dụng: Single Master với full transparency thường dễ thiết lập và quản lý
hơn.
 Khả năng mở rộng và khả năng chịu lỗi: Primary Copy với full transparency cung cấp khả
năng mở rộng và khả năng phục hồi sau lỗi tốt hơn, nhưng với chi phí phức tạp hơn.
 Hiệu suất: Xem xét khối lượng công việc đọc/ghi dự kiến. Single Master có thể xử lý các tình
huống đơn giản, trong khi Primary Copy có thể tốt hơn cho khối lượng cập nhật cao.

Lưu ý bổ sung:

 Các cơ chế sao chép dữ liệu (ví dụ: đồng bộ, không đồng bộ) ảnh hưởng đến bảo đảm tính
nhất quán và hiệu suất.
 Các công nghệ hoặc cơ sở dữ liệu cụ thể có thể cung cấp các biến thể về các khái niệm này, vì
vậy điều quan trọng là phải tham khảo tài liệu của chúng.

Bây giờ chúng ta chuyển sang các giải pháp thay thế mang lại sự minh bạch hoàn toàn bằng cách cho
phép gửi các giao dịch (cả đọc và cập nhật) tại bất kỳ trang web nào và chuyển tiếp hoạt động của chúng
tới trang web chính duy nhất hoặc đến trang web chính chính thích hợp. Điều này phức tạp và liên quan
đến hai vấn đề: thứ nhất là, trừ khi cẩn thận, lịch sử toàn cầu 1SR có thể không được đảm bảo; vấn đề
thứ hai là giao dịch có thể không thấy các cập nhật của chính nó.

D.4 Lazy Distributed Protocols

Lazy Distributed Protocols là một loại giao thức phân tán cho phép trì hoãn việc thực
thi một số hoạt động nhất định cho đến khi cần thiết. Điều này có thể giúp cải thiện hiệu
suất và khả năng mở rộng của hệ thống phân tán bằng cách giảm thiểu lượng thông tin
liên lạc và đồng bộ hóa cần thiết.

Cách thức hoạt động:


 Giao dịch: Các hoạt động được nhóm thành các giao dịch.
 Thực thi: Thay vì thực thi tất cả các hoạt động trong một giao dịch ngay lập tức, một số
hoạt động có thể bị trì hoãn.
 Lưu trữ: Các hoạt động bị trì hoãn được lưu trữ trong một nhật ký (log) hoặc bộ đệm
(buffer).
 Thực thi sau: Các hoạt động bị trì hoãn chỉ được thực thi khi cần thiết, ví dụ: khi dữ
liệu được truy cập hoặc khi một giao dịch cần được cam kết.

Lợi ích:

 Hiệu suất: Giảm thiểu lượng thông tin liên lạc và đồng bộ hóa cần thiết, dẫn đến hiệu
suất tốt hơn.
 Khả năng mở rộng: Có thể xử lý nhiều giao dịch đồng thời hơn bằng cách trì hoãn các
hoạt động.
 Tính sẵn sàng: Hệ thống có thể tiếp tục hoạt động ngay cả khi một số nút bị lỗi.

Hạn chế:

 Độ phức tạp: Triển khai và quản lý các giao thức phân tán lười biếng có thể phức tạp
hơn so với các giao thức truyền thống.
 Tính nhất quán: Việc trì hoãn các hoạt động có thể dẫn đến các vấn đề về tính nhất
quán dữ liệu nếu không được xử lý cẩn thận.

Ví dụ:

 Quản lý phiên bản: Một hệ thống quản lý phiên bản có thể sử dụng giao thức phân tán
lười biếng để trì hoãn việc sao chép các thay đổi đối với tệp cho đến khi phiên bản
được cam kết.
 Cơ sở dữ liệu phân tán: Một cơ sở dữ liệu phân tán có thể sử dụng giao thức phân
tán lười biếng để trì hoãn việc cập nhật các bản sao dữ liệu cho đến khi cần thiết.

Tóm lại:

Lazy Distributed Protocols là một kỹ thuật hiệu quả để cải thiện hiệu suất và khả năng
mở rộng của hệ thống phân tán. Tuy nhiên, việc triển khai và quản lý chúng có thể
phức tạp hơn so với các giao thức truyền thống.

Lazy Distributed Protocols là những giao thức phức tạp nhất do thực tế là các bản cập nhật có thể xảy ra
trên bất kỳ bản sao nào và chúng được truyền sang các bản sao khác một cách lười biếng (Hình 6.6).
Hoạt động của giao thức tại địa điểm nơi giao dịch được gửi rất đơn giản: cả hai thao tác Đọc và Ghi đều
được thực thi trên bản sao cục bộ và giao dịch được thực hiện cục bộ. Đôi khi sau khi cam kết, các bản
cập nhật sẽ được truyền đến các trang khác bằng các giao dịch làm mới. Sự phức tạp phát sinh trong quá
trình xử lý các cập nhật này tại các trang web khác. Khi các giao dịch làm mới đến một địa điểm, chúng
cần được lên lịch cục bộ, việc này được thực hiện bằng cơ chế kiểm soát đồng thời cục bộ. Việc tuần tự
hóa thích hợp các giao dịch làm mới này có thể đạt được bằng cách sử dụng các kỹ thuật được thảo luận
trong các phần trước. Tuy nhiên, nhiều giao dịch có thể cập nhật đồng thời các bản sao khác nhau của
cùng một mục dữ liệu tại các trang web khác nhau và những cập nhật này có thể xung đột với nhau.

You might also like