Giả mã cho hoạt động join vào mạng của một node

Một phần của tài liệu nghiên cứu một số cơ chế bảng băm phân tán trong mạng ngang hàng (Trang 51)

n.join(n’)

predecessor = nil;

successor = n’.find_successor(n);

// định kỳ kiểm tra successor đứng ngay n và báo cho successor //biết về n

Luận văn thạc sỹ KHMT Chương 2. Các cơ chế bảng băm phân tán trong mạng ngang hàng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

47 x = successor.predecessor; if ( x ∈ (n, successor)) successor = x; successor.notify(n); // n’ nghĩ n’ là predecessor của n n.notify(n’)

if (predecessor is nil or n’ ∈ (predecessor,n))

predecessor = n’ ;

//định kỳ cập nhật các finger trong bảng finger table

n.fix_finger()

i = random index > 1 into finger []

finger[i].node = find_successor(finger[i].start);

Thuật tốn 2.3. Giả mã cho q trình stabilization

Hình 2.3 cho chúng ta thấy một ví dụ về q trình join vào mạng của một node. Giả sử node 21 có successor là node 32, trên node 32 đang lưu các key 24 và 30. Node 26 join vào mạng, sau quá trình tìm kiếm, node 26 biết node 32 là successor của mình, nó trỏ con trỏ successor của mình vào node 32 và báo cho node 32 biết. Node 32 sau khi được báo thì trỏ con trỏ predecessor vào node 26. Node 26 copy các key tương ứng với nó (key 24) từ node 32. Đến định kỳ, N21 chạy quá trình stabilize, lúc này con trỏ successor vẫn trỏ vào node 32. Node 21 hỏi node 32 về predecessor của node 32, lúc này predecessor của 32 là 26. Sau khi nhận được câu trả lời, N21 trỏ con trỏ successor vào node 26 và báo cho node 26 biết nó là predecessor của node 26. Node 26 trỏ con trỏ predecessor vào node 21

Luận văn thạc sỹ KHMT Chương 2. Các cơ chế bảng băm phân tán trong mạng ngang hàng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

48

Hình 2.8. Quá trình một node join vào mạng

Quá trình rời khỏi mạng có báo trược được thực hiện như sau: node sắp rời khỏi mạng chuyển các key nó đang lưu sang successor của nó rồi báo cho các node predecessor và successor. Bảng định tuyến của các node liên quan sẽ được cập nhật khi các node này chạy thuật tốn stabilization.

Hình 2.4 dưới đây cho chúng ta một ví dụ về bảng định tuyến của các node khi có sự join/leave. Ban đầu mạng có 3 node với ID là 0, 1, 3, bảng định tuyến của chúng được cho thấy trên hình vẽ.

Sau đó node 6 join vào mạng rồi node 3 rời khỏi mạng, bảng định tuyến của các node và sự thây đổi bảng định tuyến được thể hiện trong hình vẽ với những phần thay đổi có

Luận văn thạc sỹ KHMT Chương 2. Các cơ chế bảng băm phân tán trong mạng ngang hàng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

49

màu đen, những phần khơng đổi có màu xám.

Hình 2.9. (a) Bảng finger và vị trí của key sau khi node 6 join. (b)Bảng finger và vị trí của key sau khi node 3 leave. của key sau khi node 3 leave.

Replication and Fault Tolerance

Các node rời khỏi mạng đột ngột có hai tác động tiêu cực. Thứ nhất là dẫn đến mất dữ liệu lưu trên các node này, thứ hai một phần của vòng bị mấtl liên kết dẫn đến một số ID sẽ khơng được tìm thấy. Có thể xảy ra tình huống một dãy các node liền nhau cùng rời khỏi mạng đột ngột. Chord giải quyết vấn đề này bằng cách cho mỗi node lưu một danh sách log2(N) node theo sau nó trong khơng gian ID. Danh sách này có hai mục đích, thứ nhất là nếu một node phát hiện successor của nó khơng hoạt động, nó sẽ thay thế bằng node ngay cạnh trong successor list, thứ hai, mọi dữ liệu được lưu trên một node nào đó cũng được lưu trên các node trong successor list. Dữ liệu chỉ bị mất hay vòng chỉ bị đứt khi có log2(N) + 1 node liên tiếp fail đồng thời.

Upper Services and Applications

Một số ứng dụng như cooperative file-system [14], một ứng dụng đọc/ghi hệ thống file và một DNS đã được xây dựng dựa trên Chord. Đồng thời, một thuật toán broadcast cũng được phát triển cho Chord

