Upload
gyles-lang
View
216
Download
0
Embed Size (px)
Citation preview
CountTorrent: Ubiquitous Access to Query Aggregates in Dynamic and Mobile Sensor Networks
Abhinav Kamra, Vishal Misra and Dan Rubenstein - Columbia University
(ACM SenSys 2007)
Presenter : Justin
2
A few definitions
Distributive queries (e.g. MIN, MAX, COUNT, SUM) Form: f(p U q) = f( f(p), f(q) ), (p, q = set of
disjoint nodes) e.g. Sum: f(p U q) = |p| + |q|
6
3
4
5
1
2
9
1011
21
3
A few definitions (cont.)
Two types of queries: Duplicate-sensitive: e.g. SUM, COUNT Duplicate-insensitive: e.g. MIN, MAX
4
Traditional data aggregation
Goal: Combine data values while routing to the sink
Two schemes Tree-based Multi-path
example
Tree-based(spanning tree)
Multi-path(DAG)
5
Traditional data aggregation (cont.)
Tree-based Error-prone in dynamic networks Not accurate in failure-prone settings
Multi-path Bandwidth overkill in stable networks Have to avoid duplicate and redundant data Still loses accuracy in high mobility/loss scenarios
6
CountTorrent: An adaptive approach
Adapt to network conditions: Stable networks: accurate tree-based aggregation Dynamic networks: multi-path aggregation,
accuracy degrades gracefully
Completely distributed: local decisions
Can compute duplicate-sensitive and duplicate-insensitive query aggregates
7
CountTorrent: A conceptual overview
Divide and conquer strategy Arrange information in a hierarchy using a
(prefix-free) binary labeling Combine disjoint information Adapt the labeling as network changes
0
1
10
11
8
CountTorrent: Label assignment
Each node is assigned a unique (binary) label by its parent.
When a new node joins: Chooses one of its neighbors as parent Parent splits its label S into 2 separate labels S0
and S1: Child given label S1
h2
h3
h10
10
11
h4h2
h3
h10
10
11
Node h4 joinsChooses h1 as parent
0100
9
CountTorrent: Data combining
After a label is assigned to each node All labels can be merged to form ε
3
5
4
1
00
100
101
11
010
011
6
2
6
400 11
9
2
01
10
11
10
CountTorrent: Data combining
Aggregating with tuples Definition: Tuple = (binary label, aggregate value)
pair Labels differ only in last bit merge tuples
(11, 5)(01, 3)(001, 2) (011, 1)(10, 3)(001, 2)
(011, 1)(11, 5)(10, 3)(001, 2)
(011, 1)(1, 8)(001, 2)
Node A Node B
Neighbors exchange tuples randomly
Merge any tuples if possible
11
CountTorrent: Variants
Static CountTorrent Exchange tuples with neighbors
Dynamic CountTorrent Addiction tuple cache contains tuples associated
with the node’s children and its own label.
b
c
a(10,4)
(1100,2) (1100,2)(111,3)
(1101,1)
(111,3)……
d
(10,4)
(1100,2)
(1101,1)(111,3)
(10,4)(1100,0)
c
a
(111,3)……
d
(10,4)
(1101,1)(111,3)
Send up
node b leaves
node a reset value of
“1100” into 0
node d require new label from a
c
a(10,4)(11,3)
(11,3)……
d
(10,4)
(1101,1)(11,3)
Update down
12
CountTorrent: Fine-tuning
Random exchange is not efficient: Convergence is slow
Optimizations: Intelligent Selection
Carefully choose data to send to neighbors Minimize redundant and duplicate tuple exchanges
Preferred Diffusion Carefully choose neighbor to send data to Fast convergence in stable networks
13
CountTorrent: Intelligent Selection
Node A sending to neighbor B Remembers what was sent to B Remembers what was received from B Only send tuples that are useful for B
(11, 5)(01, 3)(0010, 2) (10, 3)(001, 2)
Node A Node B
(11, 5)(10, 3)(001, 2)
(1, 8)(001, 2)
Node a won’t send (11,5) again
(11, 5)(01, 3)(0010, 2)
Node a won’t send (0010,2) to node b, since “001” is the prefix of “0010”
(11, 5)(001, 2)(01, 3)(0010, 2)
14
CountTorrent: Preferred Diffusion
Preferential forwarding: If any tuple useful for parent Send Else, if any tuple useful for a child Send Else, send to another neighbor
Stable networks: Mimics tree-based aggregation
Dynamic network: mix of tree-based and multi-path
15
Simulations & Experiments
Simulations: Compare with other aggregation
methods Effect of Node joins & failures
Aggregation in a mobile network Experiments on Tossim & motes: CountTorrent implementation on
Crossbow micaz motes
16
CountTorrent accuracy
17
Bandwidth usage
18
Adapting to node joins & failures
19
COUNT aggregate in a mobile network
20
CountTorrent on TOSSIM
21
CountTorrent on micaz motes
22
Conclusions
Robust: Accurate even in lossy networks Adaptive: Data communication adapts to
changing topology Handles mobility: Close to accurate
aggregates Bandwidth-efficient: adapts to the stability
of the network to maintain accuracy Ubiquitous: All nodes get the aggregate
by design