49765361 bảng băm phan tan HĐT va mạng ngang hang chord

49 228 1
49765361 bảng băm phan tan HĐT va mạng ngang hang chord

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trongthựctếcónhiềutrườnghợpcónhiềuhơn2phầntửsẽđược“băm”vàocùng1vịtrí. Hiểnnhiênphầntửđược“băm”đầutiênsẽchiếmlĩnhvịtríđó,cácphầntửsaucầnphảiđượclưuvàocácvịtrítrốngkhácsaochovấnđềtruyxuấtvàtìmkiếmphảidễdàng.

Bảng Băm Phân Tán (DHT) Mạng Ngang Hàng Chord Phan Anh - Nguyễn Đình Nghĩa Nhắc lại kiến thức Bảng băm (Hash Table) Peer-to-Peer Networks Cấu trúc liệu bảng băm H k1 k4 k5 k2 k7 k3 k1 k4 ki (khóa) k2 k6 k5 k6 k7 k8 k3 k8 m–1 Peer-to-Peer Networks Cấu trúc liệu bảng băm Dùng để lưu trữ tập khoá: k1, k2,… Khoá ki lưu trữ vị trí h(ki) mảng H, h hàm băm Các khoá có giá trị băm với khoá ki lưu trữ danh sách liên kết quản lý phần tử H(h(ki)) (hiện tượng xung đột) Hàm băm hàm biến đổi khoá k sang số nguyên vị trí mảng H VD: h(“Ha Noi”)= 16 Thích hợp với thao tác chèn, tìm kiếm, xoá khoá Peer-to-Peer Networks Ví dụ bảng băm đơn giản Khóa k lưu trữ vị trí k mod M (M kích thước mảng) 95 Thêm phần tử x = 95 vào mảng 95 mod 10 = Peer-to-Peer Networks Ví dụ bảng băm đơn giản Các giá trị: 31, 10 , 14, 93, 82, 95, 79, 18, 27 10 31 82 93 14 95 46 27 18 79 Peer-to-Peer Networks Vấn đề nảy sinh Giả sử thêm 55 vào mảng: 82 95 27 + 55 phải lưu vào vị trí Tuy nhiên vị trí có chứa 95 => Giải đụng độ Peer-to-Peer Networks Vấn đề xung đột xử lý bảng băm - Trong thực tế có nhiều trường hợp có nhiều phần tử “băm” vào vị trí - Hiển nhiên phần tử “băm” chiếm lĩnh vị trí đó, phần tử sau cần phải lưu vào vị trí trống khác cho vấn đề truy xuất tìm kiếm phải dễ dàng Peer-to-Peer Networks a Làm giảm xung đột - Hàm băm cần chọn cho: - Xác xuất phân bố khoá - Dễ dàng tính toán thao tác Thông thường, hàm băm sử dụng số nguyên tố (vì xác suất ngẫu nhiên phân bố số nguyên tố nhất) Peer-to-Peer Networks I Sử dụng danh sách liên kết (nối kết) - Ý tưởng: “Các phần tử băm vào trùng vị trí k nối vào DS nối kết” vị trí 21 18 6 Hàm băm: F(k) = k mod Thêm 6, 16 Peer-to-Peer Networks 10 Chord: Tìm kiếm đơn giản Node gửi câu truy vấn với key = successor(0) = 1 successor(1) = successor(6) = Peer-to-Peer Networks successor(3) = 35 Chord: Tìm kiếm đơn giản Đoạn giả Code để tìm successor: // ask node n to find the successor of id n.find_successor(id) if (id  (n, successor]) return successor; else // forward the query around the circle return successor.find_successor(id); Peer-to-Peer Networks 36 Chord: Tìm kiếm nâng cao Thông tin bổ sung chất cho vấn đề tính đắn Peer-to-Peer Networks 37 Chord – Finger Tables Để tăng tốc độ tìm kiếm, Chord trì thêm thông tin tìm đường Mỗi n trì bảng tìm đường gồm m hàng (m số bit biểu diễn vòng tròn định danh), gọi finger table Hàng thứ i bảng finger table node n xác địnhi-1node s theo sau node n vòng tròn định danh s = successor(n+2i-1) s gọi finger thứ i node n, ký hiệu n.finger(i) Finger node n successor trực tiếp n vòng tròn Peer-to-Peer Networks 38 Chord – tìm kiếm mở rộng Finger table m = 3, node có hàng finger table keys For start finger table For start 6+2 6+21 6+22 0+2 0+21 0+22 keys Int Succ [7,0) [0,2) [2,6) Int Succ [1,2) [2,4) [4,0) finger table For start Int Succ 3+20 3+21 3+22 Peer-to-Peer Networks keys [4,5) [5,7) [7,3) 39 Chord – tìm kiếm mở rộng Giả code để tìm successor định danh Find id’s successor by finding the immediate predecessor of the id Walk clockwise to find the node which precedes id and whose successor succeeds id Start with the mth finger of node n See if it comes between node n and the id, if not, check the m-1th finger until we find one wich does This is the closest node preceding id among all the fingers of n Peer-to-Peer Networks 40 Chord – Tìm kiếm mở rộng id=5 n=7 finger table finger table start Int [0,1) [1,3) [3,7) start keys Succ 0 Successor Predecessor 6 finger table keys start Int Succ [5,6) [6,0) [0,4) Successor Predecessor Successor Predecessor successor(5) = Int [1,2) [2,4) [4,0) keys Succ 3 finger table keys start Int Succ 4 [4,5) [5,7) 7 [7,3) Successor Predecessor O(logN) Peer-to-Peer Networks 41 Chord - Node joins Các công việc thực Khởi tạo predecessor bảng finger table node n Cập nhật lại bảng finger table predecessor node tồn có thêm node n Chuyển khoá thích hợp cho node n quản lý Peer-to-Peer Networks 42 Chord Algorithm - Node joins Khởi tạo bảng fingers predecessor finger table Successor Predecessor 6 start Int Succ [6,7) [7,1) [1,5) Successor Predecessor keys Peer-to-Peer Networks Int [1,2) [2,4) [4,0) Successor Predecessor 53 finger table start find_successor(6); keys start Int Succ [0,1) [1,3) [3,7) finger table keys Succ 3 finger table keys start Int Succ [4,5) [5,7) 7 [7,3) Successor Predecessor 43 Chord - Node joins Cập nhật bảng fingers node mạng finger table Successor Predecessor start keys start Int Succ [0,1) [1,3) [3,7) 6 start Int Succ [6,7) [7,1) [1,5) Successor Predecessor keys Int [1,2) [2,4) [4,0) Successor Predecessor 53 finger table finger table keys Succ 3 finger table keys start Int Succ 57 [4,5) [5,7) 57 [7,3) Successor Predecessor 57 P = find_predecessor(n-2i-1) i = 1, P = find_predecessor(4) i = 2, P = find_predecessor(3) i = 3, P = find_predecessor(1) O(log N) Peer-to-Peer Networks 44 Chord - Node joins Chuyển Keys finger table start keys start Int Succ [0,1) [1,3) [3,7) Successor Predecessor finger table 6 finger table start Int Succ [6,7) [7,1) [1,5) Successor Predecessor keys Successor Predecessor 53 Peer-to-Peer Networks Int [1,2) [2,4) [4,0) keys Succ 3 67 finger table keys start Int Succ 57 [4,5) [5,7) 57 [7,3) Successor Predecessor 56 45 Chord – node joins Pseudocode for the node join operation Peer-to-Peer Networks 46 Chord - Stabilization Stabilization Đảm bảo tính đắn hiệu Đảm bảo tính cập nhật cho node‘s successor Sử dụng successor pointers để đảm bảo tính đắn ghi bảng finger Peer-to-Peer Networks 47 Chord - Stabilization Giả code cho trình stabilization Join does not make the rest of the network aware of n Every node runs stabilize periodically, to verify the successor Node n asks its successor for the successor’s predecessor x See if x should be n’s successor instead (happens if x recently joined the system) Notify n’s successor of n’s exist Successor changes its predecessor to n if it knows no closer predecessor than n Use successor pointers to update finger tables Peer-to-Peer Networks 48 Tham khảo I Stoica, R Morris, D Karger, F Kaashoek, and H Balakrishnan Chord: A scalable Peer-To-Peer lookup service for internet applications In Proceedings of the 2001 ACM SIGCOMM Conference, pages 149–160, 2001 R Steinmetz, K Wehrle (Edt.): "Peer-to-Peer Systems and Applications", LNCS 3485, Springer, Chapter 7-8, 2005 http://www.wikipedia.org http://www.google.com Peer-to-Peer Networks 49 ... dễ thực - Nếu có nhiều phần tử băm trùng đặc tính bảng băm bị - Trong trường hợp xấu tìm kiếm bảng băm thành tìm kiếm tuyến tính mảng Peer-to-Peer Networks 13 Bảng Băm Phân Tán (Distributed Hash... kiến thức Bảng băm (Hash Table) Peer-to-Peer Networks Cấu trúc liệu bảng băm H k1 k4 k5 k2 k7 k3 k1 k4 ki (khóa) k2 k6 k5 k6 k7 k8 k3 k8 m–1 Peer-to-Peer Networks Cấu trúc liệu bảng băm Dùng để... Conference, p 149–160, 2001 Peer-to-Peer Networks 26 Mạng ngang hàng Chord keys keys 1 keys keys Peer-to-Peer Networks 27 Mạng ngang hàng Chord Là nhiều giao thức sử dụng DHTs (các giao thức