Luận văn thạc sỹ KHMT Chương 2. Các cơ chế bảng băm phân tán trong mạng ngang hàng

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

50

Cài đặt chính của Chord được thực hiện bằng nghôn ngữ C++. Thêm nữa, một C++ discrete-event simulator cũng đã được xây dựng. Naanou là một cài đặt C# của Chord với một ứng dụng chia sẻ file được xây dựng dựa trên nó.

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

51

Chƣơng 3. Chƣơng trình thử nghiệm

3.1. Bài toán thực tế

Hầu hết các DHTs được thiết kế để hoạt động với các peer là máy tính. Đây là mơi trường có độ ổn định khá cao, tức là khoảng thời gian từ lúc một node gia nhập cho đến khi rời khỏi mạng tương đối dài. Trong môi trường này, các DHTs hoạt động với hiệu năng tương đối cao.

Hiệu năng của một DHTs được đánh giá thông qua hai tham số chính là tỷ lệ tìm kiếm dữ liệu thành cơng khi dữ liệu có trên mạng và độ trễ tìm kiếm.

Vài năm trở lại đây các sản phẩm cho người sử dụng có thể nối mạng phát triển hết sức mạnh mẽ và đa dạng, các sản phầm khơng chỉ có máy tính mà cịn có các thiết bị như điện thoại, PDA, tivi, …. Cũng giống như người sử dụng máy tính, người sử dụng các thiết bị này cũng có nhu cầu chia sẻ, khai thác nguồn tài nguyên hết sức phong phú trên mạng P2P, đặc biệt là các tài nguyên như video, audio. Tuy nhiên thời gian kết nối mạng của các thiết bị này thường rất ngắn, thậm chí có thể tính bằng giây, dẫn đến sự bất ổn định của mạng. Các DHTs vốn được thiết kế để hoạt động với các peer là máy tính lúc này khơng đáp ứng được yêu cầu về hiệu năng do khoảng thời gian các peer ở trên mạng quá ngắn. Một mạng như vậy người ta gọi là mạng có churn rate cao.

Một bài toán mới đặt ra cho cộng đồng nghiên cứu P2P là xây dựng các mạng P2P thích nghi được với môi trường churn rate cao. Một trong những giải pháp được nhiều người quan tâm là cải tiến các DHTs hiện có để chúng hoạt động hiệu quả ngay cả trong mơi trường có churn rate cao. Việc đưa ra được giải pháp cải tiến hiệu năng cần căn cứ vào một số cơ sở, một trong những cơ sở quan trọng là việc đánh giá hiệu năng của các DHTs trong môi trường mới.

Việc đánh giá hiệu năng của các DHTs nhằm tạo cơ sở cho việc đưa ra các giải pháp cải tiến hiệu năng của chúng đồng thời giúp các ứng dụng lựa chọn, sử dụng các DHTs hiệu quả hơn.

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

52

Đánh giá hiệu năng của các DHT bao gồm nhiều khía cạnh:

- Xác định ngưỡng churn rate mà các DHT hoạt động tốt.

- Phân tích ảnh hưởng của tham số thiết kế đến hiệu năng của DHT. - So sánh hiệu năng của các DHT khác nhau.

- Đánh giá tính khả mở của các DHT.

Các đánh giá được thực hiện trong dải churn rate rộng từ cao đến thấp, đặc biệt chú trọng đến trường hợp churn rate cao. Khi churn rate càng cao, độ ổn định của mạng càng thấp thì hiệu năng của các DHTs càng giảm. Do đó một trong những nhiệm vụ đầu tiên của phần đánh giá hiệu năng là xác định ngưỡng churn rate mà các DHT hoạt động với hiệu năng cao.

Đánh giá ảnh hưởng của các tham số thiết kế đến hiệu năng một DHTs cho phép xác định các tham số quan trọng đối với hiệu năng của DHT và xác định khoảng giá trị của các tham số trong đó DHTs làm việc tốt.

3.2. Khảo sát các simulator mô phỏng mạng overlay

Cộng đồng nghiên cứu sử dụng khá nhiều simulator khác nhau, có simulator đang được phát triển, có simulator khơng được phát triển tiếp.

Simulator Ngôn ngữ Trạng thái License

P2Psim C++ Active GPL

PeerSim Java Active LGPL

Query-Cycle

Simulator Java Inactive Apache

Narses Java Inactive GPL-like

Neurogrid Java Inactive GPL

GPS Java Inactive Open-Source, No

License

Overlay Weaver Java Active Apache

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

53

PlanetSim Java Active LGPL

Bảng 3.1. Trạng thái phát triển của các simulator

