Distributed Dataset Synchronization in Named Data Networking
Wentao Shang Final defense 06/01/2017
1
Distributed Dataset Synchronization in Named Data Networking - - PowerPoint PPT Presentation
Distributed Dataset Synchronization in Named Data Networking Wentao Shang Final defense 06/01/2017 1 Research Problem Distributed applications require efficient support for multi-party communication Multiple nodes publish and share
Wentao Shang Final defense 06/01/2017
1
communication
party communication through dataset synchronization (sync)
2
NDN project
3
4
5
/ucla/cs/wentao Fetch: /ucla/cs/wentao/slides/v5 Interest Data /ucla/cs/wentao/slides/v5 Interest Fetch: /ucla/cs/wentao/slides/v5
dataset
Synchronizing dataset = synchronizing the namespace of the dataset
6
7
National Park Tourist A Tourist B Tourist C … /road/X/hazard /road/Y/closed Bulletin board … /road/X/hazard /road/Y/closed Bulletin board … /road/X/hazard /road/Y/closed Bulletin board
8
National Park Publish alert data: “Bear spotted at site Z” Tourist A Tourist B … /road/X/hazard /road/Y/closed Bulletin board Tourist C … /road/X/hazard /road/Y/closed Bulletin board
9
National Park Tourist A Tourist B … /road/X/hazard /road/Y/closed /site/Z/bear Bulletin board Synchronize … /road/X/hazard /road/Y/closed Bulletin board Tourist C … /road/X/hazard /road/Y/closed Bulletin board
10
National Park Tourist A Tourist B … /road/X/hazard /road/Y/closed /site/Z/bear Bulletin board … /road/X/hazard /road/Y/closed /site/Z/bear Bulletin board Tourist C … /road/X/hazard /road/Y/closed Bulletin board
11
National Park Tourist A Tourist B … /road/X/hazard /road/Y/closed /site/Z/bear Bulletin board … /road/X/hazard /road/Y/closed /site/Z/bear Bulletin board Tourist C … /road/X/hazard /road/Y/closed /site/Z/bear Bulletin board
application
all parties connected to each other all the time
12
Dataset
13
14
/road/X/hazard /road/Y/closed /site/Z/bear Summary Dataset namespace
Generate a concise summary of the dataset namespace to be communicated between nodes
Update
Detect and reconcile inconsistency by exchanging the summary periodically (Optionally) support quick notification to other nodes when publishing new data
Summary Summary Summary
15
16
/road/X/hazard /road/Y/closed /site/Z/bear /TouristA/13: {/site/Z/bear} /TouristA/14: {/site/W/alert} /TouristB/55: {/road/X/harzard} /TouristB/56: {/road/Y/closed}
17
inconsistency
18
19
Use application name Name data sequentially Enumeration Hashing IBF Long-lived Interest Notification driven Enumeration Hashing IBF
CCNx 0.8 Sync CCNx 1.0 Sync iSync pSync
in Named Data Networking”, NDN-TR-0053, 2017 Periodic exchange Long-lived Interest Notification driven Periodic exchange
ChronoSync RoundSync
20
/ /road /site/Z/bear /road/X/hazard /road/Y/closed H3=Hash(/road/X/harzard) H4=Hash(/road/Y/closed)
H1=H3+H4
H2=Hash(/site/Z/bear)
H0=H1+H2
RootAdvice Interest: H0’ RootAdvice reply: H0 NodeFetch Interest: H0 NodeFetch reply: H1, H2 NodeFetch Interest: H1 NodeFetch reply: H3, H4 …
the namespace
periodic exchange of state summary
21
/road/X/hazard /road/Y/closed /site/Z/bear
Invertible Bloom Filter
01de… 478a… 33fc…
Hash IBF Digest Hash Store Extract
22
… /TouristA/12 /TouristA/13 … /TouristB/54 /ToursitB/55 … /TouristC/29 /TouristC/30 {/TouristA: 13, /TouristB: 55, /TouristC: 30} Digest Hash
TouristA TouristB TouristC
/park/sync/[Digest] {/TouristB: 56} {/TouristC: 31}
X
representation from iSync
from a producer
23
/producer/[BF]/[old-IBF] /producer/[BF]/[old-IBF]/[new-IBF] {/site/Z/31} Sync Interest Reply /road/X/13 /road/Y/55 Store
Invertible Bloom Filter
Extract H1 H2 H3 Hash /site/Z/30
24
identify the new data
25
26
explicit group membership management
membership management
dataset state
27
/Home/Thermostat /Home/AC /Home/Heater /Home/MotionSensor
view) among all participating nodes
nodes
version vector
28
29
Application Logic
Shared Dataset
Dataset State
State synchronization Publish Data Notify of Remote Data NDN Network Data retrieval Group Membership Info View synchronization Sync Node
30
State synchronization Publish Data Notify of Remote Data NDN Network Data retrieval View synchronization
Dataset State
Group Membership Info Sync Node
Application Logic
Shared Dataset
the membership info
31
State vector [17, 240, 153] Membership info 0: Thermostat 1: AC 2: MotionSensor Node
Shared dataset … /…/Thermostat/16 /…/Thermostat/17 … /…/AC/238 /…/AC/239 /…/AC/240 … /…/MotionSensor/151 /…/MotionSesnor/152 /…/MotionSensor/153 Thermostat: 17 AC: 240 MotionSensor: 153
32
Motion Sensor Thermostat AC Publish /…/AC/241 Notification Interest: /home/bonjour/AC/241 Reply with state vector Interest: /…/AC/241 Data: /…/AC/154 app message, vector = [17, 240, 153]
33
[17, 240, 153] Received vector: [18, 242, 151] Local vector: Join [18, 242, 153] Updated vector: Membership info 0: /…/Thermostat 1: /…/AC 2: /…/Heater /…/Heater/152 /…/Heater/153 Missing data:
Update the local vector with the result of Join and retrieve missing data
34
Application Logic
Shared Dataset
Dataset State
State synchronization Publish Data Notify of Remote Data NDN Network Data retrieval Group Membership Info View synchronization Sync Node
35
Thermostat AC Motion Sensor … /…/Thermostat/56 app data /…/Thermostat/57 app data … /…/MotionSensor/101 heartbeat /…/MotionSensor/102 app data … /…/AC/23 app data /…/AC/24 heartbeat
membership changes
leader which creates its own view
36
0: Thermostat; 1: Heater; 2: AC; 3: MotionSensor (1,Thermostat) 0: Thermostat; 1: AC; 2: MotionSensor (2,Thermostat) 0: Thermostat 1: MotionSensor (3,Thermostat) 0: AC (3,AC)
become the next leader via random leader selection
view
the new view
37
synchronization finishes
38
0: Thermostat, {cert} 1: AC, {cert} 2: Heater, {cert} 3: MotionSensor, {cert} Thermostat’s key Sign
/home/bonjour/vinfo/(1,Thermostat)
39
View (4,Thermostat): {0:AC; 1:MotionSensor; 2:Thermostat; 3:Heater} ThermoStat Motion Sensor Heater AC Remove Heater Publish view info for (5,Thermostat) /home/bonjour/(5,Thermostat)/… /home/bonjour/vinfo/(5,Thermostat) /home/bonjour/vinfo/(5,Thermostat) /home/bonjour/vinfo/(5,Thermostat) 0: AC,{cert}; 1: MotionSensor,{cert}; 2: Thermostat,{cert} Move to (5,Thermostat) Move to (5,Thermostat)
40
0: AC, {cert} 1: MotionSensor, {cert} 2: Thermostat, {cert} 3: Heater, {cert} (4,Thermostat) [17, 240, 153, 98] 0: AC, {cert} 1: MotionSensor, {cert} 2: Thermostat, {cert} (5,Thermostat) [17, 240, 153] Remove Heater
41
Heater Thermostat AC Motion Sensor In view (4,Heater) In view (6,Thermostat) /home/bonjour/vinfo/(4,Heater) /home/bonjour/vinfo/(4,Heater) 0:Heater, {cert} 1: MotionSensor, {cert} /home/bonjour/(7,Thermostat)/… Publish: /home/bonjour/vinfo/(7,Thermostat) 0: Thermostat, {cert}; 1: AC, {cert} 3: Heater, {cert} 4: MotionSensor, {cert} Fetch (7,Thermostat) view info and move to (7,Thermostat)
After group partition heals, the leader with higher view number or “larger” leader name is responsible for merging the views
/home/bonjour/(4,Heater)/…
42
Thermostat AC Heater MotionSensor 0: Thermostat 1: AC 0: Heater 1: MotionSensor [24, 19] [23, 21] [98, 120] [96, 121] 0: Thermostat 1: AC 2: Heater 3: MotionSensor
Synchronize view
[24, 19, 0, 0] [23, 21, 0, 0] [0, 0, 98, 120] [0, 0, 96, 121] [24, 21, 98, 121]
Synchronize state
43
Application Trust Anchor /Home /Home/Thermostat /Home/AC /Home/Heater
0: /Thermostat, {cert} 1: /AC, {cert} 2: /Heater, {cert}
/Home/resource/disc/vinfo/(4,/AC)
“10:30AM, Temp:70F” Vector=[15,100,92]
/Home/Thermostat/15
HEARTBEAT Vector=[60,148,135]
/Home/Heater/135
Sign Sign Sign Sign
concise representation of the dataset namespace
data immediately
notification Interests
using well-defined naming convention
44
after it is published
receive the data after it is published
network
45
https://github.com/named-data/ChronoSync
BB1 BB2 DR4 DR3 DR1 DR2 GW1 GW2 GW3 GW4 GW5 GW6 GW7
Department A Department B Department C
Campus Backbone
10Gbps/5ms 1Gbps/10ms 1Gbps/5ms
EN1 EN2 EN3 EN4 EN5 EN6 EN7 EN8 EN9 EN10
1Gbps/2ms
46
nodes participating in a sync group
arrival time for each
arrival time for each
50 100 150 200 0.0 0.2 0.4 0.6 0.8 1.0 Data dissemination delay in VectorSync (ms) CDF
100 150 200 0.0 0.2 0.4 0.6 0.8 1.0 Data dissemination delay in VectorSync (ms) CDF
~ 1.5 * MinRTT ~ 1.5 * MaxRTT ~ 1.5 * MinRTT ~ 1.5 * MaxRTT Data Rate = 0.1pps Data Rate = 1pps
48
Data Rate = 0.1pps Data Rate = 1pps
Higher data rate in the group enables VectorSync to recover from packet loss faster because the state vector carried in each data enables inconsistency detection
500 1000 1500 2000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in VectorSync (ms) CDF
0% 1% 5% 10%
500 1000 1500 2000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in VectorSync (ms) CDF
0% 1% 5% 10%
49
VectorSync is resilient to simultaneous update because explicit notification allows receivers to fetch the new data immediately
500 1000 1500 2000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in VectorSync (ms) CDF
0% 1% 5% 10%
500 1000 1500 2000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in ChronoSync (ms) CDF
0% 1% 5% 10%
Due to simutaneous data
50
Main reason for higher Interest volume in ChronoSync:
Loss Rate 0% 1% 5% 10% Packet Type Interest Data Interest Data Interest Data Interest Data VectorSync 167k 134k 170k 134k 183k 132k 205k 129k ChronoSync 321k 132k 359k 151k 436k 172k 455k 154k
Total number of packets across all links
51
Under high data rate, ChronoSync invokes “recovery” mechanism frequently, which provides similar information as the state vector in VectorSync
500 1000 1500 2000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in VectorSync (ms) CDF
0% 1% 5% 10%
500 1000 1500 2000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in ChronoSync (ms) CDF
0% 1% 5% 10%
52
Loss Rate 0% 1% 5% 10% Packet Type Interest Data Interest Data Interest Data Interest Data VectorSync 101k 82k 104k 82k 112k 80k 126k 79k ChronoSync 1179k 482k 989k 417k 730k 300k 576k 215k
Total number of packets across all links
recovery mechanism
retransmission
prompt and efficient data dissemination, even in face of multiple simultaneous data producers
inconsistency in the dataset namespace
loss more quickly
53
joining/leaving and packet loss
54
55
Enumeration Hashing IBF Enumeration Hashing IBF
CCNx 0.8 Sync CCNx 1.0 Sync iSync pSync ChronoSync RoundSync VectorSync
Long-lived Interest Notification driven Periodic exchange Long-lived Interest Notification driven Periodic exchange Use application name Name data sequentially
56
Factors affecting Interest size Factors affecting Data Content size Interest Overhead Min Data Dissemination RTT CCNx 0.8 Sync Node hash Number of child nodes Periodic
Depending on Interest period + tree walk
CCNx 1.0 Sync Manifest digest Total number of names One per update 2.5 iSync IBF digest
IBF (depending on number of new data)
Periodic
Depending on Interest period + 3.5 RTT
ChronoSync State digest (with exclude filter) Number of names with new sequence numbers Long-lived Interest
Min is 0.5; can be long with simultaneous data publishing
RoundSync Round digest (with exclude filter) Number of names with new seq# in a round Two per update
Min is 1.5; can be long with simultaneous data publishing
pSync** IBF (+ subscription list)
IBF + number of new names
Long-lived Interest 1.5 VectorSync Leader name + node name State vector (small) One per update (with heartbeat) 1.5 ** pSync does not support group sync
57
supporting distributed applications
sync protocol framework and exposed different tradeoffs in the protocol design choices
drawbacks of the existing sync protocols
58
59
60
Ø NDN.JS: a Javascript Client Library for Named Data Networking, Infocomm’13 Ø NDNFS: an NDN-friendly File System, NDN-TR-0027, 2014 Ø MicroForwarder.js: an NDN Forwarder Extension for Web Browsers, ICN’16
NDN Applications
Ø Securing Building Management Systems Using Named Data Networking, IEEE Network, vol.28, no.3, 2014 Ø NDN-ACE: Access Control for Constrained Environments over Named Data Networking, NDN-TR-0036, 2015 Ø Challenges in IoT Networking via TCP/IP Architecture, NDN-TR-0038, 2016 Ø Named Data Networking of Things, IoTDI’16 Ø The Design and Implementation of the NDN Protocol Stack for RIOT-OS, Globecom’16 ICNSRA Workshop Ø Breaking out of the cloud: Local trust management and rendezvous in Named Data Networking of Things, IoTDI’17
IoT over NDN
Ø The Design of RoundSync Protocol, NDN-TR-0048, 2017 Ø A Survey of Distributed Dataset Synchronization in Named Data Networking, NDN-TR-0053, 2017
NDN Sync
61
62
RN Dataset Digest … 24 {/TouristA/15, /TouristB/60} D24 25 {/TouristC/32} D25 /park/bbs/DATA/25 {/TouristC: 32} Data Interest Reply Round Log /park/bbs/SYNC/[Digest] Sync Interest
63
Motion Sensor Thermostat AC Heater In view (8,Thermostat) Create view (0,Heater) Publish: /home/bonjour/vinfo/(0,Heater) 0: Heater, {cert} /home/bonjour/(0,Heater)/Heater/1 /home/bonjour/vinfo/(0,Heater) Merge (0,Heater) into the group and perform view change
Node joining is handled in the same way as view merging
64
65
~ 1.5 * MinRTT < 1.5 * MaxRTT due to caching
200 400 600 800 1000 0.0 0.2 0.4 0.6 0.8 1.0 Data dissemination delay in VectorSync (ms) CDF
5000 10000 15000 20000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in ChronoSync (ms) CDF
0% 1% 5% 10%
66
5000 10000 15000 20000 0.0 0.2 0.4 0.6 0.8 1.0 Data synchronization delay in VectorSync (ms) CDF
0% 1% 5% 10%
67
Loss Rate 0% 1% 5% 10% Packet Type Interest Data Interest Data Interest Data Interest Data VectorSync 519k 185k 522k 185k 534k 184k 575k 187k ChronoSync 1224k 248k 1346k 273k 1616k 317k 1647k 294k
Total number of packets across all links High traffic volume in ChronoSync due to “recovery” mechanism
68
each view
view starts
69
snapshot in the shared dataset
from all nodes in the current view
70
Previous view: (6,/HVAC) [/Thermostat:35, /HVAC:103] Previous view: (6,/HVAC) [/Thermostat:34, /HVAC:103] /Thermostat local snapshot /HVAC local snapshot /Lamp local snapshot Previous view: (4,/Lamp), (6,/HVAC) [/Thermostat:35, /HVAC:103, /Lamp:55, /LampSwitch:20] (7,/HVAC) group snapshot: Previous view: (4,/Lamp) [/Lamp:55, /LampSwitch:20] (7,/HVAC) 0: /Thermostat 1: /HVAC 2: /Lamp
71