Altibase DSM: CTable for Pull-based Processing in SPE
1. Altibase DSM: CTable for Pull-based
Processing in SPE
Jaemyung Kim, Vladimir Verjovkin, Sergey A. Fedorov, Younghun Kim,
Dae-Il Kim, Sungjin Kim, Sang-Won Lee @ Altibase Corp. & SKKU
Data Processing Paradigm
Pull-based Processing Push-based Processing
2. Data (Event)
CPU Usage for last 30 seconds: Occurrence
3. Push Output
SELECT AVG(CPU_RATE) CEP Engine
FROM CPUStatus (Complex Event
Processing)
WHERE Time > sysdate – INTERVAL ‘30’ SECOND;
1. Register a query
1. Data
Occurrence
3. Query CPU Usage for last 30 seconds:
DBMS SELECT AVG(CPU_RATE)
2. Insert Data
4. Fetch Records FROM CPUStatus KEEP INTERVAL ‘30’ SECOND;
Into Relational Table
(Output)
Altibase DSM CTable
CTable Feature
• Pull-based processing (JDBC, ODBC, Python DB API )
• Distributed key-value store
• Seamless integration with streams and windows
• Update propagation using streams through shared
memory, unicast, and multicast
Sex-Offender Tracking System Bus Arrival Information System
Use Cases
Q1. Sex-offender movement tracking Q2. Upcoming buses in the bus stop
Example Queries
(Continuous Query, Push-based) (CTable Query, Pull-based)
SELECT 'VIOLATION DETECTED', * SELECT bus.bus_no, bus.license_plate,
FROM ctable(resident_limitation) rl, r.ord_id-cb.ord_id||' stops away' distance
location_info l FROM ctable(bus_route) r, ctable(bus_route) cb,
WHERE rl.unit_id = l.unit_id ctable(bus_location) bus
AND sqrt( (l.x-rl.x)*(l.x-rl.x) WHERE r.stn_id = ? /* specific bus stop id */
+ (l.y-rl.y)*(l.y-rl.y) ) AND r.ord_id >= cb.ord_id
< rl.radius; AND cb.stn_id = bus.stn_id
ORDER BY r.ord_id-cb.ord_id, bus.bus_no ASC;
DEBS’11, July 11–15, 2011, New York, New York, USA.