Font Size: a A A

Real time stream processing for internet of things and sensing environments

Posted on:2016-01-05Degree:M.SType:Thesis
University:Colorado State UniversityCandidate:Hewa Raga Munige, ThilinaFull Text:PDF
GTID:2478390017983825Subject:Computer Science
Abstract/Summary:
Improvements in miniaturization and networking capabilities of sensors have contributed to the proliferation of Internet of Things (IoT) and continuous sensing environments. Data streams generated in such settings must keep pace with generation rates and be processed in real time. Challenges in accomplishing this include: high data arrival rates, buffer overflows, context-switches during processing, and object creation overheads. We propose a holistic framework that addresses the CPU, memory, network, and kernel issues involved in stream processing. Our prototype, Neptune, builds on the Granules cloud runtime and leverages its support for scheduling packets and communications based on publish/subscribe, peer to peer, and point-to-point. The framework maximizes bandwidth utilization in the presence of small messages via the use of buffering and dynamic compactions of packets based on their entropy. Our use of thread-pools and batched processing reduces context switches and improves effective CPU utilizations. The framework alleviates memory pressure that can lead to swapping, page faults, and thrashing through efficient reuse of objects. To cope with buffer overflows we rely on flow control and throttling the preceding stages of a processing pipeline. Our correctness criteria included deadlock/livelock avoidance, and ordered and exactly-once processing. Our benchmarks demonstrate the suitability of the Granules/Neptune combination and we contrast our performance with Apache Storm, the dominant stream-processing framework developed by Twitter. At a single node, we are able to achieve a processing rate of ∼2 million stream packets per-second. In a distributed cluster setup, we are able to achieve a processing rate of ∼100 million stream packets per-second with a near-optimal bandwidth utilization.
Keywords/Search Tags:Processing, Stream, Packets
Related items