/*
-
All the pre-existing code and data are subject to their own licenses.
-
All the programs resulted from this project are under FreeBSD license.
-
Copyright (c) 2016-2017, Purdue University
-
All rights reserved.
-
Redistribution and use in source and binary forms, with or without
-
modification, are permitted provided that the following conditions are met:
-
- Redistributions of source code must retain the above copyright notice,
-
this list of conditions and the following disclaimer.
-
- Redistributions in binary form must reproduce the above copyright notice,
-
this list of conditions and the following disclaimer in the documentation
-
and/or other materials provided with the distribution.
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
-
THE POSSIBILITY OF SUCH DAMAGE.
-
The views and conclusions contained in the software and documentation are
-
those of the authors and should not be interpreted as representing official
-
policies, either expressed or implied, of Purdue University. */
- Overview: Stream analytics on real-time events has an insatiable demand for throughput and latency. Its performance on a single machine is central to meeting this demand, even in a distributed system. StreamBox is a novel stream processing engine that:
- Exploits the parallelism and memory hierarchies in modern multicore hardware.
- Supports out-of-order data processing.
- Scales to a large number of cores.
- Achieves throughput on-par with distributed engines on medium-size clusters.
- Delivers latencies in the tens of milliseconds, which are 20× shorter than other large-scale streaming engines.
- Follows the Google dataflow (Apache Beam) programming model.
- Build & Run:
2.1 Dependencies
/Ubuntu 16.04/
$sudo apt-get install
g++
libtbb-dev
automake
autoconf
autoconf-archive
libtool
libboost-all-dev
libevent-dev
libdouble-conversion-dev
libgoogle-glog-dev
libgflags-dev
liblz4-dev
liblzma-dev
libsnappy-dev
make
zlib1g-dev
binutils-dev
libjemalloc-dev
libssl-dev
2.2 Set compilation parameters Edit /path/to/streambox/CMakeLists.txt
2.3 Build applications
/path/to/streambox
/Build wc/
$make test-wc.bin
2.4 Run test-wc $./test-wc.bin