Ngày đăng: 06/10/2017, 15:38

Hình ảnh liên quan

Bảng băm - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

Bảng b.

ăm Xem tại trang 2 của tài liệu.
Cấu trúc dữ liệu bảng băm - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

u.

trúc dữ liệu bảng băm Xem tại trang 3 của tài liệu.
Cấu trúc dữ liệu bảng băm - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

u.

trúc dữ liệu bảng băm Xem tại trang 4 của tài liệu.
Ví dụ một bảng băm đơn giản - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

d.

ụ một bảng băm đơn giản Xem tại trang 6 của tài liệu.
Vấn đề xung đột khi xử lý bảng băm - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

n.

đề xung đột khi xử lý bảng băm Xem tại trang 8 của tài liệu.
Bảng băm phân tán (Distributed Hash Table - DHT) - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

Bảng b.

ăm phân tán (Distributed Hash Table - DHT) Xem tại trang 15 của tài liệu.
(lookup) tương tự như bảng hash: - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

lookup.

tương tự như bảng hash: Xem tại trang 16 của tài liệu.
Bảng băm phân tán (Distributed Hash Table - DHT) - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

Bảng b.

ăm phân tán (Distributed Hash Table - DHT) Xem tại trang 17 của tài liệu.
Trong hình vẽ: - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

rong.

hình vẽ: Xem tại trang 20 của tài liệu.
Mỗ in duy trì một bảng tìm đường gồ mm hàng - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

in.

duy trì một bảng tìm đường gồ mm hàng Xem tại trang 38 của tài liệu.
Khởi tạo bảng fingers và predecessor - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

h.

ởi tạo bảng fingers và predecessor Xem tại trang 43 của tài liệu.
Cập nhật bảng fingers của các node trong mạng - 49765361 bảng băm phan tan HĐT va mạng ngang hang chord

p.

nhật bảng fingers của các node trong mạng Xem tại trang 44 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan