This code includes tests and implementation of several Sketch and Cache-based measurement algorithms with regular counters as well as with AEE estimators. Among them are the implementation of:
-
A single AEE estimator.
-
Count Min Sketch (Baseline, AEE MaxACCURACY, AEE MaxSpeed).
-
Conservative Update Sketch (Baseline, AEE MaxACCURACY).
-
Space Saving (Baseline Heap, Baseline, AEE MaxACCURACY).
-
RAP (Baseline using a heap, Baseline, AEE MaxACCURACY, AEE MaxACCURACY using a heap).
-
Dway-RAP (Baseline, AEE MaxACCURACY).
The Space Saving and RAP heap implementations (Baseline and AEE) are based on the code by Graham Cormode (see Methods for finding frequent items in data streams, VLDB J, 2010; http://hadjieleftheriou.com/frequent-items/).
-
Unweighted tests: a binary sequence of 13 bytes (packet 5-tuples).
-
Weighted tests: a binary sequence of 15 bytes (packet 5-tuples + 2 bytes specifying the packet length).
Each test produces text files with reported speed and ACCURACY results. The arguments that the main function receives are as follows:
"argv[1]: int N" - the length of the trace.
"argv[2]: int Seed" - a seed for the random number generators.
"argv[3]: int Alg" - the algorithm(s) to run (see main function).
"argv[4]: bool weighted_experiment" - is the experiment is weighted or not (should be aligned with the trace).
"argv[5]: String Trace" - a path to the used packet trace.