From b9511a0598f6e9e9d6048809fad8bacc366ff376 Mon Sep 17 00:00:00 2001 From: Sebastian Kruse Date: Thu, 8 Sep 2016 00:56:56 +0530 Subject: [PATCH] add notebook that demonstrates learning of cost functions --- notebooks/cost-functions/cardinalities.json | 480 +++++++++++++++ .../cost-functions/cost-functions.properties | 55 ++ notebooks/cost-functions/executions.json | 60 ++ notebooks/cost-functions/profiledb.json | 30 + notebooks/cost-functions/rheem.properties | 67 +++ .../cost-functions/wordcount-scaling.ipynb | 565 ++++++++++++++++++ .../wordcount-visualization.ipynb | 208 +++++++ .../examples/rheem-examples.ipynb | 221 ++++--- notebooks/examples/rheem.properties | 5 + .../github/sekruse/pagerank/PageRank.scala | 1 - 10 files changed, 1619 insertions(+), 73 deletions(-) create mode 100644 notebooks/cost-functions/cardinalities.json create mode 100644 notebooks/cost-functions/cost-functions.properties create mode 100644 notebooks/cost-functions/executions.json create mode 100644 notebooks/cost-functions/profiledb.json create mode 100644 notebooks/cost-functions/rheem.properties create mode 100644 notebooks/cost-functions/wordcount-scaling.ipynb create mode 100644 notebooks/cost-functions/wordcount-visualization.ipynb rename rheem-examples.ipynb => notebooks/examples/rheem-examples.ipynb (65%) create mode 100644 notebooks/examples/rheem.properties diff --git a/notebooks/cost-functions/cardinalities.json b/notebooks/cost-functions/cardinalities.json new file mode 100644 index 0000000..09fdac6 --- /dev/null +++ b/notebooks/cost-functions/cardinalities.json @@ -0,0 +1,480 @@ +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":133697,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":133697}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":136034},"inputs":[{"upperBound":11984,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":11984}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":133697},"inputs":[{"upperBound":136034,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":136034}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":408102,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":408102}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":401091},"inputs":[{"upperBound":401091,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":401091}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":408102},"inputs":[{"upperBound":35952,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":35952}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1360340,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1360340}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1360340},"inputs":[{"upperBound":119840,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":119840}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":1336970},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":1336970,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1336970}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4081020,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4081020}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4010910},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":4081020},"inputs":[{"upperBound":359520,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":359520}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":4010910,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":4010910}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13603400},"inputs":[{"upperBound":1198400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":1198400}],"operator":{"class":"org.qcri.rheem.basic.operators.FlatMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaMapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.MapOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.java.operators.JavaFilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":13369700},"inputs":[{"upperBound":13603400,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13603400}],"operator":{"class":"org.qcri.rheem.basic.operators.FilterOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}} +{"output":{"name":"out","index":0,"cardinality":7848},"inputs":[{"upperBound":13369700,"confidence":1,"name":"in","isBroadcast":false,"index":0,"lowerBound":13369700}],"operator":{"class":"org.qcri.rheem.basic.operators.ReduceByOperator"}} diff --git a/notebooks/cost-functions/cost-functions.properties b/notebooks/cost-functions/cost-functions.properties new file mode 100644 index 0000000..12d09b8 --- /dev/null +++ b/notebooks/cost-functions/cost-functions.properties @@ -0,0 +1,55 @@ +# Here go the learned cost functions... +rheem.java.reduceby.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${0.9691075617570686*in0 + 179.58079684227764*out0 + 23.652186277726912}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.localcallbacksink.load = {\ + "in":1,\ + "out":0,\ + "cpu":"${10.662676041238914*in0 + 698273.3774416123}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.textfilesource.load = {\ + "in":0,\ + "out":1,\ + "cpu":"${6.706230156985611*out0 + 116946.86108530796}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.filter.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${1.8101285013854862*in0 + 0.10522799511388539*out0 + 174508.14960646234}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.map.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${3.786263829086864*in0 + 712651.7791312812}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.flatmap.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${7.6590772571940064*in0 + 3.1164436836959934*out0 + 464218.1441863766}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} \ No newline at end of file diff --git a/notebooks/cost-functions/executions.json b/notebooks/cost-functions/executions.json new file mode 100644 index 0000000..9200657 --- /dev/null +++ b/notebooks/cost-functions/executions.json @@ -0,0 +1,60 @@ +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.16244999999999998,"lower":1252200,"upper":1270883000},"utilization":1,"ram":{"prob":0.16244999999999998,"lower":1252200,"upper":1270883000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"outputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":226400,"upper":2504017000},"utilization":1,"ram":{"prob":0.146205,"lower":226400,"upper":2504017000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":225200,"upper":2491434000},"utilization":1,"ram":{"prob":0.146205,"lower":225200,"upper":2491434000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.0106879510125,"lower":114837,"upper":1259432174},"utilization":1,"ram":{"prob":0.0106879510125,"lower":114837,"upper":1259432174},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":166} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":3} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.16244999999999998,"lower":3739100,"upper":3794570000},"utilization":1,"ram":{"prob":0.16244999999999998,"lower":3739100,"upper":3794570000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"outputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":676400,"upper":7476430000},"utilization":1,"ram":{"prob":0.146205,"lower":676400,"upper":7476430000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":673000,"upper":7438860000},"utilization":1,"ram":{"prob":0.146205,"lower":673000,"upper":7438860000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.0106879510125,"lower":343299,"upper":3760380624},"utilization":1,"ram":{"prob":0.0106879510125,"lower":343299,"upper":3760380624},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":261} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.16244999999999998,"lower":12463800,"upper":12648735000},"utilization":1,"ram":{"prob":0.16244999999999998,"lower":12463800,"upper":12648735000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"outputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":2254600,"upper":24921765000},"utilization":1,"ram":{"prob":0.146205,"lower":2254600,"upper":24921765000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":2243200,"upper":24796530000},"utilization":1,"ram":{"prob":0.146205,"lower":2243200,"upper":24796530000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.0106879510125,"lower":1144128,"upper":12534770248},"utilization":1,"ram":{"prob":0.0106879510125,"lower":1144128,"upper":12534770248},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":956} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.16244999999999998,"lower":37391600,"upper":37946205000},"utilization":1,"ram":{"prob":0.16244999999999998,"lower":37391600,"upper":37946205000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"outputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":6764400,"upper":74765295000},"utilization":1,"ram":{"prob":0.146205,"lower":6764400,"upper":74765295000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":6730400,"upper":74389590000},"utilization":1,"ram":{"prob":0.146205,"lower":6730400,"upper":74389590000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.0106879510125,"lower":3432889,"upper":37604309743},"utilization":1,"ram":{"prob":0.0106879510125,"lower":3432889,"upper":37604309743},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":1509} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.16244999999999998,"lower":124638900,"upper":126487552000},"utilization":1,"ram":{"prob":0.16244999999999998,"lower":124638900,"upper":126487552000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"outputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":22548200,"upper":249218048000},"utilization":1,"ram":{"prob":0.146205,"lower":22548200,"upper":249218048000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.146205,"lower":22434800,"upper":247965696000},"utilization":1,"ram":{"prob":0.146205,"lower":22434800,"upper":247965696000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.0106879510125,"lower":11442896,"upper":125347898676},"utilization":1,"ram":{"prob":0.0106879510125,"lower":11442896,"upper":125347898676},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":6205} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":12522400,"upper":138413000},"utilization":1,"ram":{"prob":0.1805,"lower":12522400,"upper":138413000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"outputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22654100,"upper":250401000},"utilization":1,"ram":{"prob":0.1805,"lower":22654100,"upper":250401000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22540200,"upper":249142000},"utilization":1,"ram":{"prob":0.1805,"lower":22540200,"upper":249142000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":11496628,"upper":125942817},"utilization":1,"ram":{"prob":0.016290125,"lower":11496628,"upper":125942817},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":81} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":2} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":37391200,"upper":413270000},"utilization":1,"ram":{"prob":0.1805,"lower":37391200,"upper":413270000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"outputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67644000,"upper":747643000},"utilization":1,"ram":{"prob":0.1805,"lower":67644000,"upper":747643000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67304000,"upper":743886000},"utilization":1,"ram":{"prob":0.1805,"lower":67304000,"upper":743886000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":34328385,"upper":376037662},"utilization":1,"ram":{"prob":0.016290125,"lower":34328385,"upper":376037662},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":224} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":124638800,"upper":1377585000},"utilization":1,"ram":{"prob":0.1805,"lower":124638800,"upper":1377585000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"outputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":225482900,"upper":2492176000},"utilization":1,"ram":{"prob":0.1805,"lower":225482900,"upper":2492176000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":224349800,"upper":2479652000},"utilization":1,"ram":{"prob":0.1805,"lower":224349800,"upper":2479652000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"utilization":1,"ram":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":956} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":373916400,"upper":4132755000},"utilization":1,"ram":{"prob":0.1805,"lower":373916400,"upper":4132755000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"outputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":676448700,"upper":7476529000},"utilization":1,"ram":{"prob":0.1805,"lower":676448700,"upper":7476529000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":673049400,"upper":7438958000},"utilization":1,"ram":{"prob":0.1805,"lower":673049400,"upper":7438958000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"utilization":1,"ram":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":2024} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"utilization":1,"ram":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"outputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"utilization":1,"ram":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"utilization":1,"ram":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"utilization":1,"ram":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":4877} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":12522400,"upper":138413000},"utilization":1,"ram":{"prob":0.1805,"lower":12522400,"upper":138413000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"outputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22654100,"upper":250401000},"utilization":1,"ram":{"prob":0.1805,"lower":22654100,"upper":250401000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22540200,"upper":249142000},"utilization":1,"ram":{"prob":0.1805,"lower":22540200,"upper":249142000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":11496628,"upper":125942817},"utilization":1,"ram":{"prob":0.016290125,"lower":11496628,"upper":125942817},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":116} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":37391200,"upper":413270000},"utilization":1,"ram":{"prob":0.1805,"lower":37391200,"upper":413270000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"outputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67644000,"upper":747643000},"utilization":1,"ram":{"prob":0.1805,"lower":67644000,"upper":747643000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67304000,"upper":743886000},"utilization":1,"ram":{"prob":0.1805,"lower":67304000,"upper":743886000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":34328385,"upper":376037662},"utilization":1,"ram":{"prob":0.016290125,"lower":34328385,"upper":376037662},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":174} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":124638800,"upper":1377585000},"utilization":1,"ram":{"prob":0.1805,"lower":124638800,"upper":1377585000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"outputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":225482900,"upper":2492176000},"utilization":1,"ram":{"prob":0.1805,"lower":225482900,"upper":2492176000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":224349800,"upper":2479652000},"utilization":1,"ram":{"prob":0.1805,"lower":224349800,"upper":2479652000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"utilization":1,"ram":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":866} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":373916400,"upper":4132755000},"utilization":1,"ram":{"prob":0.1805,"lower":373916400,"upper":4132755000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"outputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":676448700,"upper":7476529000},"utilization":1,"ram":{"prob":0.1805,"lower":676448700,"upper":7476529000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":673049400,"upper":7438958000},"utilization":1,"ram":{"prob":0.1805,"lower":673049400,"upper":7438958000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"utilization":1,"ram":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":1714} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"utilization":1,"ram":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"outputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"utilization":1,"ram":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"utilization":1,"ram":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"utilization":1,"ram":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":5943} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":12522400,"upper":138413000},"utilization":1,"ram":{"prob":0.1805,"lower":12522400,"upper":138413000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"outputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22654100,"upper":250401000},"utilization":1,"ram":{"prob":0.1805,"lower":22654100,"upper":250401000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22540200,"upper":249142000},"utilization":1,"ram":{"prob":0.1805,"lower":22540200,"upper":249142000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":11496628,"upper":125942817},"utilization":1,"ram":{"prob":0.016290125,"lower":11496628,"upper":125942817},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":74} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":37391200,"upper":413270000},"utilization":1,"ram":{"prob":0.1805,"lower":37391200,"upper":413270000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"outputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67644000,"upper":747643000},"utilization":1,"ram":{"prob":0.1805,"lower":67644000,"upper":747643000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67304000,"upper":743886000},"utilization":1,"ram":{"prob":0.1805,"lower":67304000,"upper":743886000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":34328385,"upper":376037662},"utilization":1,"ram":{"prob":0.016290125,"lower":34328385,"upper":376037662},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":254} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":124638800,"upper":1377585000},"utilization":1,"ram":{"prob":0.1805,"lower":124638800,"upper":1377585000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"outputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":225482900,"upper":2492176000},"utilization":1,"ram":{"prob":0.1805,"lower":225482900,"upper":2492176000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":224349800,"upper":2479652000},"utilization":1,"ram":{"prob":0.1805,"lower":224349800,"upper":2479652000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"utilization":1,"ram":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":561} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":373916400,"upper":4132755000},"utilization":1,"ram":{"prob":0.1805,"lower":373916400,"upper":4132755000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"outputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":676448700,"upper":7476529000},"utilization":1,"ram":{"prob":0.1805,"lower":676448700,"upper":7476529000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":673049400,"upper":7438958000},"utilization":1,"ram":{"prob":0.1805,"lower":673049400,"upper":7438958000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"utilization":1,"ram":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":1479} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"utilization":1,"ram":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"outputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"utilization":1,"ram":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"utilization":1,"ram":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"utilization":1,"ram":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":4817} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":12522400,"upper":138413000},"utilization":1,"ram":{"prob":0.1805,"lower":12522400,"upper":138413000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"outputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22654100,"upper":250401000},"utilization":1,"ram":{"prob":0.1805,"lower":22654100,"upper":250401000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22540200,"upper":249142000},"utilization":1,"ram":{"prob":0.1805,"lower":22540200,"upper":249142000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":11496628,"upper":125942817},"utilization":1,"ram":{"prob":0.016290125,"lower":11496628,"upper":125942817},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":177} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":2} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":37391200,"upper":413270000},"utilization":1,"ram":{"prob":0.1805,"lower":37391200,"upper":413270000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"outputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67644000,"upper":747643000},"utilization":1,"ram":{"prob":0.1805,"lower":67644000,"upper":747643000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67304000,"upper":743886000},"utilization":1,"ram":{"prob":0.1805,"lower":67304000,"upper":743886000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":34328385,"upper":376037662},"utilization":1,"ram":{"prob":0.016290125,"lower":34328385,"upper":376037662},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":225} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":2} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":124638800,"upper":1377585000},"utilization":1,"ram":{"prob":0.1805,"lower":124638800,"upper":1377585000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"outputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":225482900,"upper":2492176000},"utilization":1,"ram":{"prob":0.1805,"lower":225482900,"upper":2492176000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":224349800,"upper":2479652000},"utilization":1,"ram":{"prob":0.1805,"lower":224349800,"upper":2479652000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"utilization":1,"ram":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":541} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":373916400,"upper":4132755000},"utilization":1,"ram":{"prob":0.1805,"lower":373916400,"upper":4132755000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"outputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":676448700,"upper":7476529000},"utilization":1,"ram":{"prob":0.1805,"lower":676448700,"upper":7476529000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":673049400,"upper":7438958000},"utilization":1,"ram":{"prob":0.1805,"lower":673049400,"upper":7438958000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"utilization":1,"ram":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":1509} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"utilization":1,"ram":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"outputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"utilization":1,"ram":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"utilization":1,"ram":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"utilization":1,"ram":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":5255} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":12522400,"upper":138413000},"utilization":1,"ram":{"prob":0.1805,"lower":12522400,"upper":138413000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":11984,"confidence":1,"lowerBound":11984}],"outputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22654100,"upper":250401000},"utilization":1,"ram":{"prob":0.1805,"lower":22654100,"upper":250401000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":136034,"confidence":1,"lowerBound":136034}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":22540200,"upper":249142000},"utilization":1,"ram":{"prob":0.1805,"lower":22540200,"upper":249142000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":11496628,"upper":125942817},"utilization":1,"ram":{"prob":0.016290125,"lower":11496628,"upper":125942817},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":133697,"confidence":1,"lowerBound":133697}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":75} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":37391200,"upper":413270000},"utilization":1,"ram":{"prob":0.1805,"lower":37391200,"upper":413270000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":35952,"confidence":1,"lowerBound":35952}],"outputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67644000,"upper":747643000},"utilization":1,"ram":{"prob":0.1805,"lower":67644000,"upper":747643000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":408102,"confidence":1,"lowerBound":408102}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":67304000,"upper":743886000},"utilization":1,"ram":{"prob":0.1805,"lower":67304000,"upper":743886000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":34328385,"upper":376037662},"utilization":1,"ram":{"prob":0.016290125,"lower":34328385,"upper":376037662},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":401091,"confidence":1,"lowerBound":401091}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":213} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":124638800,"upper":1377585000},"utilization":1,"ram":{"prob":0.1805,"lower":124638800,"upper":1377585000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":119840,"confidence":1,"lowerBound":119840}],"outputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":225482900,"upper":2492176000},"utilization":1,"ram":{"prob":0.1805,"lower":225482900,"upper":2492176000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1360340,"confidence":1,"lowerBound":1360340}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":224349800,"upper":2479652000},"utilization":1,"ram":{"prob":0.1805,"lower":224349800,"upper":2479652000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"utilization":1,"ram":{"prob":0.016290125,"lower":114429566,"upper":1253476224},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1336970,"confidence":1,"lowerBound":1336970}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":525} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":1} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":373916400,"upper":4132755000},"utilization":1,"ram":{"prob":0.1805,"lower":373916400,"upper":4132755000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":359520,"confidence":1,"lowerBound":359520}],"outputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":676448700,"upper":7476529000},"utilization":1,"ram":{"prob":0.1805,"lower":676448700,"upper":7476529000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4081020,"confidence":1,"lowerBound":4081020}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":673049400,"upper":7438958000},"utilization":1,"ram":{"prob":0.1805,"lower":673049400,"upper":7438958000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"utilization":1,"ram":{"prob":0.016290125,"lower":343288799,"upper":3760430674},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":4010910,"confidence":1,"lowerBound":4010910}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":1864} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} +{"executions":[{"executions":1,"inputCards":[],"outputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"utilization":1,"ram":{"prob":0.1805,"lower":1246389100,"upper":13775872000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":1198400,"confidence":1,"lowerBound":1198400}],"outputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"utilization":1,"ram":{"prob":0.1805,"lower":2254831100,"upper":24921804000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13603400,"confidence":1,"lowerBound":13603400}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"utilization":1,"ram":{"prob":0.1805,"lower":2243500200,"upper":24796568000},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaMapOperator"}},{"executions":1,"nestedLoadProfile":{"disk":{"prob":1,"lower":0,"upper":0},"overhead":0,"cpu":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"utilization":1,"ram":{"prob":0.016290125,"lower":1144297276,"upper":12534789267},"network":{"prob":1,"lower":0,"upper":0}},"inputCards":[{"upperBound":13369700,"confidence":1,"lowerBound":13369700}],"outputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"operator":{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator"}}],"initPlatforms":[],"millis":5811} +{"executions":[{"executions":1,"inputCards":[{"upperBound":7848,"confidence":1,"lowerBound":7848}],"outputCards":[],"operator":{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink"}}],"initPlatforms":[],"millis":0} diff --git a/notebooks/cost-functions/profiledb.json b/notebooks/cost-functions/profiledb.json new file mode 100644 index 0000000..ce7f1ac --- /dev/null +++ b/notebooks/cost-functions/profiledb.json @@ -0,0 +1,30 @@ +{"id":"exp-0.0","startTime":1473274334447,"tags":["attempt-1"],"measurements":[{"millis":311,"rounds":[{"millis":120,"rounds":[{"millis":31,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":86,"rounds":[],"id":"Transformations"},{"millis":3,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":127,"rounds":[{"millis":9,"rounds":[],"id":"Create OptimizationContext"},{"millis":1,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":117,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":64,"rounds":[{"millis":27,"rounds":[],"id":"Enumerate"},{"millis":4,"rounds":[],"id":"Pick Best Plan"},{"millis":27,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":203,"rounds":[{"millis":203,"rounds":[{"millis":197,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":166,"estimatedExecutionMillis":{"correctnessProb":0.0731025,"lowerEstimate":364,"upperEstimate":17063,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":3,"estimatedExecutionMillis":{"correctnessProb":0.7695,"lowerEstimate":2,"upperEstimate":48,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":30,"rounds":[{"millis":29,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":366,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":17111,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":709390,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.txt"}}} +{"id":"exp-1.0","startTime":1473274335114,"tags":["attempt-1"],"measurements":[{"millis":59,"rounds":[{"millis":10,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":10,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":43,"rounds":[{"millis":2,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":41,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":6,"rounds":[{"millis":5,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":266,"rounds":[{"millis":266,"rounds":[{"millis":265,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":261,"estimatedExecutionMillis":{"correctnessProb":0.0731025,"lowerEstimate":1058,"upperEstimate":50934,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.7695,"lowerEstimate":2,"upperEstimate":139,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":8,"rounds":[{"millis":8,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":1060,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":51073,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":2128170,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf3.txt"}}} +{"id":"exp-2.0","startTime":1473274335467,"tags":["attempt-1"],"measurements":[{"millis":75,"rounds":[{"millis":26,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":25,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":43,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":43,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":6,"rounds":[{"millis":5,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":962,"rounds":[{"millis":962,"rounds":[{"millis":960,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":956,"estimatedExecutionMillis":{"correctnessProb":0.0731025,"lowerEstimate":3499,"upperEstimate":169753,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.7695,"lowerEstimate":2,"upperEstimate":461,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":10,"rounds":[{"millis":10,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":3501,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":170214,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":7093900,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf10.txt"}}} +{"id":"exp-0.0","startTime":1473274336525,"tags":["attempt-1"],"measurements":[{"millis":41,"rounds":[{"millis":5,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":5,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":29,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":28,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":7,"rounds":[{"millis":6,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":1513,"rounds":[{"millis":1513,"rounds":[{"millis":1512,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":1509,"estimatedExecutionMillis":{"correctnessProb":0.0731025,"lowerEstimate":10478,"upperEstimate":509240,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.7695,"lowerEstimate":3,"upperEstimate":1379,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":12,"rounds":[{"millis":12,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":10481,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":510619,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":21281700,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf30.txt"}}} +{"id":"exp-1.0","startTime":1473274338102,"tags":["attempt-1"],"measurements":[{"millis":59,"rounds":[{"millis":8,"rounds":[{"millis":3,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":4,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":44,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":44,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":7,"rounds":[{"millis":5,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":6216,"rounds":[{"millis":6216,"rounds":[{"millis":6216,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":6205,"estimatedExecutionMillis":{"correctnessProb":0.0731025,"lowerEstimate":34903,"upperEstimate":1697449,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.7695,"lowerEstimate":6,"upperEstimate":4593,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":13,"rounds":[{"millis":13,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":34909,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":1702042,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":70939000,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf100.txt"}}} +{"id":"exp-2.0","startTime":1473274345032,"tags":["attempt-2"],"measurements":[{"millis":29,"rounds":[{"millis":7,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":7,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":18,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":18,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":4,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":87,"rounds":[{"millis":87,"rounds":[{"millis":87,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":81,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":1632,"upperEstimate":2056,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":2,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":6,"upperEstimate":6,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":26,"rounds":[{"millis":26,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":1638,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":2062,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":709390,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.txt"}}} +{"id":"exp-0.0","startTime":1473274345183,"tags":["attempt-2"],"measurements":[{"millis":69,"rounds":[{"millis":7,"rounds":[{"millis":1,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":6,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":54,"rounds":[{"millis":3,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":51,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":8,"rounds":[{"millis":7,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":228,"rounds":[{"millis":228,"rounds":[{"millis":227,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":224,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":4848,"upperEstimate":6117,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":14,"upperEstimate":15,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":7,"rounds":[{"millis":6,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":4862,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":6132,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":2128170,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf3.txt"}}} +{"id":"exp-1.0","startTime":1473274345519,"tags":["attempt-2"],"measurements":[{"millis":76,"rounds":[{"millis":17,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":17,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":55,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":55,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":4,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":961,"rounds":[{"millis":961,"rounds":[{"millis":961,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":956,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":16134,"upperEstimate":20365,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":43,"upperEstimate":47,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":16,"rounds":[{"millis":15,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":16177,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":20412,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":7093900,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf10.txt"}}} +{"id":"exp-2.0","startTime":1473274346590,"tags":["attempt-2"],"measurements":[{"millis":47,"rounds":[{"millis":6,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":5,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":38,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":37,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":2027,"rounds":[{"millis":2027,"rounds":[{"millis":2026,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":2024,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":48383,"upperEstimate":61077,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":126,"upperEstimate":139,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":6,"rounds":[{"millis":6,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":48509,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":61216,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":21281700,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf30.txt"}}} +{"id":"exp-0.0","startTime":1473274348687,"tags":["attempt-2"],"measurements":[{"millis":28,"rounds":[{"millis":3,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":3,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":22,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":21,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":4879,"rounds":[{"millis":4879,"rounds":[{"millis":4878,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":4877,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":161256,"upperEstimate":203567,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":417,"upperEstimate":461,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":5,"rounds":[{"millis":5,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":161673,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":204028,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":70939000,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf100.txt"}}} +{"id":"exp-1.0","startTime":1473274354908,"tags":["attempt-3"],"measurements":[{"millis":51,"rounds":[{"millis":4,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":4,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":40,"rounds":[{"millis":5,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":35,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":7,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":3,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":120,"rounds":[{"millis":120,"rounds":[{"millis":119,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":116,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":1632,"upperEstimate":2056,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":6,"upperEstimate":6,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":7,"rounds":[{"millis":7,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":1638,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":2062,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":709390,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.txt"}}} +{"id":"exp-2.0","startTime":1473274355106,"tags":["attempt-3"],"measurements":[{"millis":56,"rounds":[{"millis":18,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":18,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":33,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":33,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":5,"rounds":[{"millis":4,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":177,"rounds":[{"millis":177,"rounds":[{"millis":176,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":174,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":4848,"upperEstimate":6117,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":14,"upperEstimate":15,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":6,"rounds":[{"millis":6,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":4862,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":6132,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":2128170,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf3.txt"}}} +{"id":"exp-0.0","startTime":1473274355359,"tags":["attempt-3"],"measurements":[{"millis":82,"rounds":[{"millis":3,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":68,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":68,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":11,"rounds":[{"millis":9,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":2,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":869,"rounds":[{"millis":869,"rounds":[{"millis":868,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":866,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":16134,"upperEstimate":20365,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":43,"upperEstimate":47,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":5,"rounds":[{"millis":5,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":16177,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":20412,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":7093900,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf10.txt"}}} +{"id":"exp-1.0","startTime":1473274356331,"tags":["attempt-3"],"measurements":[{"millis":87,"rounds":[{"millis":2,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":79,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":78,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":6,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":2,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":1721,"rounds":[{"millis":1721,"rounds":[{"millis":1715,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":1714,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":48383,"upperEstimate":61077,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":126,"upperEstimate":139,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":4,"rounds":[{"millis":4,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":48509,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":61216,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":21281700,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf30.txt"}}} +{"id":"exp-2.0","startTime":1473274358153,"tags":["attempt-3"],"measurements":[{"millis":32,"rounds":[{"millis":2,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":23,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":22,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":7,"rounds":[{"millis":6,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":5946,"rounds":[{"millis":5946,"rounds":[{"millis":5945,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":5943,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":161256,"upperEstimate":203567,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":417,"upperEstimate":461,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":5,"rounds":[{"millis":4,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":161673,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":204028,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":70939000,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf100.txt"}}} +{"id":"exp-0.0","startTime":1473274364467,"tags":["attempt-4"],"measurements":[{"millis":19,"rounds":[{"millis":2,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":14,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":12,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":79,"rounds":[{"millis":79,"rounds":[{"millis":78,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":74,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":1632,"upperEstimate":2056,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":6,"upperEstimate":6,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":5,"rounds":[{"millis":5,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":1638,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":2062,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":709390,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.txt"}}} +{"id":"exp-1.0","startTime":1473274364577,"tags":["attempt-4"],"measurements":[{"millis":22,"rounds":[{"millis":2,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":17,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":17,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":1,"rounds":[],"id":"Enumerate"},{"millis":2,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":257,"rounds":[{"millis":257,"rounds":[{"millis":257,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":254,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":4848,"upperEstimate":6117,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":14,"upperEstimate":15,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":3,"rounds":[{"millis":3,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":4862,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":6132,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":2128170,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf3.txt"}}} +{"id":"exp-2.0","startTime":1473274364870,"tags":["attempt-4"],"measurements":[{"millis":21,"rounds":[{"millis":3,"rounds":[{"millis":1,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":14,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":14,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":4,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":563,"rounds":[{"millis":563,"rounds":[{"millis":563,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":561,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":16134,"upperEstimate":20365,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":43,"upperEstimate":47,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":4,"rounds":[{"millis":4,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":16177,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":20412,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":7093900,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf10.txt"}}} +{"id":"exp-0.0","startTime":1473274365466,"tags":["attempt-4"],"measurements":[{"millis":15,"rounds":[{"millis":2,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":2,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":11,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":11,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":2,"rounds":[{"millis":1,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":1481,"rounds":[{"millis":1481,"rounds":[{"millis":1481,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":1479,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":48383,"upperEstimate":61077,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":126,"upperEstimate":139,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":3,"rounds":[{"millis":3,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":48509,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":61216,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":21281700,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf30.txt"}}} +{"id":"exp-1.0","startTime":1473274366971,"tags":["attempt-4"],"measurements":[{"millis":21,"rounds":[{"millis":2,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":1,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":16,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":16,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":4819,"rounds":[{"millis":4819,"rounds":[{"millis":4818,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":4817,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":161256,"upperEstimate":203567,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":417,"upperEstimate":461,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":4,"rounds":[{"millis":4,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":161673,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":204028,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":70939000,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf100.txt"}}} +{"id":"exp-0.0","startTime":1473275503466,"tags":["attempt-3"],"measurements":[{"millis":279,"rounds":[{"millis":92,"rounds":[{"millis":13,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":75,"rounds":[],"id":"Transformations"},{"millis":4,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":130,"rounds":[{"millis":10,"rounds":[],"id":"Create OptimizationContext"},{"millis":1,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":119,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":57,"rounds":[{"millis":33,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":19,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":211,"rounds":[{"millis":211,"rounds":[{"millis":207,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":177,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":39,"upperEstimate":296,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":2,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":25,"rounds":[{"millis":25,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":41,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":298,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":709390,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.txt"}}} +{"id":"exp-1.0","startTime":1473275504062,"tags":["attempt-3"],"measurements":[{"millis":53,"rounds":[{"millis":8,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":8,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":39,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":38,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":6,"rounds":[{"millis":5,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":233,"rounds":[{"millis":233,"rounds":[{"millis":231,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":225,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":89,"upperEstimate":858,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":2,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":7,"rounds":[{"millis":6,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":91,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":860,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":2128170,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf3.txt"}}} +{"id":"exp-2.0","startTime":1473275504365,"tags":["attempt-3"],"measurements":[{"millis":53,"rounds":[{"millis":12,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":11,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":29,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":29,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":12,"rounds":[{"millis":9,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":2,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":548,"rounds":[{"millis":548,"rounds":[{"millis":546,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":541,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":271,"upperEstimate":2833,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":10,"rounds":[{"millis":9,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":273,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":2835,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":7093900,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf10.txt"}}} +{"id":"exp-0.0","startTime":1473275504985,"tags":["attempt-3"],"measurements":[{"millis":66,"rounds":[{"millis":38,"rounds":[{"millis":1,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":37,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":24,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":24,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":4,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":1513,"rounds":[{"millis":1513,"rounds":[{"millis":1513,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":1509,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":792,"upperEstimate":8476,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":7,"rounds":[{"millis":7,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":794,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":8478,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":21281700,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf30.txt"}}} +{"id":"exp-1.0","startTime":1473275506603,"tags":["attempt-3"],"measurements":[{"millis":37,"rounds":[{"millis":4,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":4,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":30,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":29,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":5259,"rounds":[{"millis":5259,"rounds":[{"millis":5258,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":5255,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":2616,"upperEstimate":28229,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":7,"rounds":[{"millis":7,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":2618,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":28231,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":70939000,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf100.txt"}}} +{"id":"exp-2.0","startTime":1473275512426,"tags":["attempt-4"],"measurements":[{"millis":23,"rounds":[{"millis":3,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":3,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":15,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":15,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":5,"rounds":[{"millis":4,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":80,"rounds":[{"millis":80,"rounds":[{"millis":80,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":75,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":39,"upperEstimate":296,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":8,"rounds":[{"millis":7,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":41,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":298,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":709390,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.txt"}}} +{"id":"exp-0.0","startTime":1473275512542,"tags":["attempt-4"],"measurements":[{"millis":63,"rounds":[{"millis":4,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":3,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":56,"rounds":[{"millis":2,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":52,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":2,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":216,"rounds":[{"millis":216,"rounds":[{"millis":216,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":213,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":89,"upperEstimate":858,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":9,"rounds":[{"millis":8,"rounds":[],"id":"Log measurements"},{"millis":1,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":91,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":860,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":2128170,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf3.txt"}}} +{"id":"exp-1.0","startTime":1473275512845,"tags":["attempt-4"],"measurements":[{"millis":46,"rounds":[{"millis":8,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":8,"rounds":[],"id":"Transformations"},{"millis":0,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":33,"rounds":[{"millis":1,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":32,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":5,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":0,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":531,"rounds":[{"millis":531,"rounds":[{"millis":530,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":525,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":271,"upperEstimate":2833,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":1,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":6,"rounds":[{"millis":6,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":273,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":2835,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":7093900,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf10.txt"}}} +{"id":"exp-2.0","startTime":1473275513440,"tags":["attempt-4"],"measurements":[{"millis":35,"rounds":[{"millis":5,"rounds":[{"millis":1,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":3,"rounds":[],"id":"Transformations"},{"millis":1,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":25,"rounds":[{"millis":0,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":25,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":5,"rounds":[{"millis":3,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":1,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":1870,"rounds":[{"millis":1870,"rounds":[{"millis":1869,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":1864,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":792,"upperEstimate":8476,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":5,"rounds":[{"millis":5,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":794,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":8478,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":21281700,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf30.txt"}}} +{"id":"exp-0.0","startTime":1473275515361,"tags":["attempt-4"],"measurements":[{"millis":99,"rounds":[{"millis":23,"rounds":[{"millis":0,"rounds":[],"id":"Prune\u0026Isolate"},{"millis":21,"rounds":[],"id":"Transformations"},{"millis":2,"rounds":[],"id":"Sanity"}],"id":"Prepare"},{"millis":73,"rounds":[{"millis":12,"rounds":[],"id":"Create OptimizationContext"},{"millis":0,"rounds":[],"id":"Create CardinalityEstimationManager"},{"millis":61,"rounds":[],"id":"Push Estimation"}],"id":"Cardinality\u0026Load Estimation"},{"millis":3,"rounds":[{"millis":1,"rounds":[],"id":"Enumerate"},{"millis":1,"rounds":[],"id":"Pick Best Plan"},{"millis":0,"rounds":[],"id":"Split Stages"}],"id":"Create Initial Execution Plan"}],"id":"Optimization","type":"time"},{"millis":5817,"rounds":[{"millis":5817,"rounds":[{"millis":5816,"rounds":[],"id":"Execute"}],"id":"Execution 0"}],"id":"Execution","type":"time"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaTextFileSource","name":"Load file"},{"_class":"org.qcri.rheem.java.operators.JavaFlatMapOperator","name":"Split words"},{"_class":"org.qcri.rheem.java.operators.JavaFilterOperator","name":"Filter empty words"},{"_class":"org.qcri.rheem.java.operators.JavaMapOperator","name":"To lower case, add counter"},{"_class":"org.qcri.rheem.java.operators.JavaReduceByOperator","name":"Add counters"}],"executionMillis":5811,"estimatedExecutionMillis":{"correctnessProb":0.09025,"lowerEstimate":2616,"upperEstimate":28229,"isOverride":false},"id":"par-ex-000","type":"partial-execution"},{"operators":[{"_class":"org.qcri.rheem.java.operators.JavaLocalCallbackSink","name":"collect()"}],"executionMillis":0,"estimatedExecutionMillis":{"correctnessProb":0.855,"lowerEstimate":2,"upperEstimate":2,"isOverride":false},"id":"par-ex-001","type":"partial-execution"},{"millis":6,"rounds":[{"millis":6,"rounds":[],"id":"Log measurements"},{"millis":0,"rounds":[],"id":"Release Resources"}],"id":"Post-processing","type":"time"},{"millis":2618,"rounds":[],"id":"Estimate 1 (lower)","type":"time"},{"millis":28231,"rounds":[],"id":"Estimate 1 (upper)","type":"time"}],"subject":{"id":"wordcount","version":"1.0","configuration":{"inputSize":70939000,"plugins":"JavaBasicPlugin","inputUrl":"file:///Users/basti/Work/Data/text/odyssey.sf100.txt"}}} diff --git a/notebooks/cost-functions/rheem.properties b/notebooks/cost-functions/rheem.properties new file mode 100644 index 0000000..0d03954 --- /dev/null +++ b/notebooks/cost-functions/rheem.properties @@ -0,0 +1,67 @@ +spark.master = local +rheem.spark.init.ms = 10000 +rheem.core.optimizer.instrumentation = org.qcri.rheem.core.profiling.FullInstrumentationStrategy +rheem.core.log.executions = /Users/basti/Work/Notebooks/boss-2016/cost-functions/executions.json +rheem.core.log.cardinalities = /Users/basti/Work/Notebooks/boss-2016/cost-functions/cardinalities.json + +rheem.profiler.ga.population.size = 20 +rheem.profiler.ga.population.elite = 1 +rheem.profiler.ga.selection.ratio = 1 +rheem.profiler.ga.mutation.ratio = 1 +rheem.profiler.ga.mutation.alteration = 0.1 +rheem.profiler.ga.mutation.reset = 0.05 + +rheem.java.localcallbacksink.load = {\ + "in":1,\ + "out":0,\ + "cpu":"${10000*in0 + 20}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.filter.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${10000*in0 + 10*out0 + 0}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.map.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${10000*in0 + 20}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.reduceby.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${10000*in0 + 2*out0 + 20}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.textfilesource.load = {\ + "in":0,\ + "out":1,\ + "cpu":"${70000*out0 + 10}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} +rheem.java.flatmap.load = {\ + "in":1,\ + "out":1,\ + "cpu":"${10000*in0 + 5*out0 + 0}",\ + "ram":"0",\ + "disk":"0",\ + "net":"0",\ + "p":0.9\ +} \ No newline at end of file diff --git a/notebooks/cost-functions/wordcount-scaling.ipynb b/notebooks/cost-functions/wordcount-scaling.ipynb new file mode 100644 index 0000000..c3f277c --- /dev/null +++ b/notebooks/cost-functions/wordcount-scaling.ipynb @@ -0,0 +1,565 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prepare Rheem\n", + "\n", + "1. Load relevant modules\n", + "2. Import relevant packages" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Adding 13 artifact(s)\n", + "Adding 4 artifact(s)\n", + "Adding 0 artifact(s)\n", + "Adding 1 artifact(s)\n", + "Adding 0 artifact(s)\n", + "Adding 37 artifact(s)\n", + "Adding 2 artifact(s)\n", + "Adding 30 artifact(s)\n", + "Adding 3 artifact(s)\n", + "Adding 84 artifact(s)\n", + "Adding 0 artifact(s)\n", + "Adding 4 artifact(s)\n" + ] + }, + { + "data": { + "text/plain": [ + "\u001b[36mrheemVersion\u001b[0m: \u001b[32mString\u001b[0m = \u001b[32m\"0.2.0-SNAPSHOT\"\u001b[0m" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "// Get the right repositories for SNAPSHOT versions.\n", + "classpath.addRepository(\"file:///Users/basti/.m2/repository\")\n", + "classpath.addRepository(\"https://oss.sonatype.org/content/repositories/snapshots\")\n", + "\n", + "val rheemVersion = \"0.2.0-SNAPSHOT\"\n", + "\n", + "// Load Rheem's core functionality.\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-core\" % rheemVersion)\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-api\" % rheemVersion)\n", + "\n", + "// Load Rheem's platform plugins.\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-java\" % rheemVersion)\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-spark\" % rheemVersion)\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-basic\" % rheemVersion)\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-graphchi\" % rheemVersion)\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-sqlite3\" % rheemVersion)\n", + "\n", + "// Load the platforms themselves.\n", + "classpath.add(\"org.apache.hadoop\" % \"hadoop-common\" % \"2.2.0\")\n", + "classpath.add(\"org.apache.hadoop\" % \"hadoop-hdfs\" % \"2.2.0\")\n", + "classpath.add(\"org.apache.spark\" % \"spark-core_2.11\" % \"1.6.1\")\n", + "\n", + "// Load the profiling utility used by Rheem.\n", + "classpath.add(\"de.hpi.isg\" % \"profiledb-store\" % \"0.1.1\")\n", + "classpath.add(\"org.qcri.rheem\" % \"rheem-profiler\" % \"0.2.0-SNAPSHOT\" )" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "SLF4J: Class path contains multiple SLF4J bindings.\n", + "SLF4J: Found binding in [jar:file:/Users/basti/.coursier/cache/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.13/slf4j-simple-1.7.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n", + "SLF4J: Found binding in [jar:file:/Users/basti/.coursier/cache/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n", + "SLF4J: Found binding in [jar:file:/Users/basti/.m2/repository/org/slf4j/slf4j-log4j12/1.7.10/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]\n", + "SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.\n", + "SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]\n" + ] + }, + { + "data": { + "text/plain": [ + "\u001b[32mimport \u001b[36morg.qcri.rheem.api._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.basic.data._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.core.api._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.core.util._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.core.util.fs._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.core.function.FunctionDescriptor._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.core.optimizer.ProbabilisticDoubleInterval\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.core.plugin.Plugin\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.basic.RheemBasics\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.java.Java\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.spark.Spark\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.sqlite3.Sqlite3\u001b[0m\n", + "\u001b[32mimport \u001b[36mde.hpi.isg.profiledb.store.model._\u001b[0m\n", + "\u001b[32mimport \u001b[36mscala.collection.JavaConversions._\u001b[0m\n", + "\u001b[32mimport \u001b[36mscala.collection.mutable\u001b[0m\n", + "\u001b[36mcwd\u001b[0m: \u001b[32mString\u001b[0m = \u001b[32m\"/Users/basti/Work/Notebooks/boss-2016/cost-functions\"\u001b[0m\n", + "\u001b[36mconfUrl\u001b[0m: \u001b[32mString\u001b[0m = \u001b[32m\"file:///Users/basti/Work/Notebooks/boss-2016/cost-functions/rheem.properties\"\u001b[0m\n", + "\u001b[36mconf\u001b[0m: \u001b[32morg\u001b[0m.\u001b[32mqcri\u001b[0m.\u001b[32mrheem\u001b[0m.\u001b[32mcore\u001b[0m.\u001b[32mapi\u001b[0m.\u001b[32mConfiguration\u001b[0m = Configuration[file:///Users/basti/Work/Notebooks/boss-2016/cost-functions/rheem.properties]\n", + "\u001b[36mprofileDbLocation\u001b[0m: \u001b[32mString\u001b[0m = \u001b[32m\"/Users/basti/Work/Notebooks/boss-2016/cost-functions/profiledb.json\"\u001b[0m" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "// Import relevant packages.\n", + "import org.qcri.rheem.api._\n", + "import org.qcri.rheem.basic.data._\n", + "import org.qcri.rheem.core.api._\n", + "import org.qcri.rheem.core.util._\n", + "import org.qcri.rheem.core.util.fs._\n", + "import org.qcri.rheem.core.function.FunctionDescriptor._\n", + "import org.qcri.rheem.core.optimizer.ProbabilisticDoubleInterval\n", + "import org.qcri.rheem.core.plugin.Plugin\n", + "import org.qcri.rheem.basic.RheemBasics\n", + "import org.qcri.rheem.java.Java\n", + "import org.qcri.rheem.spark.Spark\n", + "import org.qcri.rheem.sqlite3.Sqlite3\n", + "import de.hpi.isg.profiledb.store.model._\n", + "\n", + "import scala.collection.JavaConversions._\n", + "import scala.collection.mutable\n", + "\n", + "// Create a configuration.\n", + "val cwd = \"/Users/basti/Work/Notebooks/boss-2016/cost-functions\"\n", + "val confUrl = s\"file://$cwd/rheem.properties\"\n", + "val conf = new Configuration(confUrl)\n", + "val profileDbLocation = s\"$cwd/profiledb.json\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Preparation \n", + "Now we define an experiment runner, that executes a wordcount plan on different file sizes and stores them into a ProfileDB." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "defined \u001b[32mclass \u001b[36mWordCountExperimentRunner\u001b[0m" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "class WordCountExperimentRunner(profileDbLocation: String, \n", + " plugins: Plugin*) {\n", + "\n", + " var nextExperimentId = 0\n", + " \n", + " val pluginNames = plugins.map(_.getClass.getSimpleName).sorted.mkString(\",\")\n", + " \n", + " import org.qcri.rheem.core.profiling.ProfileDBs\n", + " val profileDB = ProfileDBs.createProfileDB\n", + " \n", + " def apply(configuration: Configuration, \n", + " tags: Seq[String], \n", + " inputUrls: Seq[String], \n", + " wordsPerLine: ProbabilisticDoubleInterval = null) {\n", + " val experiments = inputUrls.map { case inputUrl: String =>\n", + " // Prepare experiment.\n", + " val inputFileSize = FileSystems.getFileSize(inputUrl).getAsLong\n", + " val subject = new Subject(\"wordcount\", \"1.0\")\n", + " .addConfiguration(\"inputUrl\", inputUrl)\n", + " .addConfiguration(\"inputSize\", inputFileSize)\n", + " .addConfiguration(\"plugins\", this.pluginNames)\n", + " val experiment = new Experiment(f\"exp-${nextExperimentId%03d}\", subject, tags: _*)\n", + " this.nextExperimentId += 1\n", + " \n", + " // Run experiment.\n", + " val wordcounts = wordCount(configuration, inputUrl, wordsPerLine, experiment)\n", + " \n", + " // Handle results.\n", + " println(s\"Collected ${wordcounts.size} word counts in $inputUrl.\")\n", + " experiment\n", + " }\n", + " \n", + " // Persist experiments.\n", + " this.profileDB.append(new java.io.File(profileDbLocation), experiments: _*)\n", + " }\n", + " \n", + " private def wordCount(configuration: Configuration, \n", + " inputUrl: String, \n", + " wordsPerLine: ProbabilisticDoubleInterval, \n", + " experiment: Experiment) = {\n", + " val rheemContext = new RheemContext(configuration)\n", + " plugins.foreach(rheemContext.withPlugin)\n", + " val planBuilder = new PlanBuilder(rheemContext)\n", + "\n", + " planBuilder\n", + " // Do some set up.\n", + " .withJobName(s\"WordCount ($inputUrl)\")\n", + " .withUdfJarsOf(this.getClass)\n", + " .withExperiment(experiment)\n", + "\n", + " // Read the text file.\n", + " .readTextFile(inputUrl).withName(\"Load file\")\n", + "\n", + " // Split each line by non-word characters.\n", + " .flatMap(_.split(\"\\\\W+\"), selectivity = wordsPerLine).withName(\"Split words\")\n", + "\n", + " // Filter empty tokens.\n", + " .filter(_.nonEmpty, selectivity = 0.99).withName(\"Filter empty words\")\n", + "\n", + " // Attach counter to each word.\n", + " .map(word => (word.toLowerCase, 1)).withName(\"To lower case, add counter\")\n", + "\n", + " // Sum up counters for every word.\n", + " .reduceByKey(_._1, (c1, c2) => (c1._1, c1._2 + c2._2)).withName(\"Add counters\")\n", + " .withCardinalityEstimator((in: Long) => math.round(in * 0.01))\n", + "\n", + " // Execute the plan and collect the results.\n", + " .collect()\n", + " }\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[36minputUrls\u001b[0m: \u001b[32mSeq\u001b[0m[\u001b[32mString\u001b[0m] = \u001b[33mList\u001b[0m(\n", + " \u001b[32m\"file:///Users/basti/Work/Data/text/odyssey.txt\"\u001b[0m,\n", + " \u001b[32m\"file:///Users/basti/Work/Data/text/odyssey.sf3.txt\"\u001b[0m,\n", + " \u001b[32m\"file:///Users/basti/Work/Data/text/odyssey.sf10.txt\"\u001b[0m,\n", + " \u001b[32m\"file:///Users/basti/Work/Data/text/odyssey.sf30.txt\"\u001b[0m,\n", + " \u001b[32m\"file:///Users/basti/Work/Data/text/odyssey.sf100.txt\"\u001b[0m\n", + ")\n", + "\u001b[36mwordCountOnJava\u001b[0m: \u001b[32mWordCountExperimentRunner\u001b[0m = cmd3$$user$WordCountExperimentRunner@5504b80e" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "val inputUrls = Seq(\"file:///Users/basti/Work/Data/text/odyssey.txt\", \n", + " \"file:///Users/basti/Work/Data/text/odyssey.sf3.txt\", \n", + " \"file:///Users/basti/Work/Data/text/odyssey.sf10.txt\",\n", + " \"file:///Users/basti/Work/Data/text/odyssey.sf30.txt\", \n", + " \"file:///Users/basti/Work/Data/text/odyssey.sf100.txt\")\n", + "var wordCountOnJava = new WordCountExperimentRunner(profileDbLocation, Java.basicPlugin)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Experiments\n", + "\n", + "Now, we run the various experiments - the experiment results are visualized in the `wordcount-visualization` notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf3.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf10.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf30.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf100.txt.\n" + ] + }, + { + "data": { + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "wordCountOnJava(conf, Seq(\"attempt-1\"), inputUrls)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf3.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf10.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf30.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf100.txt.\n" + ] + }, + { + "data": { + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "wordCountOnJava(conf, Seq(\"attempt-2\"), inputUrls, 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It turns out, that our estimates are off - however, we can learn cost functions from the so far executed experiments. The output will can be directly copied into a `.properties` file. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded 40 execution records with 6 execution operator types and 0 platform overheads.\n", + "Optimizing 15 variables on 40 partial executions (e.g., [OperatorExecution[JavaTextFileSource[0->1, id=3a332629]], OperatorExecution[JavaFlatMap[1->1, id=60808022]], OperatorExecution[JavaFilter[1->1, id=5053330b]], OperatorExecution[JavaMap[1->1, id=31a6c219]], OperatorExecution[JavaReduceBy[1->1, id=1287b86a]]]).\n", + "Fittest individual of generation 0 (0): 0.0000\n", + "Fittest individual of generation 2,000 (2,000): 0.7758\n", + "Fittest individual of generation 4,000 (4,000): 0.7761\n", + "Final fittest individual of generation 5,000 (5,000): 0.7764\n", + "\n", + "=== Stats for fittest individual (fitness=0.7764)\n", + "\n", + "Training data vs. measured\n", + "==========================\n", + "Actual 0:00:06.205 | Estimated: (0:00:00.130 .. 0:04:37.477, p=1.07%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:05.943 | Estimated: (0:00:02.613 .. 0:00:28.221, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:04.877 | Estimated: (0:00:02.613 .. 0:00:28.221, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:04.817 | Estimated: (0:00:02.613 .. 0:00:28.221, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:02.024 | Estimated: (0:00:00.786 .. 0:00:08.468, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:01.714 | Estimated: (0:00:00.786 .. 0:00:08.468, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:01.509 | Estimated: (0:00:00.040 .. 0:01:23.244, p=1.07%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:01.479 | Estimated: (0:00:00.786 .. 0:00:08.468, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.956 | Estimated: (0:00:00.019 .. 0:00:27.754, p=1.07%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.956 | Estimated: (0:00:00.269 .. 0:00:02.830, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.866 | Estimated: (0:00:00.269 .. 0:00:02.830, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.561 | Estimated: (0:00:00.269 .. 0:00:02.830, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.261 | Estimated: (0:00:00.010 .. 0:00:08.330, p=1.07%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.254 | Estimated: (0:00:00.083 .. 0:00:00.852, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.224 | Estimated: (0:00:00.083 .. 0:00:00.852, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.174 | Estimated: (0:00:00.083 .. 0:00:00.852, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.166 | Estimated: (0:00:00.009 .. 0:00:02.794, p=1.07%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.116 | Estimated: (0:00:00.033 .. 0:00:00.290, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.081 | Estimated: (0:00:00.033 .. 0:00:00.290, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.074 | Estimated: (0:00:00.033 .. 0:00:00.290, p=1.63%) | 5 operators | [JavaTextFileSource, JavaFlatMapOperator, JavaFilterOperator, JavaMapOperator, JavaReduceByOperator]\n", + "Actual 0:00:00.003 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.002 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.001 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.000 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.000 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.000 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.000 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.000 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "Actual 0:00:00.000 | Estimated: (0:00:00.001 .. 0:00:00.001, p=100.00%) | 1 operators | [JavaLocalCallbackSink]\n", + "\n", + "Configuration file\n", + "==================\n", + "rheem.java.reduceby.load = {\\\n", + " \"in\":1,\\\n", + " \"out\":1,\\\n", + " \"cpu\":\"${0.9691075617570686*in0 + 179.58079684227764*out0 + 23.652186277726912}\",\\\n", + " \"ram\":\"0\",\\\n", + " \"disk\":\"0\",\\\n", + " \"net\":\"0\",\\\n", + " \"p\":0.9\\\n", + "}\n", + "rheem.java.localcallbacksink.load = {\\\n", + " \"in\":1,\\\n", + " \"out\":0,\\\n", + " \"cpu\":\"${10.662676041238914*in0 + 698273.3774416123}\",\\\n", + " \"ram\":\"0\",\\\n", + " \"disk\":\"0\",\\\n", + " \"net\":\"0\",\\\n", + " \"p\":0.9\\\n", + "}\n", + "rheem.java.textfilesource.load = {\\\n", + " \"in\":0,\\\n", + " \"out\":1,\\\n", + " \"cpu\":\"${6.706230156985611*out0 + 116946.86108530796}\",\\\n", + " \"ram\":\"0\",\\\n", + " \"disk\":\"0\",\\\n", + " \"net\":\"0\",\\\n", + " \"p\":0.9\\\n", + "}\n", + "rheem.java.filter.load = {\\\n", + " \"in\":1,\\\n", + " \"out\":1,\\\n", + " \"cpu\":\"${1.8101285013854862*in0 + 0.10522799511388539*out0 + 174508.14960646234}\",\\\n", + " \"ram\":\"0\",\\\n", + " \"disk\":\"0\",\\\n", + " \"net\":\"0\",\\\n", + " \"p\":0.9\\\n", + "}\n", + "rheem.java.map.load = {\\\n", + " \"in\":1,\\\n", + " \"out\":1,\\\n", + " \"cpu\":\"${3.786263829086864*in0 + 712651.7791312812}\",\\\n", + " \"ram\":\"0\",\\\n", + " \"disk\":\"0\",\\\n", + " \"net\":\"0\",\\\n", + " \"p\":0.9\\\n", + "}\n", + "rheem.java.flatmap.load = {\\\n", + " \"in\":1,\\\n", + " \"out\":1,\\\n", + " \"cpu\":\"${7.6590772571940064*in0 + 3.1164436836959934*out0 + 464218.1441863766}\",\\\n", + " \"ram\":\"0\",\\\n", + " \"disk\":\"0\",\\\n", + " \"net\":\"0\",\\\n", + " \"p\":0.9\\\n", + "}\n" + ] + }, + { + "data": { + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "new org.qcri.rheem.profiler.log.GeneticOptimizerApp(conf.fork).run()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "conf.load(s\"file://$cwd/cost-functions.properties\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf3.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf10.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf30.txt.\n", + "Collected 7848 word counts in file:///Users/basti/Work/Data/text/odyssey.sf100.txt.\n" + ] + }, + { + "data": { + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "wordCountOnJava(conf, Seq(\"attempt-3\"), inputUrls, 10)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Scala 2.11", + "language": "scala211", + "name": "scala211" + }, + "language_info": { + "codemirror_mode": "text/x-scala", + "file_extension": ".scala", + "mimetype": "text/x-scala", + "name": "scala211", + "pygments_lexer": "scala", + "version": "2.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/notebooks/cost-functions/wordcount-visualization.ipynb b/notebooks/cost-functions/wordcount-visualization.ipynb new file mode 100644 index 0000000..3bf3fae --- /dev/null +++ b/notebooks/cost-functions/wordcount-visualization.ipynb @@ -0,0 +1,208 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "# Import some generally important modules\n", + "import matplotlib.pyplot as plt, numpy as np, sys, os\n", + "\n", + "# Import ProfileDB client\n", + "sys.path.append('/Users/basti/Work/Repositories/profiledb-python')\n", + "import profiledb" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded 30 experiments...\n", + "\n", + "Tags:\n", + "['attempt-4', 'attempt-1', 'attempt-3', 'attempt-2']\n", + "\n", + "Configuration keys:\n", + "['plugins', 'inputSize', 'inputUrl']\n" + ] + } + ], + "source": [ + "# Load ProfileDB.\n", + "pdb = profiledb.load('profiledb.json')\n", + "print('Loaded {} experiments...'.format(len(pdb.experiments)))\n", + "print\n", + "print 'Tags:\\n', [str(tag) for tag in pdb.tags()]\n", + "print\n", + "print 'Configuration keys:\\n', [str(key) for key in pdb.confkeys()]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "def plotWordcount(suite):\n", + " # Series key: employed plugins\n", + " def keyfunc(exp): return str(exp.conf('plugins'))\n", + " # x values: size of input file\n", + " def xfunc(exp): return exp.conf('inputSize')\n", + " # Select only measurements from the given suite.\n", + " def selfunc(exp): return suite in exp.tags()\n", + "\n", + " # Create the series.\n", + " actual = pdb.multipleseries(keyfunc,\\\n", + " xfunc,\\\n", + " yfunc = lambda exp: exp.measurement(['Execution'])['millis'] / 1000 + 1,\\\n", + " selfunc = selfunc,\\\n", + " groupfunc = profiledb.median)\n", + " estlo = pdb.multipleseries(keyfunc,\\\n", + " xfunc,\\\n", + " yfunc = lambda exp: exp.measurement(['Estimate 1 (lower)'])['millis'] / 1000 + 1,\\\n", + " selfunc = selfunc,\\\n", + " groupfunc = min)\n", + " esthi = pdb.multipleseries(keyfunc,\\\n", + " xfunc,\\\n", + " yfunc = lambda exp: exp.measurement(['Estimate 1 (upper)'])['millis'] / 1000 + 1,\\\n", + " selfunc = selfunc,\\\n", + " groupfunc = min)\n", + " def geomean(a, b): return (a * b) ** .5\n", + " estmean = pdb.multipleseries(keyfunc,\\\n", + " xfunc,\\\n", + " yfunc = lambda exp: geomean(exp.measurement(['Estimate 1 (lower)'])['millis'] / 1000., exp.measurement(['Estimate 1 (upper)'])['millis'] / 1000.) + 1,\\\n", + " selfunc = selfunc,\\\n", + " groupfunc = min)\n", + "\n", + "\n", + " # Plot the series.\n", + " plt.figure(figsize = (15, 7))\n", + " plt.title('Wordcount execution time: estimated vs. actual')\n", + " for series in actual:\n", + " plt.plot(series[1].x, series[1].y, color = 'b', marker = 'x', label = str(series[0]) + ' (act.)')\n", + " for series in estlo:\n", + " plt.plot(series[1].x, series[1].y, color = 'b', linestyle = '--', label = str(series[0]) + ' (min. est.)')\n", + " for series in esthi:\n", + " plt.plot(series[1].x, series[1].y, color = 'b', linestyle = '--', label = str(series[0]) + ' (max. est.)')\n", + " for series in estmean:\n", + " plt.plot(series[1].x, series[1].y, color = 'b', linestyle = ':', label = str(series[0]) + ' (mean est.)')\n", + " plt.yscale('log')\n", + " plt.xscale('log')\n", + " plt.xlabel('file size [MB]')\n", + " plt.ylabel('execution time [s]')\n", + " plt.grid(True)\n", + " plt.legend(bbox_to_anchor=(1, 1), loc='upper left', ncol=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n1q1bc8011wBGsuvrr7+us+y0tDR+/OMf07p16yuKrTY+nUTRGGMRaUy6p4iIJ+jeIiKNKSEhweeT\nKCaTiadzRDRyAAAgAElEQVSffpqysjLCwsIYNGgQI0aMqJYISUpKYvv27SQmJrolMt5++23mzJlD\ncHAwr776Kvfff3+1OiwWC2azmcjISHbu3OlsmHfv3p0ZM2YwcOBAIiMj2bt3L7fddpvzuF27djFg\nwADMZjOjR49m8eLFxMTEAO69HxYtWkTPnj3p168f7du354UXXnAmEurqJeG6bfr06fj7+xMREcHD\nDz/MxIkTndvDwsJYv349zz33HGFhYRw4cIBbbrmFNm3aOMtxLatqnXVNWhsREcEdd9zh9lSiS8Va\nn/pq29dsNrNjx44a6/jlL3/JPffcw5133klwcDADBw50zk/z7bffkpiYSEhICN27dychIYEHH3zQ\nedxf/vIXQkNDefrppwGIi4tzDgEDWLNmDVOmTKnzHK+E5x/Q7Rn2puhaJCIiIiIi0hw5Gqk1teea\ndVupb9++zJ071zlJrNRPRUUF0dHRpKSkEB8f3+DyDhw4wKRJk5wJi5bmyy+/5Be/+EWtyZv6qO03\n5rM9UUREGpuGCIqIJ+jeIiJi2LdvHwcOHKjxcb9S3bZt2yguLubcuXO8/vrrAAwYMKBRyv7BD37Q\nYhMoYMz70pAESl2URBERERERERGPmjVrFsOHD2fBggVER0d7OxyfkJ6eTmxsLOHh4aSmprJx40bn\ncB7xHg3nERERERER8TG+OpxHxFdoOI+IiIiIiIiISAMoiSIi4qB5C0TEE3RvERERaTmURBERERER\nERERqQfNiSIiIiIiIuJjNCeKiGdpThQRERERERERkQZQEkVExEHzFoiIJ+jeIiLSMpjNZnJychpU\nhslk4tChQw2OZc2aNQwfPvyKj9+/fz/9+vVrcBy+YubMmfzhD39olLJ8NomSnJysf5SIiIiIiMhV\nxWazkZyc7O0wrlhCQgLvvvuux8rPycnBZDJhNpsxm81ERkYydepUysvLG1x2aWkpMTExl1V/ly5d\nmD9/foPrrmrChAls3br1io9/6aWXePbZZxsxIu+pvOYVFRW17jNz5kxef/11vv/++wbX59NJlISE\nBG+HISItiO4pIuIJureISGNKSEjw6SSKn59f5VwTHlVSUkJpaSmZmZmkp6ezZMkSj9dZU/1r167l\nlVdeYdu2bU1af12OHj2KzWZjzJgx3g6lUdU1F1BkZCQ33XQTmzdvbnA9PptEEREREREREd9UXFzM\n3XffTYcOHQgNDWXUqFHk5eUB8N5771UbavLGG28wevRoAFJTU+nTpw8hISF07tyZl19+udZ6wsPD\nGTZsGPv373eumzdvHrGxsQQHB9OjRw82btzo3JadnU18fDwWi4Xw8HDGjx/v3OY6FKesrIwZM2YQ\nExODxWJh8ODBnDt3rlr9AwYMoEePHuzdu7fatqq9clasWMHgwYOdy9u2baNbt25YLBamTp1KfHy8\nc/+q+5pMJpYtW8aNN96I1WrlySefrPWafPzxx/Tt2xd/f3/nupiYGBYtWkSvXr0wm81MnjyZY8eO\nMWLECEJCQhg2bBjFxcXO/RMTE+nYsSMWi4X4+Hjn9T1//jx9+vThrbfeAuDChQvceuut/PrXv641\nHlf5+fmMGzeODh06cP311/P73//euS0jI4NbbrmFkJAQIiMjmTlzJgC33347ABaLBbPZzM6dO2ss\nOyEhgdTU1HrFURclUUREHDREUEQ8QfcWEZHqKioqmDx5Mrm5ueTm5hIYGOhs+I8aNYqsrCyys7Od\n+6ekpDBhwgQAgoKCWL16NSUlJaSmprJ06VI2bdrkVn5lr4T8/Hy2bt3KwIEDndtiY2P59NNPOXXq\nFHPnzmXixIkcO3YMMIa53HXXXRQXF5OXl8e0adNqjH/mzJns2bOH9PR0CgsLWbhwoVsPG7vdjt1u\nZ8eOHezbt48+ffpUK6OuXjkFBQUkJiYyf/58CgsL6datG+np6XX24klNTWXXrl18+eWXvP/++7UO\n98nMzKRbt27VYtmwYQPbt28nKyuLLVu2MGLECObNm8fx48epqKhg8eLFzv1/8pOfkJ2dzYkTJ/jh\nD3/o/Gz8/f1ZvXo1c+bM4T//+Q/z5s3Dbrfz4osv1hp3pYqKCkaNGkWfPn3Iz89n+/bt/O53v3P2\n4vnlL3/J9OnTKSkp4dChQyQmJgLwySefABd7//zoRz+qsfybbrqJL7744pJxXIqSKCIiIiIiIleJ\n5GTw86v+qm2EUE37N8ZootDQUMaOHUtAQABBQUHMnj2btLQ0ANq2bcvo0aNZu3YtAF999RVZWVnc\nc889AMTHx9OjRw8Aevbsyfjx453HVgoLC8NqtdKpUyeCgoIYN26cc9u9995LZGQkAPfddx833HAD\nGRkZgJEEyMnJIS8vD39/fwYNGlQt9oqKCpYvX86bb75Jx44dMZlMDBgwwK1nR1hYGO3bt+fRRx9l\n/vz5DBky5LKuz4cffkhcXBxjxozBZDIxbdo0Z8y1ef755wkODiY6OpohQ4bw+eef17hfSUkJQUFB\n1dY/9dRThIeHExUVxeDBgxk4cCA333wzbdq0YezYsezZs8e570MPPUS7du1o3bo1c+fO5YsvvqC0\ntBSAHj168Ktf/YrRo0fz29/+llWrVtVrCNe//vUvCgoK+NWvfkWrVq3o0qULP//5z1m3bh1gfDZf\nffUVBQUFtG3b1pksqe8jvc1ms1tvmiulJIqIiIPmLRART9C9RUSak+RksNurv+pKotR338tRVlbG\n448/TkxMDCEhIcTHx1NSUuJsECclJTmTKCkpKc6EC8DOnTsZMmQIHTp0wGKxsGzZMk6ePOlW/smT\nJykqKuK7775j0KBBbk+yWblyJX369MFqtWK1Wtm7dy8FBQUALFiwALvdTv/+/YmLi2P58uXVYi8o\nKODs2bN07dq11vM7efIkhYWF7N+/v86hNbXJz8+nU6dObuuqLlflmmRp27Ytp0+frnE/q9XqTHi4\nioiIcL4PDAx0Ww4ICHCWd+HCBZ5//nliY2MJCQmhS5cu+Pn5Oa8hwM9+9jNyc3MZOXJkndfJ1eHD\nh8nPz3d+Llarld/85jccP34cgHfffZeDBw/ygx/8gP79+1/20JzS0lIsFstlHVMTJVFERERERESk\nydjtdhYtWsTBgwfJyMigpKSEtLQ05xAYgKFDh3LixAm++OIL1q1bR1JSkvP4pKQkxowZw5EjRygu\nLmbKlCm1PpklICCASZMm8dlnn1FYWMjhw4d57LHHWLJkCYWFhRQVFREXF+esNyIignfeeYe8vDyW\nLVvGE088Ue2RxGFhYQQEBLgNN7oS7dq148yZM87lb7/91vk+KiqKI0eOuF0z1+WG6NWrFwcPHrzk\nfrX18EhJSWHz5s1s376dkpISvvnmG7fPDuCJJ57g7rvv5q9//Ss7duyoV1ydO3emS5cuFBUVOV+n\nTp1iy5YtgDEMKyUlhRMnTjBr1izuvfdeysrK6j1R8YEDB+jdu3e99q2LkigiIg6at0BEPEH3FhGR\n6k6fPk1gYCAhISEUFhZWmxy2devWJCYmMnPmTIqKihg2bJjbsVarFX9/fzIyMkhJSanWkK5s0J87\nd45Vq1bRsWNHQkNDOXPmDH5+foSFhTmH5bhO+rp+/XpnssJiseDn54fJ5N5sNplMPPLIIzzzzDMc\nPXqUCxcukJ6ezvnz5y/rGvTu3ZsNGzZQVlZGdna22ySzI0eOJDMzk02bNlFeXs6SJUvckiyXUtcQ\nl6FDh7J79+7LjrfS6dOnadOmjfN6zp492237qlWr2LNnD3/+859ZvHgxkyZNcksW1aZ///6YzWYW\nLFhAWVkZFy5cYO/evezatQuA1atXc+LECQBCQkKcn014eDgmk4mvv/66zvLT0tIYMWLEFZ2zKyVR\nREREREREpMmYTCaefvppysrKCAsLY9CgQYwYMaJaIiQpKYnt27eTmJjolsh4++23mTNnDsHBwbz6\n6qvcf//91eqofFJLZGQkO3fudD7atnv37syYMYOBAwcSGRnJ3r17ue2225zH7dq1iwEDBmA2mxk9\nejSLFy8mJiYGwC2+RYsW0bNnT/r160f79u154YUXnImLunpGuG6bPn06/v7+RERE8PDDDzNx4kTn\n9rCwMNavX89zzz1HWFgYBw4c4JZbbqFNmzbOclzLqlpnXZPWRkREcMcdd7g9lehSsbqW97Of/Yzr\nrruOa6+9lri4OAYOHOjclpuby/Tp01m5ciVt27blgQce4JZbbuGZZ54BYM2aNcTFxdVYn8lkYsuW\nLXz++edcf/31hIeH89hjj3Hq1CkAtm7dSlxcHGazmenTp7Nu3TratGlD27ZtefHFF7n11lsJDQ0l\nIyODTz75BLPZ7Cz76NGjHDhwoFEe6+z5B3R7hr2+k8eIiIiIiIi0NI5Ga03tuWbdVurbty9z5851\nThIr9VNRUUF0dDQpKSnEx8c3uLwDBw4wadIk54S6Ld3MmTOJjY1lypQp9T6mtt+YkigiIiIiIiI+\nxheTKPv27aNfv35kZWURHR3t7XCavW3bttG/f38CAwNZuHAhS5cu5dChQ87eKOJZtf3GNJxHRMRB\n8xaIiCfo3iIiArNmzWL48OEsWLBACZR6Sk9PJzY2lvDwcFJTU9m4caMSKM2AeqKIiDjYbDY9ilRE\nGp3uLSLiCb7YE0XEl2g4j4iIiIiISAuhJIqIZ2k4j4iIiIiIiIhIAyiJIiLioHkLRMQTdG8RERFp\nOZREERERERERERGpB82JIiIiIiIi4mM0J4qIZ7W4OVGSk5PVPVZERERERK4qNpuN5ORkb4dxVTKb\nzeTk5DSoDJPJxKFDhxocy5o1axg+fPgVH79//3769evX4Dh81VtvvcXzzz9/RceqJ4qIiIMeQyoi\nnqB7i4h4gq/2RElISODBBx9k8uTJHik/JyeH66+/nnbt2gHQrl07xo0bx5tvvkmrVq08Umdd9YeF\nhTFlyhRmzZoFGEmU7Oxsrr/+eo/HUpdx48Zx//33c99993k1Dk+51HU+d+4csbGx7N69m/Dw8Br3\naXE9UURERERERMS3+Pn5VTZOPaqkpITS0lIyMzNJT09nyZIlHq+zpvrXrl3LK6+8wrZt25q0/roc\nPXoUm83GmDFjvB2KR9WVTGzTpg0jRoxg5cqVl12ukigiIg76S7GIeILuLSIi1RUXF3P33XfToUMH\nQkNDGTVqFHl5eQC899571YaavPHGG4wePRqA1NRU+vTpQ0hICJ07d+bll1+utZ7w8HCGDRvG/v37\nnevmzZtHbGwswcHB9OjRg40bNzq3ZWdnEx8fj8ViITw8nPHjxzu3uQ7FKSsrY8aMGcTExGCxWBg8\neDDnzp2rVv+AAQPo0aMHe/furbYtISGBd99917m8YsUKBg8e7Fzetm0b3bp1w2KxMHXqVOLj4537\nV93XZDKxbNkybrzxRqxWK08++WSt1+Tjjz+mb9+++Pv7O9fFxMSwaNEievXqhdlsZvLkyRw7dowR\nI0YQEhLCsGHDKC4udu7/2WefMWjQIKxWK7179yYtLc25bfny5XTv3p3g4GC6du3KO++849xms9no\n1KkTv/3tb4mIiCAqKooVK1bUGmtJSQmTJ08mKiqKTp068dJLL1FRUQFU/6weeOABAG6//XYAbr75\nZsxmM+vXr6+x7ISEBFJTU2utuzZKooiIiIiIiEiTqqioYPLkyeTm5pKbm0tgYKCz4T9q1CiysrLI\nzs527p+SksKECRMACAoKYvXq1ZSUlJCamsrSpUvZtGmTW/mVvRDy8/PZunUrAwcOdG6LjY3l008/\n5dSpU8ydO5eJEydy7NgxAF566SXuuusuiouLycvLY9q0aTXGP3PmTPbs2UN6ejqFhYUsXLjQrYeN\n3W7HbrezY8cO9u3bR58+faqVUVevnIKCAhITE5k/fz6FhYV069aN9PT0OnvxpKamsmvXLr788kve\nf/99tm7dWuN+mZmZdOvWrVosGzZsYPv27WRlZbFlyxZGjBjBvHnzOH78OBUVFSxevBiAvLw87r77\n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\nQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plotWordcount('attempt-1')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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\nlPnz51e5jxLLiojUQKPbRMQTdG0RESkTFRXFhx9+6LH6MzMzMZlMmM1mzGYzISEhTJs2jYsXL9a7\n7qKiohoDKOXb79q1KwsWLKh32+VNnDixzgEUgJdffpnnnnuuAXvUvJhMJg4fPlzl9scee4yVK1dy\n6tSpy6+7Ph0TERERERERqS0vL6/Sv/B7VGFhIUVFRaSlpZGamsrixYs93mZl7a9atYpXX32V5OTk\nRm2/OsePHyclJYUxY8Y0dVc8qroRWW3atGHkyJEsW7bssutVEEVExEF5C0TEE3RtERGpqKCggLvv\nvpv27dsTGBjI6NGjyc7OBuCjjz6if//+bvu//fbbREdHA5CUlERERAQBAQF06dKFV155pcp2goKC\nGD58OOnp6c518+fPJywsDH9/f3r27Mm6deuc2zIyMoiMjMRisRAUFMSECROc21xHNxQXFzNz5kxC\nQ0OxWCwMGTKE8+fPV2h/4MCB9OzZkz179lTYVn5UztKlSxkyZIhzOTk5me7du2OxWJg2bRqRkZHO\n/cvvazKZSEhI4KabbsJqtfLUU09VeU6++OIL+vbti7e3t3NdaGgo8fHx9O7dG7PZzJQpUzhx4gQj\nR44kICCA4cOHU1BQ4Nz/66+/ZvDgwVitVvr06cPmzZud25YsWUKPHj3w9/enW7duvP/++85tKSkp\ndOrUid/97ncEBwfTsWNHli5dWmVfCwsLmTJlCh07dqRTp068/PLLlJSUABU/qwceeACAn/70pwDc\neuutmM1m1qxZU2ndUVFRJCUlVdl2VRREERERERERkUZVUlLClClTyMrKIisrC19fX+eN/+jRo9m/\nfz8ZGRnO/RMTE5k4cSIAfn5+rFixgsLCQpKSknjvvfdYv369W/2loxCOHTvGxo0bGTRokHNbWFgY\nX331FadPn2bevHlMmjSJEydOAMY0l7vuuouCggKys7OZPn16pf2fNWsWO3bsIDU1lby8PN566y23\nETZ2ux273c6WLVvYu3cvERERFeqoblROTk4OMTExLFiwgLy8PLp3705qamq1o3iSkpLYvn07u3fv\n5uOPP65yuk9aWhrdu3ev0Je1a9eyadMm9u/fz4YNGxg5ciTz58/n5MmTlJSUsGjRIgCys7O5++67\nmTt3Lvn5+cTHxzNu3Dhyc3MBCA4OJikpidOnT7NkyRJmzJjBjh07nG2dOHGC06dPc+zYMT788EOm\n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\nSZIkSUV+AoGTAV0xSuF7AAAAAElFTkSuQmCC\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plotWordcount('attempt-2')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABFEAAAHFCAYAAAA61mZVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X1c1HW+//8HkyIoAwwOgiaGSdkqmqzpQcsFW13DzdQ1\nzNBWy63cLFfTNGtTqq31grNtnsyl3X66XqDl/jxqUit9PQcrl+R4MsWLRdFFvqKpXIqGmsL3j88w\nznAlCsNw8bzfbnOL+Vy836/5zMwnP695v18fEBERERERERERERERERERERERERERERERERERERER\nERERERERERERERERERERERERERERERERERERERERERERF4oH1rg7iGZuIrC9kfqaD/y5kfpylRXA\nb90dRA1WAW+6Owg3mAJ86e4gREREREREbtZ84NNKy47WsGx8A/S3EPcmUUKBMsDkxhhuRiiNF280\n8H8boR9XmkLjXpyXAXfWY/+VwBsNFIsrRdOwn40pKIkiIiLSbDWXf0iLiLjCTmAw4GF73hloA/Tj\n+vmxM9AD+OIm276tIQJ0EY8bb9KkNLd4W5P6vjd6b0VERKRZURJFRFqzPUBbjKQJwBDgv4EjlZYd\nA74DugBbgXyM0Sm/cmgrHvgbxkiTYmAy0B0jUXMeSAGslfp/APgHUAjk2PYB8ANWA2eBbOBVrl9s\nxuM8miUU59EaqRi/7n9l63c70NG2riIRVASUAP9WzTHxAF4GsoA84CPAYlu3wvYaKywG/o/t73ZA\nAnAC41itALwcth0NfItxbLKAn9mWZwM/ddjO8fU5xnseiKTqr/iDgf+xbZMODHJYl0rNx8JRB+Az\njPe3xLZt50qxhGIc5ykY71U+MA0YAOzHeA//o1K7TwGHgALg70C3avquSSTXPxvfAlEO66ZgfCbP\nA8eBOOAe4E8Yr7/E1ic4T5mJBk4CL2F8tk4BY4CRGJ/5fIz3vsJAIM0Wwynb62trW1fx3uyz9Rdr\ne/6wLd5CYBfQx6G9COAbW9wbcP58OGqH8X72dlgWCHyP8R2yAttsfeTbYqlLMsbftt9ZjOPzCXC7\nw/oAjNExubb1m4D2VP/ZWIXzVKRonEerVHyHzgMHMY6ziIiIiIhIs/dfwEzb3+8BTwK/q7TsL7a/\nv7A99wTuxbgYG2pbFw9cAR6xPffCuABNwLjwHIJxQbXatv4O2/PHMEatBNjaxLbNf2Jc3N8BZGJc\n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\n/Xfv3p3FixfXu+/KJk6cyPbt2295/9dee42XXnqp3nGEhobyX//1XzWuHzVqFAcPHiQjI6PefTUV\nSqKIiNioWLWIuILOLSLibsnJUFTkvKyoyFjemG2AUWfCVmvCpYqLiykpKSEjI4O0tDSWL1/u8j6r\n63/9+vW88cYbpKSkNGr/tTl9+jSpqamMGTOm3m15eHhwoxo8jz/+OB988EG9+2oqlEQRERERERFp\nwe6/H1599XoSpKjIeH7//Y3bhqOioiIefvhhOnXqREBAAKNGjSI3NxeAjz76qMpUk3feeYfRo0cD\nkJycTEREBH5+fnTr1o3XX3+9xn4CAwMZPnw4hw4dsi9btGgRYWFh+Pr60rt3bzZv3mxfl5WVRVRU\nFP7+/gQGBjpNRXGcilNaWsrs2bMJDQ3F39+fIUOGcPny5Sr9R0ZG0rt3bw4cOFBlXeVROatWrWLI\nkCH25ykpKfTs2RN/f3+mT59OVFSUffvK25pMJhITE7n77ruxWCw8//zzNR6Tzz//nP79++Pp6Vmn\nYwLw5z//mV69etnX7927lyeeeIKcnBxGjRqF2WwmISGh2v6io6NJvtlsWxOmJIqIiI3qFoiIK+jc\nIiLu5u8Pb71lJD2ys43/vvWWsbwx23BUVlbG1KlTycnJIScnB29vb/uF/6hRo8jMzCQrK8u+fVJS\nEhMnTgTAx8eHtWvXUlxcTHJyMitWrGDLli1O7VeMjjh16hTbt29n0KBB9nVhYWF89dVXnD9/noUL\nFzJp0iTOnDkDGNNcHnroIYqKisjNzWXGjBnVxj9nzhz27t1LWloaBQUFLF261GmETXl5OeXl5eza\ntYuDBw8SERFRpY3aRuXk5eURGxvL4sWLKSgooGfPnqSlpdU6iic5OZk9e/awf/9+Pv744xqn+2Rk\nZNCzZ0+nZbUdk40bN/L666+zZs0azp8/z9atW+nYsSNr1qyhW7dubNu2jZKSEubMmVNtf/fccw/Z\n2dlcuHChxtibEyVRREREREREWjh/f3jpJejeHd5/HywW8PC4uYfFYuzbvbvR1q0mUAACAgIYO3Ys\nXl5e+Pj48Morr7Bz504A2rdvz+jRo1m/fj0AR48eJTMzk0ceeQSAqKgoevfuDUCfPn2YMGGCfd8K\nVqsVi8VC165d8fHxYdy4cfZ1jz76KMHBwQCMHz+eu+66i/T0dAA8PT3Jzs4mNzcXT09PBg8eXCX2\n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\n7RppaWlcuXLlpo5Bv3792LRpE6WlpWRlZTkVmR05ciQZGRls2bKFq1evsnz5cqcky43UNsVl2LBh\nfPPNNzcdb4ULFy7Qrl07+/F85ZVXnNavWbOGvXv38te//pVly5YxefJkp2RRTQYOHIjZbGbJkiWU\nlpZy7do1Dhw4wJ49ewBYu3Yt586dA8DPz8/+3gQGBmIymTh27Fit7e/cuZOYmJhbes2Omm0SJT4+\nXv8oERERERGRViU1NZX4hphP40Ymk4mZM2dSWlqK1Wpl8ODBxMTEVEmExMXFsWPHDmJjY50SGe+/\n/z4LFizA19eXN998k8cee6xKHxV3agkODmb37t32W9v26tWL2bNnM2jQIIKDgzlw4AAPPPCAfb89\ne/YQGRmJ2Wxm9OjRLFu2jNDQUACn+BISEujTpw8DBgygY8eOzJ8/3564qG1khOO6WbNm4enpSVBQ\nEE8++SSTJk2yr7darWzcuJG5c+ditVo5fPgw9913H+3atbO349hW5T5rK1obFBTEgw8+6HRXohvF\n6tjeL3/5S+644w5uv/12wsPDGTRokH1dTk4Os2bNYvXq1bRv357HH3+c++67jxdffBGAdevWER4e\nXm1/JpOJbdu28e2333LnnXcSGBjIM888w/nz5wHYvn074eHhmM1mZs2axYYNG2jXrh3t27fn1Vdf\n5f777ycgIID09HS+/PJLzGazve3Tp09z+PDhBrmts+tv0O0a5XUtHiMiIiIiItLS2C5aq7uea9LX\nSv3792fhwoX2IrFSN2VlZYSEhJCUlERUVFS92zt8+DCTJ0+2F9Rt6ebMmUNYWBjTpk2r8z41fceU\nRBEREREREWlmmmMS5eDBgwwYMIDMzExCQkLcHU6Tl5KSwsCBA/H29mbp0qWsWLGC48eP20ejiGvV\n9B1rttN5REQamqYIiogr6NwiIgLz5s1jxIgRLFmyRAmUOkpLSyMsLIzAwECSk5PZvHmzEihNgEai\niIjYpKam6lakItLgdG4REVdojiNRRJoTTecRERERERFpIZREEXEtTecREREREREREakHJVFERGxU\nt0BEXEHnFhERkZZDSRQRERERERERkTpQTRQREREREZFmRjVRRFxLNVFEREREREREbpHZbCY7O7te\nbZhMJo4fP17vWNatW8eIESNuef9Dhw4xYMCAesfRXL333nu8/PLLt7SvkigiIjaqWyAirqBzi4jI\n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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plotWordcount('attempt-3')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/rheem-examples.ipynb b/notebooks/examples/rheem-examples.ipynb similarity index 65% rename from rheem-examples.ipynb rename to notebooks/examples/rheem-examples.ipynb index 018264c..2236d50 100644 --- a/rheem-examples.ipynb +++ b/notebooks/examples/rheem-examples.ipynb @@ -1,5 +1,15 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prepare Rheem\n", + "\n", + "1. Load relevant modules\n", + "2. Import relevant packages" + ] + }, { "cell_type": "code", "execution_count": 1, @@ -58,7 +68,7 @@ "classpath.add(\"org.apache.spark\" % \"spark-core_2.11\" % \"1.6.1\")\n", "\n", "// Load the profiling utility used by Rheem.\n", - "classpath.add(\"de.hpi.isg\" % \"profiledb-store\" % \"0.1.0\")" + "classpath.add(\"de.hpi.isg\" % \"profiledb-store\" % \"0.1.1\")" ] }, { @@ -88,13 +98,15 @@ "\u001b[32mimport \u001b[36morg.qcri.rheem.core.api._\u001b[0m\n", "\u001b[32mimport \u001b[36morg.qcri.rheem.core.util._\u001b[0m\n", "\u001b[32mimport \u001b[36morg.qcri.rheem.core.function.FunctionDescriptor._\u001b[0m\n", + "\u001b[32mimport \u001b[36morg.qcri.rheem.basic.RheemBasics\u001b[0m\n", "\u001b[32mimport \u001b[36morg.qcri.rheem.java.Java\u001b[0m\n", "\u001b[32mimport \u001b[36morg.qcri.rheem.spark.Spark\u001b[0m\n", "\u001b[32mimport \u001b[36morg.qcri.rheem.sqlite3.Sqlite3\u001b[0m\n", "\u001b[32mimport \u001b[36mde.hpi.isg.profiledb.store.model._\u001b[0m\n", "\u001b[32mimport \u001b[36mscala.collection.JavaConversions._\u001b[0m\n", "\u001b[32mimport \u001b[36mscala.collection.mutable\u001b[0m\n", - "\u001b[36mconf\u001b[0m: \u001b[32morg\u001b[0m.\u001b[32mqcri\u001b[0m.\u001b[32mrheem\u001b[0m.\u001b[32mcore\u001b[0m.\u001b[32mapi\u001b[0m.\u001b[32mConfiguration\u001b[0m = Configuration[file:///Users/basti/Work/Temp/Rheem/rheem.properties]\n", + "\u001b[36mcwd\u001b[0m: \u001b[32mString\u001b[0m = \u001b[32m\"/Users/basti/Work/Notebooks/boss-2016/examples\"\u001b[0m\n", + "\u001b[36mconf\u001b[0m: \u001b[32morg\u001b[0m.\u001b[32mqcri\u001b[0m.\u001b[32mrheem\u001b[0m.\u001b[32mcore\u001b[0m.\u001b[32mapi\u001b[0m.\u001b[32mConfiguration\u001b[0m = Configuration[file:///Users/basti/Work/Notebooks/boss-2016/examples/rheem.properties]\n", "defined \u001b[32mfunction \u001b[36mprintStats\u001b[0m" ] }, @@ -109,6 +121,7 @@ "import org.qcri.rheem.core.api._\n", "import org.qcri.rheem.core.util._\n", "import org.qcri.rheem.core.function.FunctionDescriptor._\n", + "import org.qcri.rheem.basic.RheemBasics\n", "import org.qcri.rheem.java.Java\n", "import org.qcri.rheem.spark.Spark\n", "import org.qcri.rheem.sqlite3.Sqlite3\n", @@ -118,7 +131,8 @@ "import scala.collection.mutable\n", "\n", "// Create a configuration.\n", - "val conf = new Configuration(\"file:///Users/basti/Work/Temp/Rheem/rheem.properties\")\n", + "val cwd = \"/Users/basti/Work/Notebooks/boss-2016/examples\"\n", + "val conf = new Configuration(s\"file://$cwd/rheem.properties\")\n", "\n", "// Little utility to show some execution metadata.\n", "def printStats(experiment: Experiment) {\n", @@ -126,18 +140,36 @@ " case Some(measurement) => measurement.asInstanceOf[TimeMeasurement].getMillis\n", " case _ => 0\n", " }\n", + " \n", " val optTime = getTime(\"Optimization\")\n", " val execTime = getTime(\"Execution\")\n", " val loEstTime = getTime(\"Estimate 1 (lower)\")\n", " val hiEstTime = getTime(\"Estimate 1 (upper)\")\n", + " import org.qcri.rheem.core.profiling.PartialExecutionMeasurement\n", + " val executions = experiment.getMeasurements.toSeq\n", + " .filter(_.isInstanceOf[PartialExecutionMeasurement])\n", + " .map(_.asInstanceOf[PartialExecutionMeasurement])\n", + " .sortBy(_.getId)\n", " \n", " println(\"Statistics\")\n", " println(\"==========\")\n", " println(s\"The optimization took ${Formats.formatDuration(optTime)}\")\n", - " println(s\"The execution took ${Formats.formatDuration(execTime)}, while Rheem estimated ${Formats.formatDuration(loEstTime)} to ${Formats.formatDuration(hiEstTime)}.\")\n", + " println(s\"The execution took ${Formats.formatDuration(execTime)}, \" + \n", + " s\"while Rheem estimated ${Formats.formatDuration(loEstTime)} to ${Formats.formatDuration(hiEstTime)}.\")\n", + " for (execution <- executions) {\n", + " println(s\"* ${Formats.formatDuration(execution.getExecutionMillis)} \" + \n", + " s\"(est. ${execution.getEstimatedExecutionMillis}): ${execution.getOperators.mkString(\", \")}\")\n", + " }\n", "}" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Wordcount" + ] + }, { "cell_type": "code", "execution_count": 3, @@ -203,8 +235,10 @@ "\n", "Statistics\n", "==========\n", - "The optimization took 0:00:00.579\n", - "The execution took 0:00:00.221, while Rheem estimated 0:00:00.212 to 0:00:00.731.\n" + "The optimization took 0:00:01.045\n", + "The execution took 0:00:00.235, while Rheem estimated 0:00:00.086 to 0:00:00.531.\n", + "* 0:00:00.202 (est. (0:00:00.084 .. 0:00:00.529, p=7.31%)): JavaTextFileSource[Load file], JavaFlatMap[Split words], JavaFilter[Filter empty words], JavaMap[To lower case, add counter], JavaReduceBy[Add counters]\n", + "* 0:00:00.003 (est. (0:00:00.002 .. 0:00:00.002, p=76.95%)): JavaLocalCallbackSink[collect()]\n" ] }, { @@ -216,7 +250,6 @@ } ], "source": [ - "// Wordcount\n", "locally {\n", " val rheemContext = new RheemContext(conf)\n", " .withPlugin(Java.basicPlugin)\n", @@ -261,6 +294,13 @@ "}" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# SINDY" + ] + }, { "cell_type": "code", "execution_count": 4, @@ -272,14 +312,19 @@ "name": "stdout", "output_type": "stream", "text": [ - "Found 4 INDs:\n", - "REGION[R_REGIONKEY] is included in NATION[N_REGIONKEY] and NATION[N_NATIONKEY].\n", - "NATION[N_REGIONKEY] is included in REGION[R_REGIONKEY] and NATION[N_NATIONKEY].\n", + "Found 8 INDs:\n", + "REGION[R_REGIONKEY] is included in NATION[N_REGIONKEY] and NATION[N_NATIONKEY] and CUSTOMER[C_NATIONKEY].\n", + "NATION[N_NATIONKEY] is included in CUSTOMER[C_NATIONKEY].\n", + "NATION[N_REGIONKEY] is included in REGION[R_REGIONKEY] and NATION[N_NATIONKEY] and CUSTOMER[C_NATIONKEY].\n", + "CUSTOMER[C_NATIONKEY] is included in NATION[N_NATIONKEY].\n", "\n", "Statistics\n", "==========\n", - "The optimization took 0:00:00.000\n", - "The execution took 0:00:00.000, while Rheem estimated 0:00:00.000 to 0:00:00.000.\n" + "The optimization took 0:00:00.941\n", + "The execution took 0:00:00.750, while Rheem estimated 0:00:00.386 to 0:00:04.310.\n", + "* 0:00:00.588 (est. (0:00:00.329 .. 0:00:00.789, p=5.00%)): Sqlite3TableSource[Load REGION], SqlToStream[convert out@Sqlite3TableSource[Load REGION]], JavaFlatMap[Create cells for REGION], Sqlite3TableSource[Load NATION], SqlToStream[convert out@Sqlite3TableSource[Load NATION]], JavaFlatMap[Create cells for NATION], JavaUnionAll[2->1, id=38c80ca], Sqlite3TableSource[Load CUSTOMER], Sqlite3Projection[Project CUSTOMER], SqlToStream[convert out@Sqlite3Projection[Project CUSTOMER]], JavaFlatMap[Create cells for CUSTOMER], JavaUnionAll[2->1, id=4a5148e0], JavaMap[Prepare cell merging], JavaReduceBy[Merge cells]\n", + "* 0:00:00.132 (est. (0:00:00.052 .. 0:00:03.289, p=1.01%)): JavaFlatMap[Generate IND candidate sets], JavaReduceBy[Merge IND candidate sets]\n", + "* 0:00:00.000 (est. (0:00:00.005 .. 0:00:00.232, p=0.91%)): JavaFilter[Filter empty candidate sets], JavaLocalCallbackSink[collect()]\n" ] }, { @@ -291,14 +336,12 @@ } ], "source": [ - "// SINDY (IND discovery)\n", - "\n", "locally {\n", " \n", " // Parameters\n", " val jdbcUrl = \"jdbc:sqlite:/Users/basti/Work/Temp/Rheem/tpch.db\"\n", " val schemaDefPath = \"/Users/basti/Work/Temp/Rheem/tpch-schema.txt\"\n", - " val tables = Seq((\"REGION\", Seq(\"*\")), (\"NATION\", Seq(\"*\")))\n", + " val tables = Seq((\"REGION\", Seq(\"*\")), (\"NATION\", Seq(\"*\")), (\"CUSTOMER\", Seq(\"C_CUSTKEY\", \"C_NATIONKEY\")))\n", " \n", " \n", " // Define some of the more complex UDFs.\n", @@ -382,7 +425,7 @@ " .withPlugin(Sqlite3.plugin)\n", " rheemContext.getConfiguration.setProperty(\"rheem.sqlite3.jdbc.url\", jdbcUrl)\n", " val experiment = new Experiment(\"exp02\", new Subject(\"sindy\", \"v1.0\"))\n", - " val planBuilder = new PlanBuilder(rheemContext)\n", + " val planBuilder = new PlanBuilder(rheemContext).withExperiment(experiment)\n", "\n", " // Create cells from the various tables.\n", " var offset = 0\n", @@ -432,6 +475,13 @@ "}" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# PageRank" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -444,61 +494,90 @@ "output_type": "stream", "text": [ "Calculate page ranks for 659133 vertices:\n", - "United_States has a page rank of 0.001323096.\n", - "France has a page rank of 7.284153E-4.\n", - "Germany has a page rank of 7.254262E-4.\n", - "World_War_II has a page rank of 6.274851E-4.\n", - "Category:American_people has a page rank of 5.342795E-4.\n", - "Italy has a page rank of 4.8019184E-4.\n", - "English_language has a page rank of 4.735535E-4.\n", - "United_Kingdom has a page rank of 4.205242E-4.\n", - "Switzerland has a page rank of 4.098024E-4.\n", - "World_War_I has a page rank of 3.8821474E-4.\n", - "Paris has a page rank of 3.7255522E-4.\n", - "New_York_City has a page rank of 3.665075E-4.\n", - "Category:German_people has a page rank of 3.5535655E-4.\n", - "Austria has a page rank of 3.3793878E-4.\n", - "London has a page rank of 3.3367594E-4.\n", - "Canada has a page rank of 3.311628E-4.\n", - "Berlin has a page rank of 3.3020417E-4.\n", - "Russia has a page rank of 3.258669E-4.\n", - "Association_football has a page rank of 3.1233847E-4.\n", - "England has a page rank of 2.9962158E-4.\n", - "Spain has a page rank of 2.9902352E-4.\n", - "Latin has a page rank of 2.9132134E-4.\n", - "Category:Writers has a page rank of 2.8897644E-4.\n", - "California has a page rank of 2.731293E-4.\n", - "Japan has a page rank of 2.7125422E-4.\n", - "German_language has a page rank of 2.553056E-4.\n", - "Poland has a page rank of 2.5427595E-4.\n", - "India has a page rank of 2.3686688E-4.\n", - "French_language has a page rank of 2.3386511E-4.\n", - "U.S._state has a page rank of 2.3268582E-4.\n", - "Netherlands has a page rank of 2.3079186E-4.\n", - "Soviet_Union has a page rank of 2.2724643E-4.\n", - "Sweden has a page rank of 2.1854966E-4.\n", - "Category:Actors has a page rank of 2.1739691E-4.\n", - "Actor has a page rank of 2.1558623E-4.\n", - "Politician has a page rank of 2.1318553E-4.\n", - "Catholic_Church has a page rank of 2.0500206E-4.\n", - "Australia has a page rank of 2.0363448E-4.\n", - "Europe has a page rank of 2.018954E-4.\n", - "Person has a page rank of 1.9437057E-4.\n", - "China has a page rank of 1.9305451E-4.\n", - "Category:British_people has a page rank of 1.9034393E-4.\n", - "Vienna has a page rank of 1.8953046E-4.\n", - "Rome has a page rank of 1.8001557E-4.\n", - "Denmark has a page rank of 1.790698E-4.\n", - "Brazil has a page rank of 1.7606062E-4.\n", - "United_States_dollar has a page rank of 1.7575025E-4.\n", - "Ancient_Rome has a page rank of 1.728541E-4.\n", - "Japanese_writing_system has a page rank of 1.6633516E-4.\n", - "Turkey has a page rank of 1.6420626E-4.\n", + "United_States has a page rank of 0.0010866255.\n", + "France has a page rank of 5.982427E-4.\n", + "Germany has a page rank of 5.957829E-4.\n", + "World_War_II has a page rank of 5.1534176E-4.\n", + "Category:American_people has a page rank of 4.3901728E-4.\n", + "Italy has a page rank of 3.9436592E-4.\n", + "English_language has a page rank of 3.8891463E-4.\n", + "United_Kingdom has a page rank of 3.4536282E-4.\n", + "Switzerland has a page rank of 3.365571E-4.\n", + "World_War_I has a page rank of 3.1882824E-4.\n", + "Paris has a page rank of 3.0596784E-4.\n", + "New_York_City has a page rank of 3.0100156E-4.\n", + "Category:German_people has a page rank of 2.9207076E-4.\n", + "Austria has a page rank of 2.775387E-4.\n", + "London has a page rank of 2.740376E-4.\n", + "Canada has a page rank of 2.7197317E-4.\n", + "Berlin has a page rank of 2.7118597E-4.\n", + "Russia has a page rank of 2.6762547E-4.\n", + "Association_football has a page rank of 2.5651415E-4.\n", + "England has a page rank of 2.4606974E-4.\n", + "Spain has a page rank of 2.4557926E-4.\n", + "Latin has a page rank of 2.3925334E-4.\n", + "Category:Writers has a page rank of 2.3755526E-4.\n", + "California has a page rank of 2.2431264E-4.\n", + "Japan has a page rank of 2.2277278E-4.\n", + "German_language has a page rank of 2.0967482E-4.\n", + "Poland has a page rank of 2.0882959E-4.\n", + "India has a page rank of 1.9453221E-4.\n", + "French_language has a page rank of 1.920665E-4.\n", + "U.S._state has a page rank of 1.9109814E-4.\n", + "Netherlands has a page rank of 1.8954289E-4.\n", + "Soviet_Union has a page rank of 1.8663102E-4.\n", + "Sweden has a page rank of 1.794886E-4.\n", + "Category:Actors has a page rank of 1.7876958E-4.\n", + "Actor has a page rank of 1.7705486E-4.\n", + "Politician has a page rank of 1.7508295E-4.\n", + "Catholic_Church has a page rank of 1.6836215E-4.\n", + "Australia has a page rank of 1.6723899E-4.\n", + "Europe has a page rank of 1.6581088E-4.\n", + "Person has a page rank of 1.5985842E-4.\n", + "China has a page rank of 1.5854985E-4.\n", + "Category:British_people has a page rank of 1.565515E-4.\n", + "Vienna has a page rank of 1.5565596E-4.\n", + "Rome has a page rank of 1.4784158E-4.\n", + "Denmark has a page rank of 1.4706489E-4.\n", + "Brazil has a page rank of 1.4459356E-4.\n", + "United_States_dollar has a page rank of 1.4433841E-4.\n", + "Ancient_Rome has a page rank of 1.4196007E-4.\n", + "Japanese_writing_system has a page rank of 1.3660626E-4.\n", + "Turkey has a page rank of 1.3485778E-4.\n", "\n", "Statistics\n", "==========\n", - "The optimization took 0:00:01.214\n", - "The execution took 0:00:11.610, while Rheem estimated 0:00:14.409 to 0:52:44.521.\n" + "The optimization took 0:00:00.148\n", + "The execution took 0:00:31.767, while Rheem estimated 0:00:47.708 to 2:18:42.213.\n", + "* 0:00:02.918 (est. (0:00:00.535 .. 0:00:03.224, p=18.05%)): JavaTextFileSource[Load file], JavaFilter[Filter comments], JavaMap[Parse triples], JavaMap[Discard predicate], JavaCollect[convert out@JavaMap[Discard predicate]]\n", + "* 0:00:02.645 (est. (0:00:00.374 .. 0:01:26.089, p=3.58%)): JavaFlatMap[Extract vertices], JavaDistinct[Distinct vertices], JavaMap[Add vertex IDs], JavaCollect[convert out@JavaMap[Add vertex IDs]]\n", + "* 0:00:05.417 (est. (0:00:04.590 .. 0:18:42.146, p=0.22%)): JavaJoin[Join source vertex IDs], JavaMap[Set source vertex ID], JavaJoin[Join target vertex IDs], JavaMap[Set target vertex ID], JavaMap[PageRank (forward)], JavaCollect[convert out@JavaMap[PageRank (forward)]]\n", + "* 0:00:00.268 (est. (0:00:03.063 .. 0:03:56.576, p=0.11%)): JavaMap[PageRank (prepare adjacencies)], JavaReduceBy[PageRank (create adjacencies)]\n", + "* 0:00:00.621 (est. (0:00:05.091 .. 0:20:20.765, p=0.45%)): JavaFlatMap[PageRank (extract vertices)], JavaDistinct[PageRank (distinct vertices)], JavaCollect[convert out@JavaDistinct[PageRank (distinct vertices)]]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.014, p=6.73%)): JavaCount[PageRank (count vertices)]\n", + "* 0:00:00.011 (est. (0:00:00.002 .. 0:00:00.002, p=0.50%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:01.477 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (initialize ranks)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.12%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:03.009 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.03%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:00.835 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.01%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:00.898 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:01.050 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:01.396 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:03.085 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:01.271 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:01.579 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:02.725 (est. (0:00:03.394 .. 0:08:58.326, p=0.00%)): JavaMap[PageRank (damping)], JavaJoin[PageRank (join adjacencies and ranks)], JavaFlatMap[PageRank (create partial ranks)], JavaReduceBy[PageRank (sum partial ranks)]\n", + "* 0:00:00.000 (est. (0:00:00.002 .. 0:00:00.002, p=0.00%)): JavaRepeat[PageRank (loop head)]\n", + "* 0:00:00.091 (est. (0:00:00.005 .. 0:00:00.178, p=0.00%)): JavaMap[PageRank (damping)]\n", + "* 0:00:00.216 (est. (0:00:00.086 .. 0:04:29.939, p=0.02%)): JavaJoin[Join page ranks with vertex IDs], JavaMap[Make page ranks readable], JavaLocalCallbackSink[collect()]\n" ] }, { @@ -510,8 +589,6 @@ } ], "source": [ - "// PageRank on RDF data\n", - "\n", "locally {\n", " import org.qcri.rheem.api.graph._\n", " \n", @@ -527,7 +604,8 @@ " // Initialize.\n", " val rheemCtx = new RheemContext(conf)\n", " .withPlugin(Java.basicPlugin)\n", - " .withPlugin(Java.graphPlugin)\n", + "// .withPlugin(Java.graphPlugin)\n", + " .withPlugin(RheemBasics.graphPlugin)\n", " val experiment = new Experiment(\"exp03\", new Subject(\"pagerank\", \"v1.0\"))\n", " val planBuilder = new PlanBuilder(rheemCtx)\n", " .withJobName(s\"PageRank ($inputUrl, $numIterations iterations)\")\n", @@ -575,7 +653,6 @@ "\n", " // Make the page ranks readable.\n", " val result = pageRanks\n", - " .map(identity).withName(\"Hotfix\")\n", " .join[VertexId, Long](_.field0, vertexIds, _.field0).withName(\"Join page ranks with vertex IDs\")\n", " .map(joinTuple => (joinTuple.field1.field1, joinTuple.field0.field1)).withName(\"Make page ranks readable\")\n", " .collect()\n", diff --git a/notebooks/examples/rheem.properties b/notebooks/examples/rheem.properties new file mode 100644 index 0000000..f9487e2 --- /dev/null +++ b/notebooks/examples/rheem.properties @@ -0,0 +1,5 @@ +spark.master = local +rheem.spark.init.ms = 10000 +rheem.core.optimizer.instrumentation = org.qcri.rheem.core.profiling.FullInstrumentationStrategy +rheem.core.log.executions = /Users/basti/Work/Notebooks/boss-2016/examples/executions.json +rheem.core.log.cardinalities = /Users/basti/Work/Notebooks/boss-2016/examples/cardinalities.json \ No newline at end of file diff --git a/pagerank/src/main/scala/com/github/sekruse/pagerank/PageRank.scala b/pagerank/src/main/scala/com/github/sekruse/pagerank/PageRank.scala index 3dc4fad..af9ccb3 100644 --- a/pagerank/src/main/scala/com/github/sekruse/pagerank/PageRank.scala +++ b/pagerank/src/main/scala/com/github/sekruse/pagerank/PageRank.scala @@ -58,7 +58,6 @@ class PageRank(configuration: Configuration, plugins: Plugin*) { // Make the page ranks readable. pageRanks - .map(identity).withName("Hotfix") .join[VertexId, Long](_.field0, vertexIds, _.field0).withName("Join page ranks with vertex IDs") .map(joinTuple => (joinTuple.field1.field1, joinTuple.field0.field1)).withName("Make page ranks readable") .collect()