Bases de données et réseaux de capteurs Bruno Defude GET-Institut National des Télécommunications Bruno.Defude@int-evry.fr http://www-inf.int-evry.fr/~defude
Plan. Introduction BD & Mobilité Requêtes Continues, Flots de Données 2. Bases de données de capteurs. TinyDB (modèle de données & langage de requêtes) 2. TinyDB (évaluation de requêtes complexes) 3. Conclusion et problèmes ouverts 2
Introduction 3
Capteurs : le point Véritable petit processeur Capteur de lumière, champ magnétique, accélération, son, etc. Canal radio en half-duplex, ne peut pas émettre et recevoir à la fois (97MHz, 50 kb/s) Le coût de transmission est élevé / exécution processeur (envoi bit = 800 instructions) Problème de batterie : 5,5 Millions de messages (30 octets), càd msg/s chaque jour pendant 2 mois. En général broadcast/diffusion, les voisins reçoivent même s ils ne sont pas destinataires. 4
Nature des données des capteurs? Données des capteurs sont fournies par traitement du signal (mesures, détection, ) Chaque élément de donnée du capteur a une estampille N.B. {[ti, vi]} = BD Historique/ Temporelle Données provenant d un seul capteur ou d un groupe (nécessité d agrégation) 5
Gestion de données Modèles de données : Relationnel, Object, Semi-structuré, Persistance : Modèle, Stockage Langages de requêtes & API : SQL,QBE, OQL, QL+PL Optimisation de requêtes Intégrité et sécurité des données : contraintes, droits d accès, crypto,.. Gestion de transaction : cohérence, concurrence, reprise Systèmes & Architectures : SGBD (des smartcards aux architectures spécialisées), Client(s)/Server(s), Web, P2P/Grid, MOBILE 6
Langages de requêtes Quoi et non comment : indépendance des données Langages déclaratifs SQL, QUEL, QBE, OQL, XQUERY Évaluation de requêtes Pull vs push Requêtes continues Requêtes dépendantes de la localité Exacte vs approchée Tous vs top-k Statique vs dynamique 7
Optimisation de requêtes Indépendance des données stockage, localisation, distribution, partition, réplication transformations algébriques (relationnel, objet, ) Réécriture de requêtes sélection d un plan d accès optimal : modèle de coût Min (αn+βp+γm) à base de règles Statique vs. Dynamique Méta-données, statistiques, administrateur 8
Requêtes sur réseau de capteurs? Requêtes à la SQL sur un réseau de capteurs Accès à un grand ensemble de capteurs Accès associatif, indépendant de l organisation physique du réseau (approche BD) Exemple #: Chaque minute, avoir une mesure dans la région X Exemple #2: Quand deux capteurs distants de 2 m détectent un oiseau envoyer leur emplacement. Exemple #3: Toutes les 5 minutes, avoir le nombre d oiseaux dans la Région X. Aspects flots de données, événements, spatial 9
Problèmes BD réparties? Modèle pour les données des capteurs Accès aux données des capteurs Faibles capacités de stockage et de traitements Coût d accès aux données de capteurs Représenter le réseau de capteurs Gérer l aspect dynamique du réseau et le nombre de noeuds Prendre en compte les fautes Minimiser les communications : faire le maximum de traitements localement. 0
Techologie BD à réutiliser/adapter SGBD à petite empreinte (ex. PicoDBMS) Facile à configurer, zéro administration évaluation des requêtes : exact/approché, diffusion, échantillonnage, algos spécifiques Optimisation de requêtes : trouver une solution optimale dans un environnement dynamique (adaptatif), minimiser énergie (BD mobiles) Traitement des événements : BD Actives, ECA, Publish/Subscribe Flots de données générés doivent être traités à leur production BD sur flots de données: requêtes continues, optimisation
Caractéristiques environnement mobile Déconnexions fréquentes Bande passante variable (55kbs à 00Mbs) Coût de communication peut être élevé MU ont des capacités limitées Batteries Puissance de calcul Mémoire secondaire 2
Problèmes liés aux données mobiles (/2) Réplication & Cache Contraintes de cohérence différentes Réplication optimiste vs pessimiste Nouveaux algos de cache (broadcast, cohérence, invalidation...) Evaluation de requêtes : Pull / Push Diffusion de données vers une MU Broadcast disk Requêtes continues Requêtes dépendantes de la localisation 3
Problèmes liés aux données mobiles (2/2) Transactions : nouveaux modèles (ACID?) Transaction Mobile : une transaction où au moins une MU est impliquée dans l exécution Produits : PointBase, Navajo de Poet, Oracle Lite, DB2 Every Place, Sybase Anywhere, SQL Server CE Recherche : Clustering, Two-tier replication, Pro-motion, Reporting, Semantics-based, Kangaroo transactions, MDSTP, Moflex transactions Reprise Partitionnement de réseau fréquent Déconnexion n est pas (toujours) une panne Plus de journalisation 4
Requêtes dépendantes de la localisation. Trouver l hôtel le moins cher à Paris 2. Trouver l hôtel le moins cher et le plus près 3. Trouver l hôtel le moins cher et le plus près / où je serai dans une heure : requête classique BD spatiale (et temporelle) 2 : suppose une géo localisation de l utilisateur qui peut être immobile ou mobile 3 : utilisateur mobile : le localiser et prévoir sa trajectoire 5
Flots de données Flots continus, non bornés, rapides, liés au temps de données élémentaires Présents dans de nombreuses applications Surveillance de réseau et ingénierie de trafic Réseaux de capteurs, tags RFID Logs des opérateurs télécoms applications financières logs Web E-sciences DSMS = Data Stream Management System 6
Windows Méchanisme pour extraire une relation finie d un flot infini De nombreuses variations Windows définie sur un attribut ordonné (e.g., temps) Windows définie par un nombre de tuples Windows définie par des marqueurs explicites 7
Windows ordonnée selon un attribut 8
Architecture Générale de STREAM Register Query Streamed Result Stored Result DSMS Input streams Scratch Store Stored Relations Archive 9
Exemple Q Deux Flots : (avec estampille pour chaque tuple) Commandes (cid, client, cout) Prise_charge (cid, employe) Coût total des commandes prises en charge le jour précédent par Sue pour le client Joe Select From Where And And Sum(C.cout) Commandes C, Prise_charge P [Range Day] C.cID = P.cID P.employe = Sue C.client = Joe 20
Q2 Sur un échantillon de 0% du flot des prises en charge, prendre les 5 plus récentes par employé et renvoyer le coût maximum Select P.employe, Max(C.cout) From Commandes C, Prise_charge P [Partition by employe ROWS 5] 0% SAMPLE Where C.cID=P.cid Group by P.employe 2
Problèmes des DSMS Relations : ensemble de tuples ou séquences? BD types de màj? Ajout seulement? Requête immédiate ou continue? Résultat exact ou approché? Évaluation de requête en une passe ou +? Plan d exécution figé ou adaptatif? Ressources limitées (ex. mémoire) Nécessité de traiter les données en temps réel 22
Bases de données sur réseaux de capteurs 23
Some Sensornet Apps redwood forest microclimate monitoring smart cooling in data centers condition-based maintenance structural integrity And More Homeland security Container monitoring Mobile environmental apps Bird tracking Zebranet Home automation Etc!
Data Management Landscape External Tools Client Tools GUIs,etc Server-side Internet applications Stable Store (DBMS) Field Tools Local Servers Sensor Network TinyD B Data management Issues: APIs for current + historical access? Which data when? How to act on data? Network and node status? 25
High Level (Query Based) Interfaces are Good Programming Apps is Hard Limited power budget Lossy, low bandwidth communication Require long-lived, zero admin deployments Distributed Algorithms Limited tools, debugging interfaces Queries abstract away much of the complexity Burden on the database developers Users get: Safe, optimizable programs Freedom to think about apps instead of details 26
TinyDB: Declarative Query Interface to Sensornets Platform: Berkeley Motes + TinyOS Continuous variant of SQL : TinySQL Power and data-acquisition based in-network optimization framework Extensible interface for aggregates, new types of sensors 27
TinyDB Revisited High level abstraction: Data centric programming Interact with sensor network as a whole Extensible framework Under the hood: Intelligent query processing Fault Mitigation SELECT MAX(mag) FROM sensors WHERE mag > thresh SAMPLE PERIOD 64ms Query, Trigger App TinyDB Data Sensor Network Cougar is very similar 28
Feature Overview Declarative SQL-like query interface Metadata management Multiple concurrent queries In-network, distributed query processing Extensible w/ new attributes, commands, aggregates In-network, persistent storage 29
Architecture PC side TinyDB GUI TinyDB Client API JDBC DBMS Mote side 0 2 TinyDB query processor 8 4 Sensor network 5 7 6 30
TinyDB Interface 3
Data Model Entire sensor network as one single, logical table: sensors Columns consist of all the attributes defined in the network Typical attributes: Sensor readings Meta-data: node id, location, etc. Internal states: routing tree parent, timestamp, queue length, etc. Nodes return NULL for unknown attributes 32
Query Language (TinySQL) SELECT <aggregates>, <attributes> [FROM {sensors <buffer>}] [WHERE <predicates>] [GROUP BY <exprs>] [SAMPLE PERIOD <const> ONCE] [INTO <buffer>] [TRIGGER ACTION <command>] 33
Comparison with SQL Single table in FROM clause Only conjunctive comparison predicates in WHERE and HAVING No subqueries No column alias in SELECT clause Arithmetic expressions limited to column op constant Only fundamental difference: SAMPLE PERIOD clause 34
TinySQL Examples Find the sensors in bright nests. SELECT nodeid, nestno, light FROM sensors WHERE light > 400 SAMPLE PERIOD s Epoch 0 0 Sensors Nodeid nestno 7 2 25 7 Light 455 389 422 2 25 405 35
TinySQL Examples (cont.) 2 SELECT AVG(sound) FROM sensors SAMPLE PERIOD 0s Count the number occupied nests in each loud region of the island. 3 SELECT region, CNT(occupied) AVG(sound) FROM sensors GROUP BY region HAVING AVG(sound) > 200 SAMPLE PERIOD 0s Epoch 0 0 region North South North South CNT( ) 3 3 3 3 AVG( ) 360 520 370 520 Regions w/ AVG(sound) > 200 36
Event-based Queries ON event SELECT Run query only when interesting events happens Event examples Button pushed Message arrival Bird enters nest Analogous to triggers but events are user-defined Wired into TinyOS events 37
Query over Stored Data Named buffers in Flash memory Store query results in buffers Query over named buffers Analogous to materialized views Example: CREATE BUFFER name SIZE x (field type, field2 type2, ) SELECT a, a2 FROM sensors SAMPLE PERIOD d INTO name SELECT field, field2, FROM name SAMPLE PERIOD d 38
Extending TinyDB Why extend TinyDB? New sensors attributes New control/actuation commands New data processing logic aggregates New events Analogous to concepts in object-relational databases 39
TinyDB Internals 40
Inside TinyDB ~0 000 lines embedded C code ~ 5 000 lines (PC-side) Java ~ 3 200 bytes RAM (w/ 768 byte heap) ~ 58 KB compiled code 3x larger than 2 nd largest TinyOS Program 4
Tree-based Routing Tree-based routing Used in: Query delivery Data collection In-network aggregation Tree formation well studied ETX Metric (Woo 03, DeCuoto 03) Q:SELECT R:{ } R:{ } R:{ } Q Q E Q B D Q Q A Q Q Q Q Q Q R:{ } C F Q R:{ } 42
Tiny DB advanced queries aggregation and joins 43
Tiny Aggregation (TAG) In-network processing of aggregates Common data analysis operation Aka gather operation or reduction in programming Communication reducing Operator dependent benefit Across nodes during same epoch Exploit query semantics to improve efficiency! 44
Basic Aggregation In each epoch: Each node samples local sensors once Generates partial state record (PSR) local readings readings from children Outputs PSR during assigned comm. interval Interval assigned based on depth in tree 2 3 3 4 4 2 3 5 Interval At end of epoch, PSR for whole network output at root New result on each successive epoch 45
Illustration: In-Network Aggregation SELECT COUNT(*) FROM sensors Interval 4 Sensor # 2 3 4 5 Sample Period 4 2 3 Interval # 3 2 4 Time 4 5 46
Illustration: In-Network Aggregation SELECT COUNT(*) FROM sensors Sensor # Interval 3 2 3 4 5 4 2 3 Interval # 3 2 2 4 2 4 5 47
Illustration: In-Network Aggregation SELECT COUNT(*) FROM sensors Sensor # Interval 2 2 3 4 5 3 4 2 3 Interval # 3 2 4 3 2 4 5 48
Illustration: In-Network Aggregation SELECT COUNT(*) FROM sensors 5 Interval Sensor # 2 3 4 5 4 2 3 Interval # 3 2 5 3 2 4 4 5 49
Illustration: In-Network Aggregation SELECT COUNT(*) FROM sensors Interval 4 Sensor # 2 3 4 5 4 2 3 Interval # 3 2 4 5 3 2 4 5 50
Illustration: In-Network Aggregation SELECT COUNT(*) FROM sensors Interval 4 Sensor # 2 3 4 5 4 zzz zzz zzz 2 3 Interval # 3 2 4 zzz 5 zzz zzz zzz zzz 3 zzz zzz 2 zzz zzz zzz zzz zzz 4 5 5
Aggregation Framework As in extensible databases, TinyDB supports any aggregation function conforming to: Agg n ={f init, f merge, f evaluate } F init {a 0 } <a 0 > F merge {<a >,<a 2 >} <a 2 > F evaluate {<a >} Example: Average aggregate value AVG init {v} <v,> AVG merge {<S, C >, <S 2, C 2 >} < S + S 2, C + C 2 > AVG evaluate {<S, C>} S/C Restriction: Merge associative, commutative Partial State Record (PSR) 52
Taxonomy of Aggregates TAG insight: classify aggregates according to various functional properties Yields a general set of optimizations that can automatically be applied Property Partial State Monotonicity Exemplary vs. Summary Duplicate Sensitivity Examples MEDIAN : unbounded, MAX : record COUNT : monotonic AVG : non-monotonic MAX : exemplary COUNT: summary MIN : dup. insensitive, AVG : dup. sensitive Affects Effectiveness of TAG Hypothesis Testing, Snooping Applicability of Sampling, Effect of Loss Routing Redundancy 53
In-Network Join Processing (REED) Complex data filtering in sensor networks 54
Example Filter Query Timestamp Temp 3:05PM 74 Sensor Data X MinTS MaxTS MinTemp MaxTemp 2:00PM 2:30PM 70 75 2:30PM 3:00PM 73 78 3:00PM 3:30PM 75 80 3:30PM 4:00PM 83 88 4:00PM 4:30PM 85 90 4:30PM 5:00PM 70 75 5:00PM 5:30PM 72 77 5:30PM 6:00PM 75 80 Join Predicate: Predicate Table TS > MinTS && TS < MaxTS && (Temp < MinTemp Temp > MaxTemp) 55
Naïve Join Algorithm Root 0 Main PC Controller X A B C D 2 Predicate Table 3 4 5 X Send all tuples from data table to root; perform join at root X 6 7 56
Ideal Join Algorithm Send join table to each node At node, perform join Problem: Severe Node Memory Constraints A B C D A B C D Root 0 Main PC Controller 2 A 3 4 5 B C D A B C D A B C D X X X A B C 6 7 A B C X X D D 57
REED Algorithm Cluster nodes into groups Store portion of predicate table in each group member Send sensor data tuples to every member of group Root 0 2 AAA BBB CCC DDD X 3 4 5 X X X D 8 6 7 58
Group Formation Neighbor list: {, 2, 3, 4, 6} Space: Space: Space: 48 0 CurrList: {} {, {, 4} 3, 4} Potential: {, {, {, 2, 3, 3, 3, 4, 4} 4, 6} 6} 6 Choose Me! {, 3, 4} Space: 2 Broadcast: Choose Group Accepted: Me! Want to {, make 3, 4, 4} group 6} Space: 4 Neighbor list: {, 4, 6} 3 Neighbor list: {, 3, 4} Neighbor list: {, 3, 4, 6} 4 59
Table Distribution Group members figure out amongst themselves how the table will be divided across group Table flooded to network 60
Conclusions Beaucoup de travaux ces dernières années sur les flots de données Première génération de DSMS, premières vraies applications Deux projets importants de BD sur réseaux de capteurs TinyDB et Cougar Premiers prototypes, un ou deux déploiements Premiers résultats encourageants mais de nombreux problèmes restent à résoudre à l intersection de systèmes embarqués, BD, réseaux 6
Problèmes ouverts BD & capteurs Model-driven data acquisition Exploiter les corrélations entre les données Optimisation multi-requêtes Approche Cross-layer (e.g modèle de communication + modèle évaluation requêtes) Stockage des données sur les capteurs (cache, ) Hétérogénéité des capteurs 62
Problèmes ouverts BD & capteurs (2) Acquisitional Query Processing Acquisition de données généralement coûteuse Intégrer dans tout le processus d évaluation/optimisation de requêtes (e.g quand faire l acquisition, comment entrelacer sélection/acquisition efficacement) Sélectionner le sous-ensemble de nœuds permettant de résoudre une requête donnée Construction d index (range-partitionning) type P2P Balancer gain vs coût construction + maintenance index 63
UbiMob 2006 3e Journées Francophones Mobilité et Ubiquité 5-8 septembre 2006 Conservatoire National des Arts et Métiers - Paris http://www.ece.fr/ubimob06 3 mars 2006 6 mai 2006 Date limite de soumission des articles longs Date limite de soumission des articles courts, démonstrations, tutoriels et ateliers 64
Sources utilisées présentations de Sam Madden MIT (http://db.lcs.mit.edu/madden) 65
Bibliographie L. Golab & T. Ozsu, Issues in Data Stream Management. ACM SIGMOD Record, June 2003. Y. Yao, J. E. Gehrke. Query Processing in Sensor Networks. In Proceedings CIDR 2003, January 2003 S. R. Madden, M. J. Franklin, J. M. Hellerstein, and W. Hong. TAG: a Tiny AGgregation Service for Ad- Hoc Sensor Networks. OSDI, December 2002. S. R. Madden, M.J. Franklin, J.M. Hellerstein, and W. Hong. The Design of an Acquisitional Query Processor for Sensor Networks. ACM TODS 66
Bibliographie (2) V. Goebel, T. Plagemann. Data Stream Management Systems: Applications, Concepts and Systems, Tutorial presented at MIPS 2004 Conference, Grenoble J. Gehrke, S. Madden. Query Processing in Sensor Networks, IEEE Pervasive Computing, jan-march 2004 Michel Adiba «Données ambiantes, continues et mobiles» Tutoriel à UbiMob05 The STREAM group. Stanford Data Stream Management System, to appear 2006 (voir http://www-db.stanford.edu/stream) 67