base:
classes of basic data structures including
- dataset schema
- stream event
- event type
- pane
baselines: HAMLET, GRETA
query:
classes of clauses of a query, including aggregator, pattern, predicate, window and groupby.
QueryParser parses a query string into a Query object.
stream:
stream related classes, including stream loader.
users:
the dataset specifications. Including taxi, bus and stock dataset configurations.
workload:
workloadGenerators produce the workload file.
WorklaodAnalyzer parses a workload file into a workload object and analyzes the sharing opportunity.
Gloria optimizer:
takes in a workload and generates the optimized sharing plan. Including template, graph and the cost model packages. The graph package contains the node, edge, pool, path search algo and the prune engine.
Gloria executor: applies the sharing plan generated by the optimizer, creates/maitains snapshots during the shared execution.
src/main/resources/bus(stock/taxi) contains the stream file and workloads of the respective dataset.
OptimizerExperiments class contains all the experiments of optimizers
ExecutorExperiments class contains all the experiments of executors
GloriaVSHamletExperiments class contains all the experiments of Gloria vs. Hamlet
In each of these experiments, we run the models varying query num or events per window. For one setting, we run them several iterations and log the results of latency, throughput, memory and other details.
All charts are plotted using the average of iterations.
Outputs of experiments are under ~/output/