Stream Processing Optimizations Scott Schneider IBM Thomas J. - - PowerPoint PPT Presentation

stream processing optimizations
SMART_READER_LITE
LIVE PREVIEW

Stream Processing Optimizations Scott Schneider IBM Thomas J. - - PowerPoint PPT Presentation

Stream Processing Optimizations Scott Schneider IBM Thomas J. Watson Research Center New York, USA Martin Hirzel IBM Thomas J. Watson Research Center New York, USA Bu ra Gedik Computer Engineering Department Bilkent University Ankara,


slide-1
SLIDE 1

Stream Processing Optimizations

Scott Schneider IBM Thomas J. Watson Research Center New York, USA Martin Hirzel IBM Thomas J. Watson Research Center New York, USA Buğra Gedik Computer Engineering Department Bilkent University Ankara, Turkey

slide-2
SLIDE 2

Agenda

9:00-10:30

Overview and background (40 minutes) Optimization catalog (50 minutes)

11:00-12:30

SPL and InfoSphere Streams background (25 minutes) Fission (40 minutes) Open research questions (25 minutes)

slide-3
SLIDE 3

DEBS’13 Tutorial: Stream Processing Optimizations

Scott Schneider, Martin Hirzel, and Buğra Gedik Acknowledgements: Robert Soulé, Robert Grimm, Kun-Lung Wu

Part 1: Overview and Background

slide-4
SLIDE 4

Telco analyses streaming network data to reduce hardware costs by 90% Hospital analyses streaming vitals to detect illness 24

hours earlier

Utility avoids power failures by analysing 10

PB of data in minutes

slide-5
SLIDE 5

Catalog of Streaming Optimizations

Streaming applications:

graph of streams and

  • perators

Performance is an

important requirement

Different communities → different terminology

e.g. operator/box/filter; hoisting/push-down

Different communities → different assumtions

e.g. acyclic graphs/arbitrary graphs; shared memory/distributed

Catalouge of optimizations

Uniform terminology Safety & profitability conditions Interactions among optimizations

slide-6
SLIDE 6

Fission Optimization

High throughput processing is a critical requirement

Multiple cores and/or host machines System and language level techniques

Application characteristics limit the speedup brought

by optimizations

