Trickle: Code Propagation and Maintenance Neil Patel UC Berkeley David Culler UC Berkeley Scott Shenker UC Berkeley ICSI Philip Levis UC Berkeley
NEST Retreat, Jan 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 Propagating Can Be Costly, Binaries: 10-60KB Virtual programs: B Parameters: 8-30B To every node in a large, multihop network…
NEST Retreat, Jan 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 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 Relation to Deluge, SPIN, etc. When do you advertise code? How do you suppress control messages? Not a dissemination protocol
NEST Retreat, Jan 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 Outline Introduction Trickle algorithm Maintenance Propagation Conclusion
NEST Retreat, Jan Trickle Assumptions Wireless broadcast medium Concise, comparable metadata –Given A and B, know which has newer code
NEST Retreat, Jan 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 Trickle Algorithm Time interval of length Redundancy constant k (e.g., 1, 2) Pick a time t from [0, ] 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 , pick a new t
NEST Retreat, Jan Example Trickle Execution time 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 0 0
NEST Retreat, Jan Example Trickle Execution t 1a time 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 0 0
NEST Retreat, Jan Example Trickle Execution t 1a time 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 1 0
NEST Retreat, Jan Example Trickle Execution t 1a time t 3a 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 1 0
NEST Retreat, Jan Example Trickle Execution t 1a time t 3a 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 2 0
NEST Retreat, Jan Example Trickle Execution t 1a time t 2a t 3a 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 2 0
NEST Retreat, Jan Example Trickle Execution t 1a time t 2a t 3a 2 3 transmissionsuppressed transmissionreception 1 k=1 c 0 0 0
NEST Retreat, Jan Example Trickle Execution t 1a time t 2a t 2b t 3a 2 3 transmissionsuppressed transmissionreception 1 k=1 c 1 0 1
NEST Retreat, Jan Example Trickle Execution t 1a time t 2a t 2b t 3a t 3b 2 3 transmissionsuppressed transmissionreception 1 k=1 c 1 0 1
NEST Retreat, Jan Example Trickle Execution t 1a t 1b time t 2a t 2b t 3a t 3b 2 3 transmissionsuppressed transmissionreception 1 k=1 c 1 0 1
NEST Retreat, Jan Outline Problem statement Trickle algorithm Maintenance Propagation Conclusion
NEST Retreat, Jan 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 Ideal Case k transmissions per interval First k nodes to transmit suppress all others Independent of density
NEST Retreat, Jan Loss
NEST Retreat, Jan 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 Synchronization
NEST Retreat, Jan Short Listen Effect Some nodes don’t listen much (pick small t values) For example, B transmits three times: A B C D Time transmissionsuppressed transmissionreception
NEST Retreat, Jan Solution Add a listening period: pick t from [0.5 , ] Listen-only period
NEST Retreat, Jan Effect of Listen Period
NEST Retreat, Jan Multi-Cell Case TOSSIM simulation –No synchronization, loss from empirical model –Nodes uniformly distributed in 50’x50’ area Logarithmic scaling holds
NEST Retreat, Jan Empirical Validation Redundancy: Maté VM implementation (transmissions + receptions) intervals - k
NEST Retreat, Jan Outline Problem statement Trickle algorithm Maintenance Propagation Conclusion
NEST Retreat, Jan 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 Speeding Propagation Adjust : l, h When expires, double up to h When you hear newer metadata, set to l When you hear newer code, set to l When you hear older metadata, send an update
NEST Retreat, Jan Rate Change Illustration hh ll 2l2l hh hh Hear Newer Metadata 2 Time
NEST Retreat, Jan Simulated Propagation k=1, l =1 second, h =1 minute
NEST Retreat, Jan Empirical Propagation Deployed 19 nodes in office setting Instrumented nodes for accurate time measurements Introduce new code, log installation times k=1, l =1 second, h =1 minute 40 test runs
NEST Retreat, Jan Network Layout
NEST Retreat, Jan Empirical Results
NEST Retreat, Jan Changing h to 20 minutes k=1
NEST Retreat, Jan 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 l, h and k needed
NEST Retreat, Jan Questions Tech report available in back
NEST Retreat, Jan Sensor Network Behavior
NEST Retreat, Jan Multi-cell Case, Simulated
NEST Retreat, Jan
NEST Retreat, Jan
NEST Retreat, Jan