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 Experiment
Introduction: A Generic Sensor Network Generic Aim: Collect data from all nodes at sink(s) Sink(s) Sensor Nodes Data follows multi-hop path to sink(s) Sensed Data x1x1 x9x9 x 10 x 12 x 11 x 13 x4x4 x5x5 x6x6 x3x3 x2x2 x8x8 x7x7 A single node failure can break the data flow
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
12 Implementation of Growth Codes Time divided into rounds Each node exchanges degree 1 codewords with random neighbor until round K 1 Between round K i and K i-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( (K i -K i-1 )/k, (k-K i-1 )/k))
13 High Level View of the Protocol Nodes send data at random times (Current implementation: exponentially distributed timers: not tightly synchronized clock)
14 High Level View of the Protocol 1 2 After time K 1, nodes start sending degree 2 codewords Degree 2 codeword Symbols Degree 1 codewords Sender picks a random symbol XORs it with its own symbol 4 3 Even if node 3 fails Node 3’s data survives 0 K2K2 K3K3 K1K1
15 Received codewords Iterative Decoding x1x1 x3x3 x5x5 x2x2 x1x1 x3x3 x4x4 x3x3 Recovered symbols Unused codewords 5 original symbols x 1 … x 5 4 codewords received Each codeword is XOR of component original symbols
16 Online Decoding at the Sink x1x1 Recovered Symbols x6x6 x3x3 Undecoded codewords x2⊕x5x2⊕x5 Sink New codeword x2⊕x6x2⊕x6 x1x1 Recovered Symbols x6x6 x3x3 Undecoded codewords x2x2 = x6x6 ⊕ x2⊕x5x2⊕x5 x5x5 = x2x2 ⊕ x2⊕x6x2⊕x6 x5x5 Sink x2x2
17 Revisiting earlier simulation (N = 1500)
18 Time to recover all data Phase transition in obtaining last few data units (coupon collector’s problem)
19 Recovery Rate Without coding, a lot of data is lost during the disaster even when using randomized replication
20 Effect of Topology 500 nodes placed at random in a 1x1 square, nodes connected if within a distance of 0.3
21 Resilience to Random Failures 500 node random topology network Nodes fail every second with a probability of (1 every 4 seconds in the beginning)
22 Motes experiment 1
23 Motes experiment 2
24 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