pipeline depth (# of ops), filter selectivity

Data parallelism is an exception

number of available cores (can be scaled)

Fission

Data parallelism optimization in streaming applications How to apply transparently, safely, and adaptively?

slide-7
SLIDE 7

Background

  • Operator graph
  • Operators connected by streams
  • Stream
  • A series of data items
  • Data item
  • A set of attributes
  • Operator
  • Generic data manipulator
  • Has input and output ports
  • Streams connect output ports to input ports
  • FIFO semantics
  • Source operator, no input ports
  • Sink operator, no output ports
  • Operator firing
  • Perform processing, produce data items
slide-8
SLIDE 8

State in Operators

  • Partitioned stateful operators
  • Maintain independent state for non-overlapping sub-streams
  • These sub-streams are identified by a partitioning attribute
  • E.g.: For each stock symbol in a financial trading stream, compute the volume

weighted average price over the last 10 transactions. The partitioning attribute: stock symbol.

  • Stateful operators
  • Maintain state across firings
  • E.g., deduplicate: pass data

items not seen recently

  • Stateless operators
  • Do not maintain state across firings
  • E.g., filter: pass data items with

values larger than a threshold

slide-9
SLIDE 9

Selectivity of Operators

Selectivity

the number of data items produced per data item consumed e.g., selectivity=0.1 means

1 data item is produced for every 10 consumed

used in establishing safety and profitability

Dynamic selectivity

selectivity value is

not known at development time can change at run-time

e.g., data-dependent filtering, compression, or aggregates

  • n time-based windows
slide-10
SLIDE 10

Selectivity Categories

  • Selectivity categories (singe input/output operators)
  • Exactly-once (=1): one in; one out [always]
  • At-most-once (≤1): one in; zero or one out [always]
  • Prolific (≥1): one in; one, or more out [sometimes]
  • Synchronous data flow (SDF) languages
  • Assume that the selectivity of each operator is fixed and known at

compile time

  • Provide good optimization opportunities at the cost of reduced

application flexibility

  • Typically used for signal processing applications
  • Unlike SDF, we assume dynamic selectivity
  • Support general-purpose streaming
  • Selectivity categories are used to fine-tune optimizations
slide-11
SLIDE 11

Streaming Programming Models

Synchronous

  • Static selectivity

e.g., 1 : 3

for i in range(3): result = f(i) submit(result)

In general, m : n where

m and n are statically known

Always has static

schedule

Asynchronous

  • Dynamic selectivity

e.g., 1 : [0,1]

if input.value > 5: submit(result)

In general, 1 : * In general, schedules

cannot be static

slide-12
SLIDE 12

Flavors of Parallelism

There are three main forms of parallelism in streaming

applications

Pipeline, task, and data parallelism

Pipeline and task parallelism are inherent in the graph

X Y a b pipeline X Y a a task

an operator processes a data item at the same time its upstream operator processes the next data item different operators process a data item produced by their common upstream operator, at the same time

slide-13
SLIDE 13

Data Parallelism

Data parallelism needs to be extracted from the application

Morph the graph

Split: distribute to replicas Replicate: do data parallel processing Merge: put results back together

Requires additional mechanisms to preserve application

semantics

Maintaining the order of tuples Making sure state is partitioned correctly

X a X a X a X b c X

different data items from the same stream are processed by the replicas of an operator, at the same time

slide-14
SLIDE 14

Safety and Profitability

Safety: an optimization is safe if applying it is

guaranteed to maintain the semantics

State (stateless & partitioned stateful)

Parallel region formation, splitting tuples

Selectivity

Result ordering, splitting and merging tuples

Profitability: an optimization in profitable if it

increases the performance (throughput)

Transparency: Does not require developer input Adaptivity: Adapt to resource and workload

availability

slide-15
SLIDE 15

Adaptive Optimization

When the workload increases, more resources

should be requested

In the context of data parallelism

How many parallel channels to use at a given time

Maintaining SASO properties is a challenge

Stability: do not oscillate wildly Accuracy: eventually find the most profitable

  • perating point

Settling time: quickly settle on an operating point Overshoot: steer away from disastrous settings

slide-16
SLIDE 16

Publications

  • M. Hirzel, R. Soulé, S. Schneider, B. Gedik, and R. Grimm. A catalog of stream processing
  • ptimizations. Technical Report RC25215, IBM Research, 2011. Conditionally accepted to

ACM Computing Surveys, minor revisions pending.

  • S. Schneider, M. Hirzel, B. Gedik, and K-L. Wu. Auto-Parallelizing Stateful Distributed

Streaming Applications, International Conference on Parallel Architectures and Compilation Techniques (PACT), 2012.

  • R. Soulé, M. Hirzel, B. Gedik, and R. Grimm. From a Calculus to an Execution Environment

for Stream Processing, International Conference on Distributed Event Based Systems, ACM (DEBS), 2012.

  • Y. Tang and B. Gedik. Auto-pipelining for Data Stream Processing, Transactions on Parallel

and Distributed Systems, IEEE (TPDS), ISSN: 1045-9219, DOI: 10.1109/TPDS.2012.333, 2012.

  • H. Andrade, B. Gedik, K-L. Wu, and P. S. Yu. Processing High Data Rate Streams in

System S, Journal of Parallel and Distributed Computing - Special Issue on Data Intensive Computing, Elsevier (JPDC), Volume 71, Issue 2, 145-156, 2011.

  • R. Khandekar, K. Hildrum, S. Parekh, D. Rajan, J. Wolf, H. Andrade, K-L. Wu, and B. Gedik.

COLA: Optimizing Stream Processing Applications Via Graph Partitioning, International Middleware Conference, ACM/IFIP/USENIX (Middleware), 2009.

  • B. Gedik, H. Andrade, and K-L. Wu. A Code Generation Approach to Optimizing High-

Performance Distributed Data Stream Processing, International Conference on Information and Knowledge Management, ACM (CIKM), 2009.

  • S. Schneider, H. Andrade, B. Gedik, A. Biem, and K-L. Wu. Elastic Scaling of Data Parallel

Operators in Stream Processing, International Parallel and Distributed Processing Symposium, IEEE (IPDPS), 2009.

  • SPL Language Reference. IBM Research Report RC24897, 2009.
slide-17
SLIDE 17

DEBS’13 Tutorial: Stream Processing Optimizations

Scott Schneider, Martin Hirzel, and Buğra Gedik Acknowledgements: Robert Soulé, Robert Grimm, Kun-Lung Wu

Part 2: Optimization Catalog

slide-18
SLIDE 18

Motivation

  • Catalog = survey,

but organized as easy reference

  • Use cases:

– User: understand optimized code; hand-implement optimizations – System builder: automate optimizations; avoid interference with other features – Researcher: literature survey (see paper);

  • pen research issues

2

slide-19
SLIDE 19

Stream Optimization Literature

Conflicting terminology

  • Operator = filter = box = stage

= actor = module

  • Data item = tuple = sample
  • Join = relational vs. any merge
  • Rate = speed vs. selectivity

Unstated assumptions

  • Missing safety conditions
  • Missing profitability trade-offs
  • Any graph vs. forest vs.

single-entry, single-exit region

  • Shared-memory vs. distributed

3

DSP (digital signal processing) Operating systems and networks DB (databases) CEP (complex event processing) Stream Optimization

slide-20
SLIDE 20

Optimization Name

Key idea.

4

  • Preconditions for

correctness

  • Most influential

published papers Safety Profitability Variations Dynamism

  • How to optimize at runtime

Graph before Graph after

Throughput (higher is better) Central trade-off factor

  • Micro-benchmark
  • Runs in SPL
  • Relative numbers
  • Error bars are standard

deviation of 3+ runs

slide-21
SLIDE 21

List of Optimizations

Operator reordering Redundancy elimination Operator separation Fusion Fission Placement Load balancing State sharing Batching Algorithm selection Load shedding

5

Graph changed Graph unchanged Semantics unchanged Semantics changed

slide-22
SLIDE 22

Operator Reordering

Change the order in which operators appear in the graph.

6

  • Commutative
  • Attributes available
  • Algebraic
  • Commutativity analysis
  • Synergies, e.g. fusion, fission

Safety Profitability Variations Dynamism

  • Eddy
slide-23
SLIDE 23

Redundancy Elimination

Eliminate operators that are redundant in the graph.

7

  • Same algorithm
  • Data available
  • Many-query optimization
  • Eliminate no-op
  • Eliminate idempotent operator
  • Eliminate dead subgraph

Safety Profitability Variations Dynamism

  • In many-query case:

share at submission time

slide-24
SLIDE 24

Operator Separation

Separate an operator into multiple constituent operators.

8

  • Ensure A1(A2(s)) = A(s)

Safety Profitability Dynamism

  • N/A
  • Algebraic
  • Using special API
  • Dependency analysis
  • Enables reordering

Variations

slide-25
SLIDE 25

Fusion

Fuse multiple separate operators into a single operator.

9

  • Have right resources
  • Have enough resources
  • No infinite recursion

Safety Profitability Dynamism

  • Online recompilation
  • Transport operators
  • Single vs. multiple threads
  • Fusion enables traditional

compiler optimizations Variations

slide-26
SLIDE 26

10

Safety Profitability Dynamism

  • Elastic operators (learn width)
  • STM (resolve conflicts)

Fission

Replicate an operator for data-parallel execution.

  • Round-robin (no state)
  • Hash by key (disjoint state)
  • Duplicate

Variations

  • No state or disjoint state
  • Merge in order, if needed
slide-27
SLIDE 27

Placement

Place the logical graph onto physical machines and cores.

11

  • Have right resources
  • Have enough resources
  • Obey license/security
  • If dynamic, need migratability

Safety Profitability Dynamism

  • Submission-time
  • Online, via operator migration
  • Based on host resources vs.

network resources, or both

  • Automatic vs. user-specified

Variations

slide-28
SLIDE 28

Load Balancing

Avoid bottleneck operators by spreading the work evenly.

12

Safety Profitability Dynamism

  • Easier for routing than placement
  • Balancing work while

placing operators

  • Balancing work by

re-routing data Variations

  • Avoid starvation
  • Ensure each worker is

equally qualified

  • Establish placement safety
slide-29
SLIDE 29

State Sharing

Share identical data stored in multiple places in the graph.

13

Safety Profitability Dynamism

  • N/A
  • Sharing queues
  • Sharing windows
  • Sharing operator state

Variations

  • Common access

(usually: fusion)

  • No race conditions
  • No memory leaks
slide-30
SLIDE 30

Batching

Communicate or compute over multiple data items as a unit.

14

Safety Profitability Dynamism

  • Batching controller
  • Train scheduling
  • Batching enables traditional

compiler optimizations Variations

  • No deadlocks
  • Satisfy deadlines
slide-31
SLIDE 31

Algorithm Selection

Replace an operator by a different operator.

15

Safety Profitability Dynamism

  • Compile both versions, then

select via control port

  • Algebraic
  • Auto-tuners
  • General vs. specialized

Variations

  • Aα(s) Aβ(s)
  • May not need to be safe
slide-32
SLIDE 32

Load Shedding

Degrade gracefully during overload situations.

16

Safety Profitability Dynamism

  • Always dynamic
  • Filtering data items

(variations: where in graph)

  • Algorithm selection

Variations

  • By definition, not safe!
  • QoS trade-off
slide-33
SLIDE 33

To Learn More

  • DEBS’13 proceedings:

“Tutorial: Stream Processing Optimizations”

  • “A Catalog of Stream Processing Optimizations”,

Martin Hirzel, Robert Soulé, Scott Schneider, Buğra Gedik, and Robert Grimm. IBM Research Report RC25215, 28 September 2011.

  • “A Catalog of Stream Processing Optimizations”,

Martin Hirzel, Robert Soulé, Scott Schneider, Buğra Gedik, and Robert Grimm. ACM Computing Surveys (CSUR). Conditionally accepted, minor revisions pending.

17

slide-34
SLIDE 34

DEBS’13 Tutorial: Stream Processing Optimizations

Scott Schneider, Martin Hirzel, and Buğra Gedik Acknowledgements: Robert Soulé, Robert Grimm, Kun-Lung Wu

Part 3: InfoSphere Streams Background

slide-35
SLIDE 35

2

Streams Programming Model

  • Streams applica4ons are data flow graphs that

consist of:

– Tuples: structured data item – Operators: reusable stream analy4cs – Streams: series of tuples with a fixed type – Processing Elements: operator groups in execu4on

slide-36
SLIDE 36

Streams Processing Language

composite Main { type Entry = int32 uid, rstring server, rstring msg; Sum = uint32 uid, int32 total; graph stream<Entry> Msgs = ParSource() { param servers: "logs.*.com"; partitionBy: server; }

  • stream<Sum> Sums = Aggregate(Msgs) {

window Msgs: tumbling, time(5), partitioned; param partitionBy: uid; }

  • stream<Sum> Suspects = Filter(Sums) {

param filter: total > 100; }

  • () as Sink = FileSink(Suspects) {

param file: "suspects.csv"; } }

3

ParSrc Aggr Filter Sink

slide-37
SLIDE 37

SPL: Immutable by Default

stream<Data> Out = Custom(In) { logic state: mutable int32 count_ = 0;

  • nTuple In: {

++count_; submit({count=count_}, Out); } }

4

stream<Data> Out = Custom(In) { logic state: int32 factor_ = 42;

  • nTuple In: {

submit({result=In.val*factor_}, Out); } }

immutable by default straight‐forward to sta4cally determine this is a stateless operator explicitly mutable straight‐forward to sta4cally determine this is a statelful operator

slide-38
SLIDE 38

SPL: Generic Primi4ve Operators

SPL compiler

{Aggregate {parameters {groupBy optional Expression} {partitionBy optional Expression}} {inputPorts 1 required windowed} {outputPorts 1 required} } stream<Sum> Sums = Aggregate(Msgs) { window Msgs: tumbling, time(5), partitioned; param partitionBy: uid; }

Aggregate defini4on Aggregate instance code an Aggregate invoca4on the Aggregate operator model

slide-39
SLIDE 39

6

SPL source

x86 host x86 host x86 host x86 host x86 host

PE PE PE PE PE PE PE PE

Connec4ons

Source Sink PE

SPL compiler Streams Run4me

Source  Compila4on  Execu4on

6

slide-40
SLIDE 40

7

SPL source

x86 host x86 host x86 host x86 host x86 host

PE PE PE PE PE PE PE PE

Connec4ons

Source Sink PE

SPL compiler Streams Run4me

Source  Compila4on  Execu4on

7

slide-41
SLIDE 41

8

x86 host x86 host x86 host x86 host x86 host

PE PE Sink Source Source PE PE PE PE Sink Sink PE PE PE PE PE PE PE PE

Connec4ons

Source Sink PE

SPL compiler Streams Run4me

(Job management, Security, Con4nuous Resource Management)

Source  Compila4on  Execu4on

8

slide-42
SLIDE 42

DEBS’13 Tutorial: Stream Processing Optimizations

Scott Schneider, Martin Hirzel, and Buğra Gedik Acknowledgements: Robert Soulé, Robert Grimm, Kun-Lung Wu

Part 4: Fission Deep Dive

slide-43
SLIDE 43

Fission Overview

composite Main { type Entry = int32 uid, rstring server, rstring msg; Sum = uint32 uid, int32 total; graph stream<Entry> Msgs = ParSource() { param servers: "logs.*.com"; partitionBy: server; }

  • stream<Sum> Sums = Aggregate(Msgs) {

window Msgs: tumbling, time(5), partitioned; param partitionBy: uid; }

  • stream<Sum> Suspects = Filter(Sums) {

param filter: total > 100; }

  • () as Sink = FileSink(Suspects) {

param file: "suspects.csv"; } } 2

ParSrc Aggr Filter Sink ParSrc Aggr Filter ParSrc Aggr Filter Sink ParSrc Aggr Filter

slide-44
SLIDE 44

Technical Overview

3

Run$me:

  • Replicate segment into channels
  • Add split/merge/shuffle as needed
  • Enforce ordering

Compiler:

  • Apply parallel transformaAons
  • Pick rouAng mechanism (e.g., hash by key)
  • Pick ordering mechanism (e.g., seq. numbers)

ADL

slide-45
SLIDE 45

TransformaAons

Parallelize non‐source/sink Parallelize sources and sinks Combine parallel regions Rotate merge and split Examples:

  • OPRA source
  • Database sink

Also known as shuffle

Do all of the above as much as possible, wherever it is safe to do so.

4

slide-46
SLIDE 46

Core Challenges

  • State

– Problem: No shared memory between channels (parAAoned local state) – Solu$on: Only parallelize if stateless or parAAoned (i.e., separate state into channels by keys)

  • Order

– Problem: Race condiAons between channels (independent threads of control) – Solu$on: Only parallelize if merge can guarantee same tuple order as without parallelizaAon

5

slide-47
SLIDE 47

Safety CondiAons

Parallelize non‐source/sink Parallelize sources and sinks Combine parallel regions Rotate merge and split

  • stateless or

parAAoned state

  • simple chain
  • stateless or

parAAoned state

  • stateless
  • r
  • compaAble keys
  • forwarding
  • incompaAble

keys

  • selecAvity ≤ 1

6

slide-48
SLIDE 48

Select Parallel Segments

7

  • Can't parallelize

– Operators with >1 fan‐in or fan‐out – PunctuaAon dependecy later on

  • Can't add operator to parallel segment if

– Another operator in segment has co‐locaAon constraint – Keys don't match

  • 8
  • 1
  • 7

n.p.

  • 2
  • 9

k

  • 10

k,l

  • 12

l

  • 11

l

  • 13
  • 14
  • 3

n.p.

  • 4
  • 5
  • 6

k

slide-49
SLIDE 49

Submission‐Ame Compile‐Ame

Constraints & Fusion

8

Select parallel segments Infer parAAon colocaAon Fusion Expand parallel segments Check placement constraints Place parAAons

  • n hosts

ADL

slide-50
SLIDE 50

Compiler to RunAme

9

Compiler Graph + unexpanded parallel regions Fully expanded graph RunAme graph fragment RunAme graph fragment RunAme graph fragment PE PE PE compile-time submission-time run-time

slide-51
SLIDE 51

RunAme

state selec$vity

gaps dups ra$o

round‐robin ✗ ✗ ✗ 1 : 1 seqno par''oned ✗ ✗ 1 : 1 strict seqno & pulse par''oned ✓ ✗ 1 : [0,1] relaxed seqno & pulse par''oned ✓ ✓ 1 : [0,∞]

10

Split:

  • Insert seqno & pulse
  • RouAng

Merge:

  • Apply ordering

policy

  • Remove seqno (if

there) and drop pulse (if there) Operators in parallel segments:

  • Forward seqno & pulse
slide-52
SLIDE 52

Merger Ordering

11

nextHeap 1 2 7 10 13 6 9 12 15 lastSeqno = 4 5 Sequence Numbers channels next 1 2 Round-Robin channels nextHeap 1 2 10 16 22 6 12 18 24 lastSeqno = 4 8 seenHeap Strict Sequence Number & Pulses channels nextHeap 1 2 7 7 7 5 lastSeqno = 4 lastChan = 0 seenHeap Relaxed Sequence Number & Pulses 7 channels

slide-53
SLIDE 53

ApplicaAon Kernel Performance

1 2 4 8 16 32 2 4 6 8 10 12 14 16 18 20 22 3.2 11.4 21.1 20.2 14.4

Network monitoring Twitter NLP PageRank Twitter CEP Finance

Number of parallel channels Speedup vs. 1 channel

Parse Match NLP rk monitoring (c) Twitter NLP (d) Twitter CEP

≤1 ≤1

Vwap Project Combine Bargains Trades Quotes (d (e) Finance ParSrc Aggr Filter Aggr Filter ParSink (a) Network monitoring

≤1 ≤1 ≤1 ≤1

MulAdd Add Chop While Sink Init (b) PageRank

≤1

slide-54
SLIDE 54

ElasAcity: The Problem

  • What is N? We want to:

– find it dynamically, at runAme – automaAcally, with no user intervenAon – in the presence of stateless and parAAoned stateful operators – maximize throughput

F1 Split F2 F3 Merge FN

Σ1 Σ2 Σ3 ΣN

13

slide-55
SLIDE 55

ElasAcity: SoluAon Sketch

F1 Split F2 F3 Merge Σ1 Σ2 Σ3 F4 F5 Σ4 Σ5

local control, adapta,on global storage, synchroniza,on

14

slide-56
SLIDE 56

DEBS’13 Tutorial: Stream Processing Optimizations

1

Scott Schneider, Martin Hirzel, and Buğra Gedik Acknowledgements: Robert Soulé, Robert Grimm, Kun-Lung Wu

Part 6: Open Research Questions

slide-57
SLIDE 57

Programming Model Challenges

2

CEP patterns StreamDatalog StreamSQL StreamIt (MIT) Graph GUI SPL Java API Annotated C C/Fortran High-level Easy to use Optimizable Low-level General Predictable Other challenges

  • Foreign code
  • Familiarity
slide-58
SLIDE 58

Interaction of SPL and C++

3 Operator instance (C++) Application source code (SPL) Operator model (XML) Operator instance model (XML) Streaming platform Application model (XML) At compile time At run time Stream of input data items Stream of

  • utput

data items SPL Compiler Operator code generator

slide-59
SLIDE 59

Optimization Combination

4

Operator reordering Operator separation Algorithm selection Load shedding Fission Fusion Redundancy elimination Placement State sharing Load balancing Batching

Challenges

  • If separate:
  • rder
  • If combined:

profitability model

slide-60
SLIDE 60

Interaction with Traditional Compiler Analysis

5

Operator reordering Operator separation Algorithm selection Load shedding Fission Fusion Redundancy elimination Placement State sharing Load balancing Batching

Challenges:

  • State
  • Ordering
  • Selectivity
  • Key forwarding

Traditional compiler analyses

slide-61
SLIDE 61

Interaction with Traditional Compiler Optimizations

6

Operator reordering Operator separation Algorithm selection Load shedding Fission Fusion Redundancy elimination Placement State sharing Load balancing Batching Traditional compiler analyses Traditional compiler optimizations

Challenges:

  • Inlining
  • Loop unrolling
  • Deforestation
  • Scalarization
slide-62
SLIDE 62

Dynamic Optimization

7

Compile time Submission time Runtime discrete Runtime continuous Operator reordering Redundancy elimination Operator separation Fusion Fission Load balancing Placement State sharing Batching Algorithm selection Load shedding Other challenges:

  • Settling
  • Accuracy
  • Stability
  • Overshoot
slide-63
SLIDE 63

Dynamic Operator Reordering

8

Approach: Emulate graph change via data-item routing. Example: Eddies [Avnur, Hellerstein SIGMOD’00]

slide-64
SLIDE 64

Benchmarks

Wish List

  • Representative

– … of real code – … of real inputs

  • Fast enough to conduct

many experiments

  • Fully automated / scripted
  • Self-validating
  • Open-source with

industry-friendly license Literature

  • LinearRoad

[Arasu et al. VLDB’04]

  • BiCEP

[Mendes, Bizarro, Marques TPC TC’09]

  • StreamIt

[Thies, Amarasinghe PACT’10]

9

slide-65
SLIDE 65

Generality of Optimizations

10

Safe Profitable and/or common Supported

Challenges

  • Expand

“Supported”

  • In the right

direction

slide-66
SLIDE 66

Generality of Fission

11

Safe Profitable and/or common Supported

State Ordering Topology User code Stateless Static selectivity Single

  • perator

Built-in

  • perators

Partitioned stateful Simple pipeline Streaming language Arbitrary stateful Dynamic selectivity Arbitrary subgraph Foreign language

Challenges

  • Expand

“Supported”

  • In the right

direction