Đặc điểm của các simulator như sau:

Simulator Kiến trúc Tính dễ dùng

Tính khả mở (max nodes)

P2Psim Discrete-event cho mạng P2P có cấu trúc Rất ít tài liệu 3000 node

PeerSim

Query-Cycle hoặc

Discrete – event cho mạng khơng cấu trúc. Có thể mô phỏng node j oining, departing và failing.

Chỉ có mơ phỏng Query -

Cycle là có tài liệu 106 node

Narses Discrete-event, flow - based

topology có thể điều chỉnh

600 node, tùy thuộc vào

topology bên dưới 600 node

Overlay Weaver

Giả lập phân tán và một số giải thuật cho

structured overlay

Tài liệu về API và mã nguồn

tốt 4000 node

PlanetSim Mô phỏng discrete - event, sử dụng API chung Có tài liệu về thiết kế và API

100.000 node Neurogrid Discrete-event cho mạng khơng có cấu trúc, có thể chỉnh sửa để sử dụng cho mạng có cấu trúc

Có tài liệu mở rộng trên web 300.000 node

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

54

Simulator Thống kê Underlying network

P2Psim Cung cấp một lượng hữu hạn

thống kê.

end-to-end time graph, G2 graph, GT-ITM, random, và Euclidean

PeerSim Có thể cài đặt các component

để thống kê dữ liệu Khơng được mơ hình hóa

Narses Có hỗ trợ nhưng phải cài đặt Một số topology

Overlay Weaver Không thể thu thập thống kê Khơng được mơ hình hóa

PlanetSim Khơng có cơ chế thu thập thống

kê nhưng có thể xem trực quan Một số ít topology

Neurogrid Cần sửa mã nguồn Khơng được mơ hình hóa

Bảng 3.2. Đặc điểm của các simulator

3.3. Phần mềm mô phỏng P2PSim

P2PSim là phần mềm mã nguồn mở, đa tiến trình, discrete event để mơ phỏng mạng overlay có cấu trúc với nhiều topology khác nhau như end-to-end time graph, G2 graph, GT-ITM, random, và Euclidean. P2PSim do một nhóm nghiên cứu mạng P 2P tại Đ ạ i h ọ c MIT phát triển. P2PSim được nhiều nhóm nghiên cứu sử dụng để nghiên cứu DHTs.

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

55

Nó có thể mơ phỏng sáu loại giao thức DHTs khác nhau: Chord, Accordion, Koorde, Kelips, Tapestry, Kademlia. P2PSim hoạt động trên hệ điều hành Unix. P2Psim giúp hiểu mã nguồn của các giao thức mạng ngang hàng và so sánh sự khác nhau giữa các giao thức về độ tiện lợi, khả năng thực hiện.

Số node mà P2PSim có thể mơ phỏng phụ thuộc vào giao thức thiết kế và tối đa có thể lên đến 3000 node (giao thức Chord).

Cài đặt

- P2Psim được cài đặt và dịch trên hệ điều hành Unix. Để cài đặt ta cần lấy file nguồn p2psim-0.3.tar.gz tại địa chỉ web:

http://pdos.csail.mit.edu/p2psim/howto.html.

- Để chạy P2PSim cần các gói GCC2.95.3. Để cài đặt GCC ta thực hiện các

bước sau: $ cp gcc-2.95.3.tar.gz /usr/local $ tar –zxvf gcc-2.95.3.tar.gz $ mv gcc-** gcc $ cd gcc $ ./configure --prefix=/usr/local/gcc $ make bootstrap $ make install $ export CC=/usr/local/gcc/bin/gcc $ export CXX=/usr/local/gcc/bin/g++ $ export CPP=/usr/local/gcc/bin/cpp

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

56

- Sau đó ta cài P2PSim. Để cài P2PSim ta thực hiện các bước sau:

$ cp p2psim-0.3.tar.gz /usr/local/src $ tar –zxvf p2psim-0.3.tar.gz

$ cd p2psim-0.3

#Apply patch for Chord protocol

$ cp chord.diff /usr/local/src/p2psim-0.3/protocol $ patch -p0 < chord.diff

$ ./configure

$ make

3.3.1. Các bước mô phỏng với phần mềm P2PSim

Để thực hiện mô phỏng với phần mềm P2PSim ta thực hiện các bước sau:

Bƣớc 1: Tạo một File Topology Euclide ngẫu nhiên sử dụng Perl script

$./generate.pl rtt nodenumber > topology_nodenumber_rtt.txt

Script này có hai tham số đó là:

