460 likes | 483 Views
Learn about Trickle algorithm, a polite gossip method for code dissemination in sensor networks. Understand maintenance, propagation, and scalability with practical examples.
E N D
Trickle: Code Propagation and Maintenance Philip Levis UC Berkeley Neil Patel UC Berkeley David Culler UC Berkeley Scott Shenker UC Berkeley ICSI
Retasking a Sensor Net • Long lifetimes require retasking • Spectrum of retasking mechanisms • Binary images (MOAP, XnP, Deluge) • High-level virtual programs (Maté, TinyDB) • Parameter setting (Attribute, Global) • Install on every node • Packet loss and transient disconnection • Periodically check that everyone has the right code (advertise) • TinyDB tuples embed query ID NEST Retreat, Jan 2004
Propagating Can Be Costly, • Binaries: 10-60KB • Virtual programs: 20-400B • Parameters: 8-30B • To every node in a large, multihop network… NEST Retreat, Jan 2004
Knowing When Is Costlier • Periodically checking that everyone has the right code (advertisements) can cost more than the code itself. • 64KB of data: ~1 packet/minute for a day • 400B of data: ~1 packet/hour for a day • 20B: one packet! NEST Retreat, Jan 2004
Problem Statement • The first step is to detect when nodes need updates (continuous process) • When there is no new code • Maintenance cost should approach zero • When there is new code • Propagation should be rapid NEST Retreat, Jan 2004
Relation to Deluge, SPIN, etc. • When do you advertise code? • How do you suppress control messages? • Not a dissemination protocol NEST Retreat, Jan 2004
Solution: Trickle • Simple, “polite gossip” algorithm • “Every once in a while, broadcast what code you have, unless you’ve heard some other nodes broadcast the same thing.” • Behavior (simulation and deployment): • Scalability: thousand-fold density changes • Maintenance: a few sends per hour • Propagation: less than a minute NEST Retreat, Jan 2004
Outline • Introduction • Trickle algorithm • Maintenance • Propagation • Conclusion NEST Retreat, Jan 2004
Trickle Assumptions • Wireless broadcast medium • Concise, comparable metadata • Given A and B, know which has newer code NEST Retreat, Jan 2004
Idea: Communication • As long as each mote communicates with one other, needed updates will be detected • In a single cell, one transmission will detect all needed updates • Communication is reception or transmission • Maintain a communication rate: (receptions + transmissions) <= k NEST Retreat, Jan 2004
Trickle Algorithm • Time interval of length t • Redundancy constant k (e.g., 1, 2) • Pick a time t from [0,t] • Maintain a counter c, initialized to zero • At time t, broadcast code metadata if c < k • Increment c when you hear identical metadata to your own • At end of t, pick a new t NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 2 0 3 0 t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 t1a 2 0 3 0 t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 t1a 2 1 3 0 t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 t1a 2 1 3 0 t3a t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 t1a 2 2 3 0 t3a t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 t1a 2 2 t2a 3 0 t3a t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 0 1 t1a 2 0 t2a 3 0 t3a t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 1 1 t1a 2 0 t2a t2b 3 1 t3a t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 1 1 t1a 2 0 t2a t2b 3 1 t3a t3b t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Example Trickle Execution k=1 c 1 1 t1a t1b 2 0 t2a t2b 3 1 t3a t3b t time transmission suppressed transmission reception NEST Retreat, Jan 2004
Outline • Problem statement • Trickle algorithm • Maintenance • Propagation • Conclusion NEST Retreat, Jan 2004
Maintenance • Minimize maintenance cost (transmissions) when there is no new code • Keep as close to k as possible • Start with three assumptions, relax each • Lossless network • Perfect synchronization • Single-hop NEST Retreat, Jan 2004
Ideal Case • k transmissions per interval • First k nodes to transmit suppress all others • Independent of density NEST Retreat, Jan 2004
Loss NEST Retreat, Jan 2004
Logarithmic Behavior of Loss • Transmission increase is due to the probability that one node has not heard n transmissions • Example: 10% loss • 1 in 10 nodes will not hear one transmission • 1 in 100 nodes will not hear two transmissions • 1 in 1000 nodes will not hear three, etc. • Fundamental bound to maintaining per-interval communication NEST Retreat, Jan 2004
Synchronization NEST Retreat, Jan 2004
Short Listen Effect • Some nodes don’t listen much (pick small t values) • For example, B transmits three times: t A B C D Time transmission suppressed transmission reception NEST Retreat, Jan 2004
Solution • Add a listening period: pick t from [0.5t,t] Listen-only period NEST Retreat, Jan 2004
Effect of Listen Period NEST Retreat, Jan 2004
Multi-Cell Case • TOSSIM simulation • No synchronization, loss from empirical model • Nodes uniformly distributed in 50’x50’ area • Logarithmic scaling holds NEST Retreat, Jan 2004
Empirical Validation (transmissions + receptions) • Redundancy: • Maté VM implementation - k intervals NEST Retreat, Jan 2004
Outline • Problem statement • Trickle algorithm • Maintenance • Propagation • Conclusion NEST Retreat, Jan 2004
Choosing Intervals • Large interval: low cost, slow to discover • Small interval: high cost, quick to discover • When there’s new gossip, talk more • When there’s nothing new, talk less NEST Retreat, Jan 2004
Speeding Propagation • Adjust t: tl, th • When t expires, doubletup to th • When you hear newer metadata, set ttotl • When you hear newer code, set ttotl • When you hear older metadata, send an update NEST Retreat, Jan 2004
Rate Change Illustration Hear Newer Metadata 2tl th tl th th 2 Time NEST Retreat, Jan 2004
Simulated Propagation k=1, tl=1 second, th=1 minute NEST Retreat, Jan 2004
Empirical Propagation • Deployed 19 nodes in office setting • Instrumented nodes for accurate time measurements • Introduce new code, log installation times • k=1, tl=1 second, th=1 minute • 40 test runs NEST Retreat, Jan 2004
Network Layout NEST Retreat, Jan 2004
Empirical Results NEST Retreat, Jan 2004
Changing th to 20 minutes k=1 NEST Retreat, Jan 2004
Conclusions • Trickle efficiency scales logarithmically with density • Can obtain rapid propagation with low maintenance • At most 3 sends/hour, propagates in 30 seconds • Uses beyond code propagation • Changes to data such as routing tables • E.g., predicates can scope distance • Further examination of tl, th and k needed NEST Retreat, Jan 2004
Questions • Tech report available in back NEST Retreat, Jan 2004