Intermittently Connected Query Processing Yang Zhang, Bret Hull, Hari Balakrishnan, and Samuel Madden MIT Computer Science and AI Lab April 17, 2007
ICEDB Server (portal) Example Query Show me photos of traffic jams. No duplicates. Example Query Show me photos of traffic jams. No duplicates.
ICEDB Server (portal) wireless connection sensors + #!/usr/bin/perl while (true) { raw = read(serial); tuple = convert(raw); send(icedb, tuple); } #!/usr/bin/perl while (true) { raw = read(serial); tuple = convert(raw); send(icedb, tuple); } adapter schema data source
ADAPTERADAPTER ADAPTERADAPTER DB CQ Ad-hoc Query Processor Ad-hoc Query Processor Output Buffers Output Buffers CAFNETCAFNET CAFNETCAFNET
SELECT... EVERY n [SECONDS] BUFFER IN buffername
tuplesbuffer query DB
PRIORITY rank,weight : inter-query (local) DELIVERY ORDER BY : intra-query (local) SUMMARIZE AS : global tuplesbuffer
FIFO Bisect
ICEDB Server
from central server to central server ICEDB Server latlonins_time :30pm :35pm ……… latlonins_timerank :35pm :30pm2 …………
232 days of normal driving (07/05 – 07/06) Boston and Seattle areas 260 distinct km of roads, 50% from 15 km 32,000 APs discovered, 2,000 open Mean time between APs: 23 seconds Mean association duration: 24 seconds Median TCP upload: ~200 kbytes Connectivity is equi-probable in [0,60] km/h
Query workloads: uniform, hotspot Camera data: 50KB Metric: fraction query points satisfied Prioritization schemes: FIFO, bisect, random, global Cars: one, many query point
FIFO: zero success Random/bisect: ~0.25x success of global Bottleneck: not query count, but total network capacity Global: remote nodes and central server share data
Intermittently Connected Query Processing Yang Zhang, Bret Hull, Hari Balakrishnan, and Samuel Madden MIT Computer Science and AI Lab
SELECT... EVERY n [SECONDS] BUFFER IN buffername
ICEDB Server latlonins_time :30pm :35pm ……… latlonins_timerank :35pm :30pm2 …………
Trace: 1 trip all sensor data collected between ignition on to ignition off Trace: 1 trip all sensor data collected between ignition on to ignition off
Trace-driven simulation
ICEDB Server
data source = ++ #!/usr/bin/perl while (true) { raw = read(serial); tuple = convert(raw); send(icedb, tuple); } #!/usr/bin/perl while (true) { raw = read(serial); tuple = convert(raw); send(icedb, tuple); }
Trace-driven simulation Query workloads: uniform, hotspot Camera data: 50 KB/img Metric: success ratio Prioritization schemes: FIFO, bisect, random, global Cars: one, many
CarTel: mobile sensor platform Opportunistic data delivery >1 year, Boston/Seattle, 260 km