+ RTT: Là khoảng cách giữa hai Node. + Nodenumber: Là số Node trong mạng

Bƣớc 2: Lựa chọn các tham số để mô phỏng. Các tham số này được khai báo trong

File argument. Các tham số mô phỏng bao gồm:

+ Lifemean: Thời gian tồn tại trung bình của Node trên mạng.

+ Deathmean: Thời gian khơng tồn tại trung bình của Node trên mạng.

+ Lookupmean: Thời gian trung bình một Node sinh ra một yêu cầu tìm kiếm. + Exittime: Thời gian thực hiện mô phỏng.

+ Stattime: Thời gian thực hiện thu thập các thông số thống kê.

Bƣớc 3: Lựa chọn các tham số của DHT trong File argument. Đối với Chord sẽ bao

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

57

+ Base: Xác định số finger trong bảng định tuyến. Nó xác định có bao nhiêu trạng thái ChordFingerPNS giữ (b-1)*logb(n).

+ Successors: Số Successor.

+ Pnstimer: Khoảng thời gian giữa hai lần Chord thực hiện cập nhật lại bảng định tuyến của mỗi Node.

+ Basictimer: Là khoảng thời gian giữa hai lần Chord thực hiện cập nhật lại successor và predecessor của mỗi Node.

+ Succlisttimer: Là khoảng thời gian giữa hai lần Chord cập nhật lại danh sách successor của mỗi Node.

+ Maxlookuptime: Là thời gian tối đa tìm kiếm lại. Nó xác định khi nào từ bỏ việc tìm kiếm lại sau khi nhận các kết quả tìm kiếm khơng chính xác. Nếu Maxlookuptime = 0 tức là khơng thực hiện việc tìm kiếm lại.

+ Recurs: Là để xác định việc tìm kiếm theo kiểu lặp hay theo kiểu đệ quy. Recurs = 1 tức là tìm kiếm theo kiểu đệ quy. Recurs = 0 tức là tìm kiếm theo kiểu lặp.

Bƣớc 4: Chạy mô phỏng. Cú pháp như sau:

$ scripts/run-simulations.pl --protocol protocol_name --topology topology_file -- logdir log_directory --args args_ file.

+ Ta cần truyền vào các tham số là: Tên giao thức DHTs, tên File topology của mạng, thư mục chứa File log, tên File argument.

Bƣớc 5: Kết hợp các kết quả. Bước này thực hiện kết hợp kết hợp các File ở trên lại

thành một File đầu ra duy nhất. Cú pháp:

$ scripts/merge-stats.pl --args protocol_args log/*.log > protocol_out

Bƣớc 6: Vẽ đồ thị kết quả mô phỏng. Cú pháp:

$ scripts/make-graph.pl --dat protocol_out --x BW_TOTALS:live_bw --y CORRECT_LOOKUPS:lookup_mean --convex both.

+ Ta cần truyền vào các tham số: File protocol_out là File kết quả của bước 5, các tham số trục x, trục y.

Luận văn thạc sỹ KHMT Chương trình thử nghiệm

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

58

3.3.2. Kịch bản mô phỏng

Sử dụng phần mềm P2PSim để mơ phỏng Chord: Kích thước của mạng là 100node, 250node, 500node và 1000node. RTT (round trip-time) trung bình khoảng 2 giây thiết lập giữa một cặp node bất kì. Ta tiến hành mơ phỏng để đánh giá hai tham số có liên quan đến hiệu năng của Chord là tỷ lệ tìm kiếm lỗi và trễ trung bình tìm kiếm thành công trong một số điều kiện khác nhau như số lượng node thay đổi, khoảng thời gian các node liên tục đến và rời khỏi mạng (churn rate) thay đổi, để từ đó rút ra một số nhận xét về những thay đổi này đến hiệu năng của Chord. Kịch bản mô phỏng và giá trị các tham số của Chord được lựa chọn như bảng dưới đây.

Bảng 3.3. Các kịch bản mô phỏng

Bảng 3.4. Các tham số của Chord

3.3.3. Đánh giá hiệu năng giao thức Chord trong mạng ngang hàng thông qua kết quả mô phỏng kết quả mô phỏng

a) Kết quả mô phỏng ảnh hưởng của Churn rate đến tỷ lệ tìm kiếm lỗi

Network size (nodes) RTT (s) Churn rate (s)

100,250,500,1000 0.5,1,2,3 10,60,120,300,600

Một phần của tài liệu nghiên cứu một số cơ chế bảng băm phân tán trong mạng ngang hàng (Trang 51)

Tải bản đầy đủ (PDF)

(78 trang)