240 likes | 378 Views
Growth Codes: Maximizing Sensor Network Data Persistence abhinav Kamra , Vishal Misra , Jon Feldman, Dan Rubenstein Columbia University, Google Inc. (SIGSOMM’06). Presented by Myeongjae Joen. KAIST CALAB CS712. Contents. Introduction Motivation Approach Random Replication Growth Codes
E N D
Growth Codes: Maximizing Sensor Network Data PersistenceabhinavKamra, VishalMisra, Jon Feldman, Dan Rubenstein Columbia University, Google Inc.(SIGSOMM’06) Presented by Myeongjae Joen KAIST CALAB CS712
Contents • Introduction • Motivation • Approach • Random Replication • Growth Codes • Experiment
Introduction: A Generic Sensor Network • Generic Aim: Collect data from all nodes at sink(s) Sensor Nodes Data follows multi-hop path to sink(s) Sink(s) x1 x9 Sensed Data x2 x10 A single node failure can break the data flow x12 x3 x11 x8 x5 x6 x13 x7 x4
Introduction • Sensor Networks in a Disaster setting • Monitoring earthquakes, fires, floods etc.. • Congestion near sink(s) • All nodes simultaneously forward data in disaster event • Overwhelm sink(s) capacity • Network Collapsing • Pre-computed routes may fail • Data from failed nodes can be lost • Partial recovery of data also useful
Introduction: Challenges • Networking Challenges: • Disaster scenarios: feedback often infeasible • Frequent disruptions to routing tree if setup • Difficult to predict node failures • Difficult to synchronize clocks amongst nodes • Coding Challenges: • Data source distributed (among all sensor nodes) • Sensor nodes have very limited memory, CPU, bandwidth
Motivation • Maximizing Data Persistence in a disaster • Persistence: fraction of data generated within the network that eventually reaches the sink • How can we maximize the persistence? • Preserve data from failed sensor nodes • Deliver data to sink(s) as fast as possible
Approach • Two main ideas • Randomized routing and replication • Avoid actively maintaining routes • Replicate data in random direction to increase data survival • Distributed channel codes (Growth Codes) • Expedite data delivery & survivability
Random Replication • Nodes transfer sensed data with random neighbors • Process iterates and sensed data is copied across the network • Sensed data goes on a “random walk” through the network • Process robust to localized failures • Can be thought of as a replication code
Network Assumption • N node sensor network • Limited storage: each node stores fixed number of data units • Large storage at sink(s) • All sensed data assumed independent
Terminology • Codewords • linear combinations of (randomly selected) groupings of data units • original data or XOR’d conglomerates of original data • C = (A⊕B)⊕(A⊕B⊕C) • Degree of a codeword • The number of symbols XOR’d together to form the codeword
Growth Codes • Degree of a codeword “grows” with time • At each timepoint codeword of a specific degree has the most utility for a decoder (on average) • This “most useful” degree grows monotonically with time • Some additional “header” is necessary to describe the set of symbols encoded in the codeword
Implementation of Growth Codes • Time divided into rounds • Each node exchanges degree 1 codewords with random neighbor until round K1 • Between round Ki and Ki-1 nodes exchange degree i codewords • Sink receives codewords as they get exchanged in the network • Growth Code degree distribution at time k k) := i = max(0, min( (Ki-Ki-1)/k, (k-Ki-1)/k)) 12
High Level View of the Protocol 4 1 2 3 Nodes send data at random times (Current implementation: exponentially distributed timers: not tightly synchronized clock) 13
Symbols 4 Degree 1 codewords 3 High Level View of the Protocol 1 2 0 Degree 2 codeword Even if node 3 fails Node 3’s data survives K1 Sender picks a random symbol XORs it with its own symbol K2 K3 After time K1, nodes start sending degree 2 codewords 14
x5 x2 Recovered symbols Iterative Decoding x1 x3 x3 x1 x3 x4 Received codewords Unused codewords • 5 original symbols x1 … x5 • 4 codewords received • Each codeword is XOR of component original symbols 15
Online Decoding at the Sink Undecoded codewords Undecoded codewords x2⊕x6 x2⊕x5 = ⊕ x2 x6 Sink Sink New codeword x2⊕x6 x1 x1 x3 x3 x2⊕x5 x2 x6 = ⊕ x6 x5 x5 x2 Recovered Symbols Recovered Symbols 16
Time to recover all data Phase transition in obtaining last few data units (coupon collector’s problem) 18
Recovery Rate Without coding, a lot of data is lost during the disaster even when using randomized replication 19
Effect of Topology 500 nodes placed at random in a 1x1 square, nodes connected if within a distance of 0.3 20
Resilience to Random Failures • 500 node random topology network • Nodes fail every second with a probability of 0.0005 (1 every 4 seconds in the beginning) 21
Conclusions • Data persistence in sensor networks: • First distributed channel codes (GC) • Protocol requires minimal configuration • Is robust to node failures • Simulations and experiments on micaz motes show: • GC achieves complete recovery faster • GC recovers more partial data at any time 24