Bài báo trình bày một giải pháp mới hiệu quả đảm
bảo nhất quán dữ liệu xây dựng trên nền mạng phủ
P2P có cấu trúc. Trong đó dữ liệu chia sẻ phân tán, có
thể được cập nhật thường xuyên, tương tác bởi nhiều
người dùng. Kết quả thực nghiệm chỉ ra rằng, giải
pháp mới có hiệu quả tốt hơn giải pháp do Nakashima
đề xuất về mức độ đảm bảo nhất quán với trên 90%
cập nhật được thực hiện, trong khi độ trễ lan truyền
cập nhật đảm bảo tương đối ổn định không tăng nhiều.
Đặc biệt, trường hợp node có tốc độ cao vào/ra hoặc
yêu cầu cập nhật, giải pháp mới cho hiệu quả cao hơn
9 trang |
Chia sẻ: huongthu9 | Lượt xem: 509 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Giải pháp hiệu quả đảm bảo nhất quán dữ liệu chia sẻ phân tán trên nền tảng P2P có cấu trúc, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Các công trình nghiên cứu phát triển CNTT và Truyền thông Tập V-1, Số 17 (37), tháng 6/2017
- 22 -
Giải pháp hiệu quả đảm bảo nhất quán dữ liệu
chia sẻ phân tán trên nền tảng P2P có cấu trúc
An Effective Solution for The Consistency of Data Sharing and
Distribution on Structured P2P Substrate
Nguyễn Hồng Minh, Nguyễn Xuân Huy
Abstract: There are certain difficulties in
ensuring the consistency of data sharing and
distribution on structured P2P substrate because of
the requirements of simultaneous processing
interacted by many users and peer's input/output or
updated speed. This paper presents a high effective
solution which is proposed for structured P2P
substrate, uses the updated dissemination tree and
proposes a method using buffer and index vectors in
order to "condition" between the requests and
processes of updating. The experimental results
conducted on Oversim are aimed at comparing the
efficiency of new proposed solution with that of
Nakashima. The experimental results indicate that the
new proposed is highly effective in ensuring the
consistency (over 90%) and satisfies the requirements
of latency of update propagation. Especially, in case
the peer’s input/output or updated speed is high, the
new proposed also achieve greater efficiency.
Keyword: P2P structured; data consistency;
replica; replica node; updated dissemination tree.
I. GIỚI THIỆU
Các ứng dụng chia sẻ dữ liệu phân tán xây dựng
trên nền mạng phủ P2P như Gnutella [1], KazaA [2],
Freenet [3] ngày càng được quan tâm nghiên cứu
trong những năm gần đây. P2P gồm các điểm (peer)
liên kết logic tạo thành mạng phủ trên nền của mạng
vật lý, chẳng hạn như Pastry [4], Tapestry [5], CAN
[6], v.v Trong đó, điểm không thuần nhất về khả
năng xử lý, tốc độ vào/ra, độ trễ truyền thông điệp và
băng thông sử dụng. Hơn nữa, P2P cung cấp nền tảng
cho các ứng dụng xây dựng phía trên kiến trúc phân
tán có khả năng tự tổ chức, khả năng chịu lỗi và đảm
bảo yêu cầu sẵn sàng cao của dữ liệu chia sẻ.
Nghiên cứu trước đây tập trung đối với yêu cầu
chia sẻ dữ liệu phân tán tĩnh, chủ yếu chỉ có các thao
tác đọc, ít cập nhật và node có độ ổn định cao. Ngày
nay, yêu cầu dữ liệu chia sẻ có thể được cập nhật
thường xuyên hay thậm chí làm việc tương tác, đồng
thời bởi nhiều người dùng như P2P WiKi [7], Social
Networking [8], P2P collaborative workspace [9],v.v...
Hơn nữa, giải pháp cần giải quyết những khó khăn do
đặc trưng của mạng P2P.
Trong bài này, điểm chứa bản sao của dữ liệu chia
sẻ được gọi là node. Khi cập nhật node, sự thay đổi
phải được lan truyền theo phương thức hiệu quả tới
các node khác trong hệ thống. Đây chính là lược đồ
đảm bảo nhất quán và cũng là khó khăn, thách thức
chủ yếu trong các ứng dụng chia sẻ dữ liệu phân tán
[10]. Chẳng hạn, cách thức đơn giản là một node chịu
trách nhiệm với khóa (được gọi là node chính) lưu trữ
thông tin của tất cả các node chứa bản sao (gọi là node
sao). Khi thực hiện cập nhật mới, node chính gửi
thông báo trực tiếp tới tất cả các node sao. Tuy nhiên,
với cách thức này thì node chính dễ trở nên quá tải,
nhất là khi số lượng node tăng nhanh, tốc độ cập nhật
và vào/ra của node cao.
Các hướng nghiên cứu được chia thành 2 lớp giải
pháp như sau:
Một là, lớp giải pháp cho P2P không có cấu trúc để
cập nhật cho các node sao, node sử dụng phương thức
lan truyền kém tin cậy như: ngẫu nhiên, lan rộng và
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 23 -
làm ngập. Hướng nghiên cứu này có ưu điểm thực
hiện đơn giản, đáp ứng yêu cầu sẵn sàng cao của dữ
liệu chia sẻ. Tuy nhiên, nhược điểm là chi phí truyền
thông kém hiệu quả (do sự dư thừa, trùng lặp), độ trễ
lớn và khả năng xẩy ra tương tranh do cập nhật dữ liệu
đồng thời. Hơn nữa, giải pháp chỉ đảm bảo nhất quán
xác suất, ngẫu nhiên và nhất quán yếu.
Hai là, lớp giải pháp cho P2P có cấu trúc: xây
dựng phía trên nền mạng phủ P2P cây bổ trợ lan
truyền cập nhật (cây cập nhật). Bất kỳ node sao nào
cũng có thể cập nhật trên bản sao đang sử dụng. Tuy
nhiên sự thay đổi này phải được gửi về node gốc.
Node này chịu trách nhiệm gửi cập nhật tới các node
sao có yêu cầu nên khắc phục tình trạng dư thừa thông
điệp, khả năng xẩy ra tương tranh Các giải pháp xây
dựng, xử lý những vấn đề về cấu trúc, thực hiện lan
truyền cập nhật có thể khác nhau và đạt được những
kết quả như: khắc phục các nhược điểm nêu trên của
lớp giải pháp cho P2P không có cấu trúc, đảm bảo độ
tin cậy cao và yêu cầu đảm bảo nhất quán theo thiết kế
đề ra. Tuy nhiên, còn tồn tại những hạn chế trong xây
dựng cây và phương thức cập nhật, dẫn đến tình trạng
chưa hiệu quả về yêu cầu độ trễ, sử dụng thông điệp,
mức độ nhất quán Đặc biệt cây cập nhật có thể xẩy
ra tắc nghẽn làm giảm độ tin cậy, ổn định và phát sinh
nhiều chi phí.
Để vượt qua những khó khăn trên, chúng tôi đề
xuất giải pháp đảm bảo nhất quán dữ liệu chia sẻ theo
mô hình tuyến tính [10]. Trong đó sử dụng cây cập
nhật d-ary, gồm các node sao của mỗi đối tượng dữ
liệu chia sẻ. Node sử dụng vùng đệm (buffer) lưu các
bản sao và vectors chỉ số để quản lý cập nhật hiệu quả.
Kết quả nghiên cứu đã có những đóng góp mới:
Đề xuất giải pháp hiệu quả xử lý tốc độ vào/ra
hoặc cập nhật của node; phân cấp hợp lý chịu
trách nhiệm cập nhật, “điều hòa” giữa yêu cầu cập
nhật và thực hiện cập nhật. Hơn nữa, chúng tôi
cũng đề xuất phương pháp chống tắc nghẽn linh
hoạt, hiệu quả.
Chúng tôi sử dụng ứng dụng Oversim [11] để thực
nghiệm giải pháp mới và giải pháp do Nakashima
đề xuất [12] trên nền mạng phủ Pastry. Kết quả
chỉ ra rằng giải pháp mới có hiệu quả cao đối với
yêu cầu đảm bảo nhất quán (trên 90% bản sao
được cập nhật), trong khi đáp ứng được yêu cầu
về độ trễ lan truyền cập nhật. Đặc biệt, trong
trường hợp node có tốc độ vào/ra hoặc cập nhật
lớn, giải pháp mới cũng cho hiệu quả cao hơn.
Phần còn lại của bài báo được trình bày như sau:
Phần II giới thiệu tổng quan các nghiên cứu đã đề
xuất; phần III mô tả giải pháp; phần IV tiến hành thực
nghiệm và so sánh kết quả; phần V trình bày kết luận
của bài báo.
II. MỘT SỐ NGHIÊN CỨU LIÊN QUAN
Datta [13] sử dụng cho P2P không có cấu trúc và
kém ổn định bằng phương thức lan rộng khi cập nhật.
Trong đó, mỗi node có thông tin của một tập các node
khác. Node đẩy (Push) bản sao cập nhật tới các node
khác mà nó có thông tin. Khi liên kết vào cấu trúc,
node thực hiện kéo (Pull) bản sao gần nhất để sử dụng.
Giải pháp chỉ đảm bảo nhất quán xác suất, nhất quán
yếu và tốn chi phí thông điệp do sự trùng lặp. Wang
[14] phát triển hơn khi tổ chức các node sao thành
chuỗi liên kết logic. Mỗi node có thông tin (định danh
ID và địa chỉ IP) của node kề nó về mỗi hướng. Như
vậy, node có thông tin của node kề, gọi là các node
thăm dò. Khi cập nhật, node đẩy bản sao mới tới các
node thăm dò hiện đang online. Node thăm dò xa nhất
của mỗi hướng nhận được bản sao lại tiếp tục gửi theo
hướng đó cho tới khi tất cả các node nhận được. Giải
pháp đã giảm được chi phí truyền thông (70%) so với
sử dụng phương thức lan rộng.
Li [15] đề xuất xây dựng cây cập nhật động gồm
các node có khả năng cao (tốc độ xử lý, độ ổn định,
băng thông). Các node cao chịu trách nhiệm cho tập
tối đa α node thấp. Node thấp cập nhật sẽ gửi tới node
cao chịu trách nhiệm để lan truyền trong cây. Node
cao này là node gốc của cây cập nhật, các node cao
khác được liên kết động dựa vào khoảng cách của
mạng. Shen [16] đề xuất sử dụng SWARM thực hiện
nhóm các node gần nhau và cùng chủ đề như “music”,
“image”, “Book”... (mỗi chủ đề có thể gồm nhiều tập
tin chia sẻ) thành một nhóm và tạo một bản sao cho
mỗi nhóm. Node có khả năng cao nhất sẽ được chọn là
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 24 -
node chịu trách nhiệm (swarm server), các node khác
được gọi là node phụ thuộc (client). Khi client cập
nhật, nó gửi đến swarm server để lan truyền trong cây
cập nhật động được tạo từ các swarm server. Trong đó
swarm server gửi cập nhật là node gốc, các swarm
server khác được liên kết dựa vào khoảng cách. Các
giải pháp sử dụng cây cập nhật động trên có ưu điểm
không tốn chi phí duy trì cấu trúc cây, tuy nhiên cũng
có khó khăn để xác định khoảng cách và khả năng của
node trong thực tế. Vì vậy trường hợp tốc độ cập nhật
của node không cao, giải pháp này tỏ ra có hiệu quả về
chi phí, độ trễ và số lượng thông điệp. Ngược lại thì
giải pháp sẽ kém hiệu quả do tốn chi phí xây dựng cây
cập nhật.
Chen [17] đề xuất giải pháp SCOPE phân chia liên
tiếp tất cả các node trong mạng phủ P2P có cấu trúc
dựa vào không gian định danh thành các phân vùng
bằng nhau. Node chịu trách nhiệm đối với khóa trong
không gian định danh ban đầu là node gốc. Mỗi phân
vùng có node đại diện lưu thông tin vị trí các node.
Chỉ node lá mới thực sự chứa các bản sao. Yêu
cầu/hủy cập nhật gửi từ node lá tới node gốc thông
qua các node đại diện. Node gốc gửi cập nhật trực tiếp
tới node lá sau khi xác định được yêu câu thông qua
các node đại diện. Giải pháp này giảm được chi phí
truyền thông, tránh tương tranh cập nhật. Tuy nhiên,
do node không chứa bản sao cũng tham gia vào cây
cập nhật, nên số lượng node của cây sẽ rất lớn và node
phải tham gia vào nhiều cây khác nhau. Điều này dễ
dẫn đến quá tải, tăng chi phí xây dựng, duy trì cấu
trúc; tăng độ trễ lan truyền cập nhật. Nakashima [12]
đề xuất sử dụng cây cập nhật chỉ gồm các node sao.
Các node liên kết vào cấu trúc theo thứ tự thời gian
đến. Node gốc chỉ nhận được bản cập nhật mới khi tất
cả các node sao đã nhận được bản sao trước đó. Do
vậy, mặc dù có hiệu quả hơn so với SCOPE về số
lượng thông điệp trao đổi, độ trễ, tuy nhiên giải pháp
của Nakashima còn hạn chế về mức độ đảm bảo nhất
quán (tốc độ loại bỏ cập nhật thường xấp xỉ 95%) hay
độ trễ lan truyền cập nhật khi node có tốc độ vào/ra
hoặc cập nhật tăng cao.
III. GIẢI PHÁP
III.1. Khái quát
Chúng tôi sử dụng mạng Pastry để làm ví dụ minh
họa cho giải pháp được đề xuất. Pastry sử dụng hàm
băm phân tán để định danh ID duy nhất cho node và
dữ liệu chia sẻ trong cùng không gian định danh 128
bit (tập hợp [0, -1]). ID của node i (ký hiệu )
băm từ địa chỉ IP và ID của dữ liệu băm từ tên tập tin.
Các node liên kết logic tạo thành mạng phủ Pastry
(Hình 1), có thể thực hiện trao đổi thông điệp lẫn nhau
nhờ bảng định tuyến. Mỗi node được phân hoạch để
chịu trách nhiệm cho một vùng không gian khóa gọi là
node chính của khóa.
III.2. Xây dựng cấu trúc cây cập nhật
Mỗi đối tượng dữ liệu chia sẻ f, giải pháp đề xuất
xây dựng cây cập nhật tĩnh d-ary (mỗi node có tối đa d
node con) gồm các node chứa bản sao của f. Trong đó,
node chính là node gốc của cây cập nhật (ký hiệu R).
Mỗi node có các biến cục bộ Child, Count lần lượt là
tập các node con và số lượng node ở phía dưới, tính cả
chính nó.
Khi một node P có yêu cầu dữ liệu chia sẻ f, nó gửi
yêu cầu được liên kết vào cây cập nhật (request_join)
tới R theo định tuyến của mạng phủ. R nhận được yêu
cầu sẽ thi hành thuật toán AGLINK (trình bày dưới
đây) để liên kết P vào cây cập nhật. Tiếp theo P sẽ yêu
cầu bản sao từ node cha của nó.
Điểm(Điểm không có bản sao)
Node (Điểm có bản sao)
Hình 1. Phân tán dữ liệu chia sẻ trong mạngPastry
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 25 -
Thuật toán ALGLINK khi node yêu cầu chia sẻ dữ
liệu f:
ALGLINKd-Ary Construction(R,P)
Input: P gửi request_jointới R
Output: Node cha của P
Begin
Pgửi request_join tới R
// P khởi tạo các biến cục bộ
:= {} //tập rỗng
: = 1
If R có ít hơn d Node conThen
=
+ =
ReturnR
If else
R gửi thông điệp yêu cầu tới node con Q
có nhỏ nhất trong số node con
của R và lặp lại cho đến khi tìm được
node K thỏa mãn (có ít hơn d node con và
có nhỏ nhất)
=
+ =
ReturnK
End
Hình 2 minh họa phương thức xây dựng cây cập
nhật 2-Ary (mỗi node có tối đa 2 node con) cho dữ
liệu chia sẻ f. Ban đầu node 0 được chọn là node gốc.
Node 1 gửi yêu cầu liên kết vào cây tới node 0 nhờ
định tuyến mạng phủ. Node 0 kiểm tra chưa có node
con, nên node 1 được liên kết làm node con trái của
node 0. Tiếp theo, node 2 gửi yêu cầu tới node 0.
Node 0 kiểm tra chỉ có node con trái. Vì vậy, node 2
được liên kết làm node con phải của node 0. Khi node
3 gửi yêu cầu tới node 0, node 0 hiện đã có đủ 2 node
con, cho nên nó sẽ gửi yêu cầu xuống cho node 1 để
yêu cầu thực hiện tương tự, kết quả node 3 được liên
kết làm node con trái của node 1.
III.3. Các thao tác cơ bản
Node lá chỉ có bản sao đang sử dụng. Để điều hòa
yêu cầu và thực hiện cập nhật có hiệu quả cao (giảm
tắc nghẽn, độ trễ và tăng mức độ nhất quán) mỗi node
trong của cây cập nhật sử dụng các biến cục bộ:
Vectors bit chỉ số: ghi yêu cầu cập nhật từ
node con và chính nó nhằm mục đích có thông tin vị
trí node yêu cầu cập nhật. Trong đó, bit đầu tiên ghi
yêu cầu của chính node đó, bit tiếp theo lần lượt cho
các node con từ trái qua phải. Bit chỉ ra node
tương ứng có/không yêu cầu cập nhật.
Buffer kích thước : buffer có bản ghi
và mỗi bản ghi có phần tử. Phần tử đầu tiên
chứa bản sao. Độ lớn của là độ lệch tối đa giữa các
bản sao đang sử dụng. Buffer nhận các bản sao từ
node cha hoặc xóa đi những bản sao cũ khi đã cập
nhật cho tất cả các node con và cho chính nó. Thành
phần bit gồm hoặc để trống tiếp theo chỉ ra
phiên bản đó đã/chưa cập nhật cho node tương ứng
hoặc không có node con tại vị trí đó. Như vậy, tất cả
các bản ghi đều chứa bit , tức là bản sao đó chưa cập
nhật cho tất cả các node mà nó chịu trách nhiệm.
Yêu cầu cập nhật: node lá gửi yêu cầu cập nhật
mới lên node cha khi có yêu cầu. Node trong chỉ
gửi yêu cầu cập nhật lên node cha khi buffer của
nó không có bản sao yêu cầu. Node cha nhận yêu
cầu ghi bit 1 vào vectors, tương ứng vị trí của
node yêu cầu.
Trong Hình 3, vectors có 3 bit của node Y chỉ ra:
yêu cầu cập nhật từ node Z và chính node Y (tương
ứng với bit 1 trong vectors), node K không yêu cầu
cập nhật (tương ứng với bit 0).
Cập nhật: node cập nhật trên bản sao cục bộ và
gửi trực tiếp tới node gốc theo định tuyến trên
mạng phủ Pastry. Node gốc lưu các bản sao vào
buffer theo thứ tự thời gian đến , , .
0
2
5
1
4 3
Hình 2 Minh họa xây dựng cây cập nhật 2-Ary
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 26 -
Bảng 1. Buffer của node Y trước và sau cập nhật
Lan truyền cập nhật: node gốc chịu trách nhiệm
gửi các bản sao xuống phía dưới theo yêu cầu và
các node trong cũng thực hiện tương tự. Các node
kiểm tra vectors để biết yêu cầu cập nhật. Nếu yêu
cầu bản sao có trong buffer, node sẽ gửi chính xác
dựa vào thông tin trong vectors. Khi đó node đồng
thời ghi bit 1 vào vị trí tương ứng với node nhận
cập nhật, trong bản ghi của bản sao. Nếu phiên
bản yêu cầu chưa có trong buffer và buffer còn
trống, node sẽ gửi yêu cầu lên node cha. Mỗi node
chỉ chịu trách nhiệm cập nhật cho node con.
Phương thức này đã “điều hòa” được giữa yêu cầu
và thực hiện cập nhật. Do vậy node không trở nên
quá tải cũng như xẩy ra tương tranh hoặc tắc
nghẽn khi các node cập nhật.
Ví dụ trong Hình 3 và Bảng 1a, b, node Y kiểm tra
vectors biết node Z và chính node Y có yêu cầu cập
nhật. Node Y cập nhật bản sao cho chính nó đồng
thời ghi bit 1 vào vị trí tương ứng trong bản ghi chứa
. Node Y cập nhật bản sao cho node Z. Hơn
nữa node Y đồng thời xóa bản ghi chứa . Chẳng
hạn node K có yêu cầu cập nhật, node Y kiểm tra
trong buffer thấy rằng là bản sao mới nhất và đã
cập nhật tới node K. Vì vậy, node Y gửi yêu cầu cập
nhật lên node cha của nó là node X.
III.4. Duy trì cấu trúc cây
Mỗi node sử dụng ancestor lưu thông tin của
node cha tính từ node cha trực tiếp cho tới node gốc.
Ancestor được cập nhật đồng thời khi thực hiện cập
nhật bản sao. Node sử dụng thông điệp trao đổi
thường xuyên với node cha để phát hiện sự rời bỏ cấu
trúc của node cha. Khi node cha rời bỏ, mỗi node con
độc lập phát hiện ra và tìm cách liên kết trở lại cấu
trúc cây dựa vào thông tin ancestor và thực hiện theo
trình tự từ dưới lên và có thể tới node gốc. Trường
hợp node gốc rời bỏ, mạng phải chịu trách nhiệm tìm
node mới để thay thế. Giả sử xác suất node rời bỏ cấu
trúc cây là η theo phân phối Poisson. Vậy xác suất để
node con tìm được liên kết trở lại là 1- .
Trường hợp node liên kết trở lại là node đại diện
cho một cây con sẽ làm tăng chiều cao lớn hơn 1, nên
không thể xây dựng cây cập nhật bằng thuật toán cây
cân bằng truyền thống. Hơn nữa, các ứng dụng có tốc
độ vào/ra của node lớn thì việc tối ưu chiều cao của
cây rất khó khăn, phức tạp và không cần thiết. Trong
giải pháp mới được đề xuất, mỗi node duy trì, cập nhật
dễ dàng các biến cục bộ Child, Count nhằm tính toán
sao cho cây cân bằng về số lượng node, giảm chiều
cao của cây cập nhật khi node liên kết vào hệ thống
(node đơn hoặc một cây con). Phương pháp này thực
hiện đơn giản tuy nhiên vẫn đảm bảo hiệu quả cao so
với giải pháp tối ưu hóa chiều cao của cây cập nhật.
III.5. Giải quyết tắc nghẽn
Ngay cả khi buffer đầy nhưng chỉ có các yêu cầu
cập nhật các bản sao mà node đang có thì cũng không
xẩy ra tắc nghẽn, node vẫn đảm bảo phục vụ. Vì vậy,
giải pháp đề xuất chỉ xẩy ra tắc nghẽn khi buffer của
một node đầy và nhận được thêm yêu cầu cập nhật
bản sao mới không có trong buffer. Điều này là do tốc
độ cập nhật không cân bằng giữa các node trong cây
R
Z
X
Y
K
M
Hình 3. Minh họa các thao tác cơ bản
1 1 0
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 27 -
con. Cụ thể hơn, có hai trường hợp dẫn đến buffer đầy
như ví dụ trong Bảng 2 sẽ được trình bày sau đây. Để
phòng ngừa tắc nghẽn, giải pháp đề xuất xử lý ngay
khi buffer đầy mà không đợi đến khi có yêu cầu bản
sao mới không có trong buffer bằng cách hoãn đổi liên
kết của các node sao cho phù hợp nhằm giải phóng
buffer đầy. Nhờ vậy, chúng ta có thể phòng ngừa được
hiện tượng tắc nghẽn.
Bảng 2. Buffer của node Y đầy
Hình 4. Minh họa trường hợp 1 chống tắc nghẽn
Thứ nhất, khi tốc độ cập nhật của node Y nhanh
hơn nhiều (Bảng 2a) so với 2 node con Z, K dẫn tới
buffer đầy. node Y biết được node Z là node con có
tốc độ yêu cầu cập nhật chậm nhất. Do vậy node Y tìm
kiếm trong cây con của nó node M có tốc độ yêu cầu
cập nhật tương đồng với node K để hoán đổi liên kết
với node Z (Hình 4). Node M và node Z đồng thời
hoán đổi chỉ số tương ứng trong buffer của nhau. Lưu
ý rằng node M có tốc độ cập nhật nhanh hơn node Z,
do vậy các bản sao đã được cập nhật.
Do vậy, buffer lúc này của node Y có thể xóa đi các
bản sao đã cập nhật cho các Node Y, K, M (Bảng 3 a,
b).
Thứ hai, khi một node con yêu cầu cập nhật nhanh.
Ví dụ trong Bảng 2b, node K có tốc độ cập nhật nhanh
hơn nhiều so với node Y và Z. Node Y chọn node K
để thay thế nó. Node Y sẽ được liên kết vào cây con
của K tại vị trí phù hợp với tốc độ yêu cầu cập nhật
của nó (Hình 5). Giải phóng và truyền thông tin trong
buffer thực hiện tương tự trường hợp 1.
Bảng 3. Giải phóng buffer của node Y
Hình 5. Minh họa trường hợp 2 chống tắc nghẽn
IV. ĐÁNH GIÁ THỰC NGHIỆM
Thực nghiệm sử dụng Oversim mô phỏng giải
pháp mới và giải pháp do Nakashima đề xuất trên nền
mạng phủ Pastry. Chúng tôi lựa chọn so sánh với
Nakashima vì đây là nghiên cứu tiêu biểu, hiệu quả
đối với các mạng phủ P2P có cấu trúc. Kết quả thực
nghiệm đánh giá ảnh hưởng của các tham số đặc trưng
bởi P2P như: gia tăng số lượng node sao, tốc độ cập
nhật và vào/ra của node, đối với hiệu quả của mỗi giải
pháp dựa trên 2 tiêu chí đánh giá quan trọng đối với hệ
thống chia sẻ dữ liệu phân tán:
Độ trễ lan truyền cập nhật: thời gian trung bình
nhận bản sao của tất cả các node.
M
Z
X
Y
K
M
Z
X
Y
K
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 28 -
Mức độ đảm bảo nhất quán: tỷ lệ các bản sao
được cập nhật cho tất cả các node trên tổng số cập
nhật gửi tới node gốc.
Tham số cấu hình cho mạng phủ Pastry gồm:
Mạng có node. Mỗi node có bảng định tuyến gồm
40 hàng, mỗi hàng có 15 thực thể, 32 node lá. Sự
không thuần nhất của các node được sinh bởi phân
phối Pareto [18] với thiết lập a = 1 và b = (a và b
là tham số cận dưới và cận trên của hàm phân phối
Pareto) để có node có khả năng khác nhau.
Tham số của ứng dụng và mô phỏng: Độ dài mỗi
mô phỏng 1000 đơn vị thời gian. Mỗi file dữ liệu có
số lựợng bản sao từ 1 đến 5000 theo phân phối Zipf
[19]. Tốc độ cập nhật, tốc độ vào/ra của các node sao
theo phân phối Poisson. Bậc của node d = 16. Buffer
có độ lớn b = 20. Kết quả chỉ ra trong các biểu đồ là
kết quả trung bình của 10 lần thử.
IV.1. Độ trễ lan truyền cập nhật
Tốc độ vào/ra của node được tính bằng tỷ lệ thời
gian node tham gia chia sẻ dữ liệu trên độ dài thời
gian tiến hành thực nghiệm. Trong giải pháp của
Nakashima, khi tốc độ vào/ra của node nhỏ thì hầu
như bản sao sẽ được gửi thành công từ node gốc tới tất
cả các node sao. Ngược lại, giải pháp sẽ cần thêm
nhiều chi phí do thời gian dừng hệ thống để xử lý yêu
cầu vào/ra của node. Với giải pháp đề xuất, node con
chủ yếu nhận các bản sao sẵn có từ node cha. Vì vậy
hệ thống luôn duy trì được sự ổn định cao độ trễ lan
truyền cập nhật và chỉ khi node cha rời bỏ mới có sự
tác động đáng kể trong cây con. Kết quả trong Hình 6
chỉ ra, giải pháp đề xuất có độ trễ ổn định, không tăng
nhanh khi tốc độ vào/ra của node tăng. Hơn nữa, giải
pháp mới có hiệu quả tốt hơn giải pháp do Nakashima
đề xuất khi node có tốc độ vào/ra lớn hơn 0.425.
Khi số lượng node chia sẻ dữ liệu tăng thì chiều
cao cây cập nhật tăng nên độ trễ trung bình tăng theo
trong cả hai giải pháp. Tuy nhiên, do độ trễ lan truyền
qua mỗi bước nhỏ, nên trong giải pháp của
Nakashima, khi số lượng node tăng thì độ trễ vẫn ổn
định và nhỏ. Trong khi đối với giải pháp mới phải tốn
thêm độ trễ vì cập nhật chỉ được gửi khi có yêu cầu.
Chính vì vậy, kết quả chỉ ra trong Hình 7, giải pháp
của Nakashima có kết quả ổn định và tốt hơn.
Chúng tôi giả sử trong thời gian thực nghiệm, trung
bình mỗi node thực hiện tối đa 200 cập nhật. Kết quả
trong Hình 8 chỉ ra: Khi tốc độ cập nhật dưới 160 thì
hai giải pháp cho kết quả khá tương đồng. Tuy nhiên,
khi tốc độ lớn hơn thì giải pháp đề xuất có độ trễ tốt
hơn. Đặc biệt, giải pháp của Nakashima có độ trễ tăng
đều so với tốc độ cập nhật, trong khi giải pháp đề xuất
giữ được độ trễ ổn định. Lý do bởi vì, trong giải pháp
của Nakashima, tốc độ cập nhật tỷ lệ thuận với số
lượng node sao cần cập nhật bởi node gốc. Từ đó dẫn
đến độ trễ luôn tăng. Tuy nhiên trong giải pháp được
đề xuất thì ít chịu ảnh hưởng bởi tốc độ cập nhật do
node con nhận các bản sao từ node cha.
Hình 6. Ảnh hưởng của tốc độ vào/ra
Hình 7. Ảnh hưởng của gia tăng số lượng node
Hình 8. Ảnh hưởng của tốc độ cập nhật
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 29 -
IV.2. Mức độ đảm bảo nhất quán
Khi tốc độ vào/ra, số lượng, tốc độ cập nhật của
node tăng thì độ trễ lan truyền cập nhật cũng tăng theo
dẫn đến mức độ đảm bảo nhất quán trong cả hai giải
pháp đều giảm. Kết quả trong Hình 9, Hình 10, Hình
11 chỉ ra, ngay cả khi node có tốc độ vào/ra lớn (0.5),
số lượng node tăng (1000) hay tốc độ cập nhật cao thì
giải pháp đề xuất vẫn có kết quả cao (trên 90%) do
bản sao vẫn có thể được gửi tới node gốc để thực hiện
cập nhật cho đến khi buffer của node gốc đầy (tối đa b
bản sao). Nếu tăng/giảm độ lớn của b sẽ làm
tăng/giảm mức độ đảm bảo nhất quán. Điều này đồng
nghĩa với tăng/giảm độ lệch giữa các bản sao trong mô
hình nhất quán tuyến tính dẫn đến không thỏa mãn
yêu cầu của ứng dụng. Vì vậy, phải căn cứ yêu cầu
của ứng dụng để sử dụng giá trị b phù hợp. Ngược lại,
giải pháp của Nakashima có tỷ lệ loại bỏ cập nhật rất
xấu trong tất cả các trường hợp. Nguyên nhân do việc
chỉ sử dụng một bản sao tại cùng một thời điểm, nên
bản sao mới sẽ bị loại bỏ khi bản sao trước đó chưa
được gửi tới tất cả các node sao (do độ trễ lan truyền).
Đặc biệt khi tốc độ cập nhật cao, hiệu quả của hai giải
pháp đối với mức độ đảm bảo nhất quán càng rõ rệt.
Hình 9. Ảnh hưởng của tốc độ vào/ra
Hình 10. Ảnh hưởng của gia tăng số lượng node
Hình 11. Ảnh hưởng của tốc độ cập nhật
V. KẾT LUẬN
Bài báo trình bày một giải pháp mới hiệu quả đảm
bảo nhất quán dữ liệu xây dựng trên nền mạng phủ
P2P có cấu trúc. Trong đó dữ liệu chia sẻ phân tán, có
thể được cập nhật thường xuyên, tương tác bởi nhiều
người dùng. Kết quả thực nghiệm chỉ ra rằng, giải
pháp mới có hiệu quả tốt hơn giải pháp do Nakashima
đề xuất về mức độ đảm bảo nhất quán với trên 90%
cập nhật được thực hiện, trong khi độ trễ lan truyền
cập nhật đảm bảo tương đối ổn định không tăng nhiều.
Đặc biệt, trường hợp node có tốc độ cao vào/ra hoặc
yêu cầu cập nhật, giải pháp mới cho hiệu quả cao hơn.
TÀI LIỆU THAM KHẢO
[1] Gnutella Org Gnutella,
[2] Nathaniel S, and Aaron Krekelberg,
Good, Usability and privacy: a study of Kazaa P2P
file-sharing, Proceedings of the SIGCHI conference on
Human factors in computing systems,ACM,pp. 137-
144, 2003.
[3] Ian, et al Clarke, Freenet: A distributed
anonymous information storage and retrieval system,
Designing Privacy Enhancing Technologies, Springer
Berlin Heidelberg, pp. 46-66, 2001.
[4] A. Rowstron and P. Druschel, Pastry:
Scalable, distributed object location and routing for
large-scale peer-to-peer systems,IFIP/ACM
International Conference on Distributed Systems
Platforms and Open Distributed Processing, Springer
Berlin Heidelberg, pp. 329-350, 2001.
[5] B. Y . Zhao, J. D. Kubiatowicz, and A. D.
Joseph, Tapestry: An infrastructure for fault-resilient
wide-area location and routing, Technical Report
UCB//CSD-01-1141, Vol. 214, U. C. Berkeley, April
2001.
Các công trình nghiên cứu, phát triển và ứng dụng CNTT-TT Tập V-1, Số 17 (37), tháng 6/2017
- 30 -
[6] S. Ratnasamy, P . Francis, M. Handley, R.
Karp, and S. Shenker, A Scalable Content-
Addressable Network, Proc. of ACM SIGCOMM, Vol.
31, No. 4, pp. 161-172, Aug. 2001
[7] G. Pierre, and M. V. Steen G. Urdaneta, A
decentralized wiki engine for collaborative wikipedia
hosting, WEBIST,pp. 156-163, 2007.
[8] D. Schioberg, L. H. Vu, and A. Datta S.
Buchegger, Peerson: P2p social networking early
experiences and insights, Proceedings of the Second
ACM EuroSys Workshop on Social Network Systems,
ACM, pp. 46-52, 2009.
[9] Jun, et al Wang, Distributed collaborative filtering
for peer-to-peer file sharing systems, Proceedings of
the 2006 ACM symposium on Applied computing,
ACM, pp. 1026-1030, 2006.
[10] David, and Jörn Kuhlenkamp. Bermbach,
Consistency in distributed storage systems, Networked
Systems, Springer Berlin Heidelberg, pp. 175-189,
2013.
[11] Ingmar, Bernhard Heep, and Stephan
Krause. Baumgart, OverSim: A flexible overlay
network simulation framework, IEEE Global Internet
Symposium,IEEE, pp. 79-84, 2007.
[12] Takayoshi, and Satoshi Fujita.
Nakashima, Tree-Based Consistency Maintenance
Scheme for Peer-to-Peer File Sharing Systems,
Computing and Networking (CANDAR), 2013 First
International Symposium on, IEEE, pp. 187-193, 2013.
[13] M. H., AND ABERER, K A. DATTA, "Updates in
highly unreliable, replicated peer-to-peer
systems",Distributed Computing Systems, 2003.
Proceedings. 23rd International Conference,IEEE, pp.
76-85, 2003.
[14] Zhijun, et al WANG, An efficient update
propagation algorithm for P2P systems, Computer
Communications, pp 1106-1115, 2007(30.5).
[15] Zhenyu LI, Gaogang XIE, and Zhongcheng
LI, Efficient and scalable consistency maintenance for
heterogeneous peer-to-peer systems, IEEE
Transactions on Parallel and Distributed Systems, pp
1695-1708, 2008(19.12).
[16] Haiying, Guoxin Liu, and Harrison
Chandler Shen, Swarm intelligence based file
replication and consistency maintenance in structured
P2P file sharing systems, IEEE Transactions on
Computers, pp. 2953-2967, 2015.
[17] Xin, et al Chen, SCOPE: Scalable consistency
maintenance in structured P2P systems, in 24th
Annual Joint Conference of the IEEE Computer and
Communications Societies, vol. 3, pp. 1502-1513,
2005.
[18] Josef. Steindl, The Pareto Distribution, Palgrave
Macmillan UK, Economic Papers, pp. 321-327, 1990.
[19] Lada A., and Bernardo A. Huberman.
Adamic, Zipf’s law and the Internet, Glottometrics,
pp. 143-150, 2002.
Nhận bài ngày: 23/11/2016
SƠ LƢỢC VỀ TÁC GIẢ
NGUYỄN HỒNG MINH
Sinh năm 1982.
Tốt nghiệp Cử nhân khoa học
máy tính, Học viện An ninh
Nhân dân năm 2005; Nhận bằng
Thạc sỹ Hệ thống phân tán và
mạng, Đại học Besancon Pháp,
năm 2010.
Lĩnh vực nghiên cứu: Hệ thống phân tán.
Email: hongminhnguyen1982@gmail.com
NGUYỄN XUÂN HUY
Sinh năm 1944 tại Nam Định.
Tốt nghiệp Cử nhân Toán, Đại
học Sư Phạm Leningrad, Liên
Xô năm 1973. Nhận bằng Tiến
sĩ CNTT năm 1981, Tiến sĩ
khoa học CNTT năm 1990 tại
Trung tâm Tính toán, Viện Hàn
lâm Khoa học Liên Xô.
Lĩnh vực nghiên cứu: Công nghệ phần mềm, Cơ sở dữ
liệu lớn, phân tán.
Email: nxhuy564@gmail.com
Các file đính kèm theo tài liệu này:
- giai_phap_hieu_qua_dam_bao_nhat_quan_du_lieu_chia_se_phan_ta.pdf