250 likes | 351 Views
declarative sensor networks. David Chu Computer Science Division EECS Department UC Berkeley. DBLunch UC Berkeley 2 March 2007. Leach's Storm Petrel. context. Sensor Networks 10’s – 100’s – 1000’s – 10,000’s. context. Sensor Networks early experiences. motivation.
E N D
declarativesensor networks David Chu Computer Science Division EECS Department UC Berkeley DBLunch UC Berkeley 2 March 2007
Leach's Storm Petrel context Sensor Networks 10’s – 100’s – 1000’s – 10,000’s
context Sensor Networks early experiences
motivation programming sensor networks is difficult! building entire sensor systems is even harder!!
inspiration s e n s o rn e t w o r k s network design data management
inspiration : data management • declarative is widely used in data management • relational databases • spreadsheets • abstract “what” from “how” • (Sensor-Network-As-Database)
inspiration : network design • declarative is new idea in networking • compact • flexible • analyzable, optimizable • Internet Routing, Overlays built declaratively • (the P2 project)
inspiration s e n s o rn e t w o r k s ( DSN ) network design data management
what we did • adapted declarative language • built compiler & runtime for sensornets • wrote declarative examples
10x6 topology 30x2 topology … from original Trickle paper … DSN specification P. Levis, N. Patel, D. Culler, S. Shenker. "Trickle: A Self-Regulating Algorithm for Code Propagation and Maintenance in Wireless Sensor Networks." NSDI 2004.
agenda • language overview • declarative sensornet examples • system architecture • feasibility assessment • application to landslide detection
brief language overview Rule1: implies don’t care join Rule2: Fact: Built-ins:
S C1 Z C2 D S C D a full example : tree
and others… link estimator localization tracking geographic routing* *fallback routing not shown
arch : compiler Snlog Compiler/Optimizer store(…) :- prod(…), cons(…). … path(…) :- link(…), dest(…). … Snlog Program Snlog Frontend Execution Planner nesC Backend GenericPredicateTemplate … … nesC Templates RuntimeTemplate … … Generated nesC code Database Operators Built-in Predicates nesC Compiler Runtime Components Type system Network support DSN Runtime Support Binary Image
tupleready sendready sendready tupleready arch : runtime Join Join Proj runtime daemon tupleready … … … … … … … Sel Ag Proj tupleready mac daemon push interfaces database operators (compiler’s library) Join Sel Agg Proj pull interfaces table (compiler generated) thread of control builtin (user’s library) event signal the network
implementation challenges • predictable execution → dynamic vs. static allocation • memory constraints → memory footprint optimizations no temporary tables, join/agg operator choice • asynchrony → rule-level atomicity priorities
evaluating tree-collection messages sent (similar performance) hop-counts
compiled size TelosB mote code space = 48KB, data space = 10KB
current efforts • energy-based optimization • send or store • language semantics clarity • non-monotonic logic
conclusion • sensor networks → data + communication • several examples of functional programs • feasible for today’s hardware platforms • preparing for landslide deployment
thanks collaborators Joe Hellerstein, Scott Shenker, Ion Stoica Arsalan Tavakoli, Lucian Popa Phil Levis