Download - 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003
![Page 1: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/1.jpg)
1
Acquisitional Query Processing in TinyDB
Sam MaddenUC Berkeley
NEST Winter Retreat 2003
![Page 2: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/2.jpg)
2
Acquisitional Query Processing (ACQP)
• Cynical DB person question: what’s really different about sensor networks?
–Low Power?
–Lots of Nodes?
–Limited Processing Capabilities?
Laptops!
Distributed DBs!
Moore’s Law!
Being a little bit facetious, but…
![Page 3: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/3.jpg)
3
Answer
• Long running queries on physically embedded devices that control when and and with what frequency data is collected!
• Versus traditional systems where data is provided a priori
Data collection aware query processing “acqusitional query processing”, or ACQP!
![Page 4: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/4.jpg)
4
ACQP: What’s Different?
• How does the user control acquisition?– Rates or lifetimes– Event-based triggers
• How should the query be processed?– Sampling as a first class operation– Events or joins
• Which nodes have relevant data?– Semantic Routing Tree
» Nodes that are queried together route together
• Which samples should be transmitted?– Pick most “valuable”? Aggregate others?– Store results for later delivery?
SIGMOD Submission!
Language Features
Execution Features
![Page 5: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/5.jpg)
5
Outline
• TinyDB• Acquisitional Language Features
– Events– Buffers– Rates & Lifetimes
• Acquisitional Processing (a taste)– Optimization of selections– Buffering results
» Choosing where to place storage
ACQP
![Page 6: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/6.jpg)
6
Outline
• TinyDB• Acquisitional Language Features
– Events– Buffers– Rates & Lifetimes
• Acquisitional Processing (a taste)– Optimization of selections– Buffering results
» Choosing where to place storage
ACQP
![Page 7: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/7.jpg)
7
TinyDB/GSK• Programming sensor nets is hard!• Declarative queries are easy
– TinyDB: In-network processing via declarative queries
• Example: » Vehicle tracking application
• Custom code– 1-2 weeks to develop– Hundreds of lines of C
• TinyDB query (on right): – 2 minutes to develop– Comparable functionality
SELECT nodeid FROM sensors WHERE mag > threshEPOCH DURATION 64ms
![Page 8: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/8.jpg)
8
TinyDB Features
• A distributed query processor for networks of Mica motes– Available today!
• Goal: Eliminate the need to write C code for most TinyOS users
• Features– Declarative queries– Temporal + spatial operations– Multihop routing– In-network storage
![Page 9: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/9.jpg)
9
A
B C
D
FE
TinyDB Execution
Query
{D,E,F}
{B,D,E,F}
{A,B,C,D,E,F}
Written in SQL-Like Language With Extensions For :
•Sample rate
•Offline delivery
•Temporal Aggregation
(Almost) All Queries are Continuous and Periodic
![Page 10: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/10.jpg)
10
Declarative Queries for Sensor Networks
• Examples:SELECT nodeid, lightFROM sensorsWHERE light > 400EPOCH DURATION 1s
1 EpocEpochh
NodeiNodeidd
LightLight TemTempp
AccelAccel SounSoundd
0 1 455 x x x
0 2 389 x x x
1 1 422 x x x
1 2 405 x x x
Sensors
![Page 11: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/11.jpg)
11
Aggregation Queries
SELECT roomNo, AVG(sound)
FROM sensors
GROUP BY roomNo
HAVING AVG(sound) > 200
EPOCH DURATION 10sRooms w/ sound > 200
3
2SELECT AVG(sound)
FROM sensors
EPOCH DURATION 10s
Epoch AVG(sound)
0 440
1 445
Epoch
roomNo
AVG(sound)
0 1 360
0 2 520
1 1 370
1 2 520
![Page 12: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/12.jpg)
12
TinyDB Screenshot
![Page 13: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/13.jpg)
13
Outline
• TinyDB• Acquisitional Language Features
– Events– Buffers– Rates & Lifetimes
• Acquisitional Processing (a taste)– Optimization of selections– Buffering results
» Choosing where to place storage
ACQP
![Page 14: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/14.jpg)
14
Event Based Processing
• ACQP – want to initiate queries in response to events
ON EVENT bird-enter(…)
SELECT b.cnt+1
FROM birds AS b
OUTPUT INTO b
ONCE
In-network storage
Subject to optimization
CREATE BUFFER birds(uint16 cnt)
SIZE 1
![Page 15: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/15.jpg)
15
More Events
ON EVENT bird_detect(loc) AS bd
SELECT AVG(s.light), AVG(s.temp)
FROM sensors AS s
WHERE dist(bd.loc,s.loc) < 10m
SAMPLE PERIOD 1s for 10
[Coming soon!]
![Page 16: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/16.jpg)
16
Event Based Processing
![Page 17: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/17.jpg)
17
Lifetime Queries
• Lifetime vs. sample rate
SELECT …LIFETIME 30 days
SELECT …LIFETIME 10 daysMIN SAMPLE INTERVAL 1s
Implies not all data is xmitted
![Page 18: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/18.jpg)
18
(Single Node) Lifetime Prediction
![Page 19: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/19.jpg)
19
Processing Lifetimes
• At root– Compute SAMPLE PERIOD that satisfies
lifetime– If it exceeds MIN SAMPLE PERIOD (MSP), use
MSP and compute transmission rate
• At other nodes – use root’s values or less• Root = bottleneck
– Multiple roots?– Adaptive roots?
![Page 20: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/20.jpg)
20
In-network Buffers
• In-network storage needed for:– Offline delivery / high sample rates– Result correlation (joins)– Power conservation
CREATE TABLE myLight SIZE 5 (id uint16, value uint16)
SELECT nodeid,light INTO myLight SAMPLE PERIOD 100ms
SELECT WINMAX(5,light) FROM myLight SAMPLE PERIOD 500ms
![Page 21: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/21.jpg)
21
Outline
• TinyDB• Acquisitional Language Features
– Events– Buffers– Rates & Lifetimes
• Acquisitional Processing (a taste)– Optimization of selections– Buffering results
» Choosing where to place storage
ACQP
![Page 22: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/22.jpg)
22
Declarative -> Optimizable
• Queries don’t specify:– Where operators run– Order in which operators run– What algorithm operators use– Duty cycles– Rates, in lifetime queries– Path along which data is routed…
• Easy to express, power-efficient, and fault-tolerant!– Through optimizations!
![Page 23: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/23.jpg)
23
Operator Ordering: Interleave Sampling + Selection
SELECT light, magFROM sensorsWHERE pred1(mag)AND pred2(light)SAMPLE INTERVAL 1s
• Energy cost of sampling mag >> cost of sampling light•1500 uJ vs. 90 uJ
• Correct ordering (unless pred1 is very selective):
At 1 sample / sec, total power savings could be as much as 4mW, same as the processor!
2. Sample light Apply pred2Sample magApply pred1
1. Sample light Sample magApply pred1Apply pred2
3. Sample mag Apply pred1Sample lightApply pred2
![Page 24: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/24.jpg)
24
Optimizing in ACQP• Sampling = “expensive predicate” • Subtleties
– Which predicate to “charge”?– Sampling must precede some operators
• Solution– Treat sampling as a separate task– Build a partial order– Use series-parallel scheduling algorithm to find
best schedule» Monma & Sidney, 1979, as in Ibaraki & Kameda, TODS,
1984, or Hellerstein, TODS, 1998.
![Page 25: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/25.jpg)
25
Exemplary Aggregate Pushdown
SELECT WINMAX(light,8s,8s)FROM sensorsWHERE mag > xSAMPLE INTERVAL 1s
Unless > x is very selective, correct ordering is:Sample lightCheck if it’s the maximumIf it is:
Sample magCheck predicateIf satisfied, update maximum
![Page 26: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/26.jpg)
26
Event-Join Duality
ON EVENT E(nodeid)SELECT aFROM sensors AS sWHERE s.nodeid = e.nodeidSAMPLE INTERVAL d FOR k
• Problem: multiple outstanding queries (lots of samples)
t
d
d d/2
•High event frequency → Use Rewrite
•Rewrite problem: phase alignment!
•Solution: subsampleSELECT s.aFROM sensors AS s,
events AS eWHERE s.nodeid = e.nodeid
AND e.type = EAND s.time – e.time < kAND s.time > e.timeSAMPLE INTERVAL d
![Page 27: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/27.jpg)
27
Placing Buffers
• Buffer location not specified by query• TinyDB chooses where storage lives
– Current implementation: partition by nodeid– Other options
» At root» At storage rich node» At a randomly selected node (for load balancing)
– Open problems:» Finding storage» Choosing the best location» Making storage fault-tolerant?
![Page 28: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/28.jpg)
28
Summary & Conclusions
• ACQP: Focus on acquisitional issues– Acquisitional Language Features:
» Events» Lifetimes» Buffers
– Declarative interface enables transparent acquisitional optimizations:
» Order of selections» Events Joins» Placement of buffers
– Making TinyDB more efficient and robust than the average sensor network programmer!
![Page 29: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/29.jpg)
29
Questions?
![Page 30: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/30.jpg)
30
Attribute Driven Topology Selection
• Observation: internal queries often over local area*– Or some other subset of the network
»E.g. regions with light value in [10,20]
• Idea: build topology for those queries based on values of range-selected attributes– For range queries– Relatively static trees
»Maintenance Cost
![Page 31: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/31.jpg)
31
Attribute Driven Query Propagation
1 2 3
4
[1,10]
[7,15]
[20,40]
SELECT …
WHERE a > 5 AND a < 12
Precomputed intervals = Semantic Routing Tree (SRT)
![Page 32: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/32.jpg)
32
Attribute Driven Parent Selection
1 2 3
4
[1,10] [7,15] [20,40]
[3,6]
[3,6] [1,10] = [3,6]
[3,7] [7,15] = ø
[3,7] [20,40] = ø
Even without intervals, expect that sending to parent with closest value will help
![Page 33: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/33.jpg)
33
Simulation Result
Nodes Visited vs. Query Range
0
50
100
150
200
250
300
350
400
450
0.001 0.05 0.1 0.2 0.5 1Query Size as % of Value Range
(Random value distribution, 20x20 grid, ideal connectivity to (8)
neighbors)
# o
f N
odes
Vis
ited (
400 =
Max
)
Best Case (Expected)Closest ParentNearest ValueSnooping
![Page 34: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/34.jpg)
34
ACQP
• How does the user control acquisition?– Rates or lifetimes.– Event-based triggers
• How should the query be processed?– Sampling as an operator!– Events as joins
• Which nodes have relevant data?– Semantic Routing Tree
» Nodes that are queried together route together
• Which samples should be transmitted?– Pick most “valuable”?
![Page 35: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/35.jpg)
35
Adaptive Rate ControlSample Rate vs. Delivery Rate
0
1
2
3
4
5
6
7
8
0 2 4 6 8 10 12 14 16Samples Per Second (Per Mote)
Ag
gre
ga
te D
eliv
ery
Ra
te
(Pa
ck
ets
/Se
co
nd
)
1 mote
4 motes
4 motes, adaptive
Adaptive = 2x Successful Xmissions
![Page 36: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/36.jpg)
36
Delta Encoding
• Must pick most valuable data• How?
– Domain Dependent»E.g., largest, average, shape preserving,
frequency preserving, most samples, etc.
• Simple idea for time-series: order biggest-change-first
![Page 37: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/37.jpg)
37
Choosing Data To Send
• Score each item• Send largest score
– Out of order -> Priority Queue
• Discard / aggregate when full
[1,2]
![Page 38: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/38.jpg)
38
Choosing Data To Send
[1,2]
Time vs. Value
0
2
4
6
8
10
12
14
16
1 2 3 4
Time
Val
ue
![Page 39: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/39.jpg)
39
Choosing Data To Send
[2,6] [3,15] [4,1]
[1,2]
|2-6| = 4
|2-15| = 13
|2-4| = 2
Time vs. Value
0
2
4
6
8
10
12
14
16
1 2 3 4
Time
Val
ue
![Page 40: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/40.jpg)
40
Choosing Data To Send
[2,6]
[3,15]
[4,1]
[1,2]
Time vs. Value
0
2
4
6
8
10
12
14
16
1 2 3 4
Time
Val
ue
|2-6| = 4 |15-4| = 11
![Page 41: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/41.jpg)
41
Choosing Data To Send
[2,6]
[3,15] [4,1][1,2]
Time vs. Value
0
2
4
6
8
10
12
14
16
1 2 3 4
Time
Val
ue
![Page 42: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/42.jpg)
42
Choosing Data To Send
[2,6] [3,15] [4,1][1,2]
Time vs. Value
0
2
4
6
8
10
12
14
16
1 2 3 4
Time
Val
ue
![Page 43: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/43.jpg)
43
Delta + Adaptivity
• 8 element queue
• 4 motes transmitting different signals
• 8 samples /sec / mote
![Page 44: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/44.jpg)
44
Aggregate Prioritization
• Insight: Shared channel enables nodes to hear neighbor values
• Suppress values that won’t affect aggregate– E.g., MAX– Applies to all exemplary, monotonic
aggregates e.g. top/bottom N, MIN, MAX, etc.
![Page 45: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/45.jpg)
45
Hypothesis Testing• Insight: Guess from root can be used for
suppression– E.g. ‘MIN < 50’– Works for monotonic & exemplary aggregates
»Also summary, if imprecision allowed
• How is hypothesis computed?– Blind or statistically informed guess– Observation over network subset
![Page 46: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/46.jpg)
46
Simulation: Aggregate Prioritization
•Uniform Value Distribution•Dense Packing •Ideal Communication
Messages/ Epoch vs. Network Diameter(SELECT MAX(attr), R(attr) = [0,100])
0
500
1000
1500
2000
2500
3000
10 20 30 40 50
Network Diameter
Messages /
Epoch
No Guess
Guess = 50
Guess = 90
Snooping
![Page 47: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/47.jpg)
47
ACQP Summary
• Lifetime & event based queries– User preferences for when data is acquired
• Optimizations for– Order of sampling– Events vs. joins
• Semantic Routing Tree– Query dissemination
• Runtime priortization– Adaptive rate control– Which samples to send
![Page 48: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/48.jpg)
48
Fun Stuff
• Temporal aggregates
• Sophisticated, sensor network specific aggregates
• Delta compression, wavelets, etc.
![Page 49: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/49.jpg)
49
Temporal Aggregates
• TAG was about “spatial” aggregates– Inter-node, at the same time
• Want to be able to aggregate across time as well
• Two types:– Windowed: AGG(size,slide,attr)
– Decaying: AGG(comb_func, attr)– Demo!
… R1 R2 R3 R4 R5 R6 …
slide =2 size =4
![Page 50: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/50.jpg)
50
Isobar Finding
![Page 51: 1 Acquisitional Query Processing in TinyDB Sam Madden UC Berkeley NEST Winter Retreat 2003](https://reader031.vdocuments.net/reader031/viewer/2022012914/56649d615503460f94a43abd/html5/thumbnails/51.jpg)
51
Summary
• Declarative queries are the right interface for data collection in sensor nets!– Easier, faster, & more robust
• Acquisitional Query Processing – Framework for addresses many new issues
that arise in sensor networks, e.g.» Order of sampling and selection» Languages, indices, approximations that give user
control over which data enters the system
TinyDB Release Available - http://telegraph.cs.berkeley.edu/tinydb