Chương 3 2B Cải tiến hiệu năng của Chord
3.4.2.1. 19B Sơ đồ mạng overlay
Mạng peer-to-peer được chia thành hai vòng Chord, một vòng là các nút mạng thông thường, vòng kia bao gồm các proxies. Không gian ID của hai vòng giống nhau.
Các proxy được chia thành hai loại: main proxy và normal proxy:
Mỗi main proxy chịu trách nhiệm cho các normal proxy theo sau nó và main proxy đứng ngay trước nó.
Mỗi normal proxy chịu trách nhiệm cho các node có ID đứng trước ID của nó và đứng sau ID của proxy trước nó.
Hình 3.4. Kiến trúc của giải pháp caching proxy
3.4.2.2. 20BQuá trình caching
Xét một ví dụ như sau, node A tìm kiếm dữ liệu K, dữ liệu K được lưu trên node C. Node B nằm ngay trước node C. Khi nhận được yêu cầu tìm dữ liệu K từ node A, node B trả kết quả tìm kiếm là node C về cho node A và đồng thời trả kết quả (keyed, nodeid, ipaddress) này cho main proxy chịu trách nhiệm cho node C. Main proxy chuyển tiếp thông tin về node C tới normal proxy chịu trách nhiệm cho node C. Normal proxy cache lại thông tin này.
event n.CacheReq
sendto p.cache ()
end event
event p.cache from n
forwardto pi.cache()
end event
Normal node ring Proxy ring
Main proxy Normal proxy
event pi.cache from p
if KeyID exists in cache then
if associated nodeid is in cache then
⊲ Ignore request
else if associated nodeid is in replication groups
then
⊲Add to cache
else
⊲Replicate associated nodeID in cache
end if else
⊲Add to cache
end if end event.
Thuật toán 3.4. Quá trình caching
Hình 3.5. Biểu đồ thời gian biểu diễn quá trình caching thành công
Node A Main proxy keyid, nodeid, nodeip nodeid, nodeip {Add to cache}
<CacheReq> <Return results> Normal proxy