Marcelo R.N. Mendes. What is FINCoS? A set of tools for data generation, load submission, and...

99
FINCoS Framework Tutorial Marcelo R.N. Mendes

Transcript of Marcelo R.N. Mendes. What is FINCoS? A set of tools for data generation, load submission, and...

Benchmarking Event Processing Systems: Current State and Future Directions

FINCoS Framework TutorialMarcelo R.N. Mendes

1What is FINCoS?A set of tools for data generation, load submission, and performance measurement of CEP systems;Main Characteristics:Flexible;Independent of particular workloads;Neutral (not bound to any specific CEP product);Correctness check;Scalable.2CISUC, University of Coimbra - [email protected], 20122FINCoS: Architecture3CISUC, University of Coimbra - [email protected], 2012

Scalability:It is easy to increase the load: simply add more Drivers!

Validation and Performance Measuring: Plug-and-Play Validators

Independence of CEP Products and workloads

Flexibility:Several Test Options

3FINCoS: ComponentsControllerMain Interface with the user. Allows to:Create reusable test setups;Control Drivers and Sinks (e.g., load, start, stop);Alter workload parameters on-the-fly (e.g., event submission rates, switch phases)

4CISUC, University of Coimbra - [email protected], 2012

4FINCoS: ComponentsDriverSimulates external sources of events;Submits load to the SUT;Includes data generation mechanism;SinkReceives query results from CEP engine;Stores output events in log files or send them via network for subsequent validation;

5CISUC, University of Coimbra - [email protected], 2012

5FINCoS: ComponentsPerformance MonitorCollect Metrics of Performance RunsTwo Modes:Online (network);Offline (log files).

6CISUC, University of Coimbra - [email protected], 2012

6FINCoS: ComponentsJanuary, 2012CISUC, University of Coimbra - [email protected]

AdapterOn Input: converts from the framework neutral representation (CSV) to CEP systems native representationOn Ouput: converts output events from CEP systems native format to neutral representation (CSV)

7Lesson 1: Creating a Test SetupConfigure a DriverDecomposable WorkloadSynthetic vs. Thirdy-Party DatasetData Generation OptionsEvent Arrival ProcessConfigure a SinkJanuary, 2012CISUC, University of Coimbra - [email protected], 2012CISUC, University of Coimbra - [email protected]

9January, 2012CISUC, University of Coimbra - [email protected]

10January, 2012CISUC, University of Coimbra - [email protected]

unique identifier

number of threads used for load generationsave generated data to disk?real time performance monitoring?to where Driver send the eventsmachine that hosts the Driver11January, 2012CISUC, University of Coimbra - [email protected]

Workload can be split in independent phases 12January, 2012CISUC, University of Coimbra - [email protected]

13January, 2012CISUC, University of Coimbra - [email protected]

Chooses the type of workload for this phaseSets events arrival processEvent MixEvents are generated in a ordered wayWhen data generation happensTo ensure repeatability14January, 2012CISUC, University of Coimbra - [email protected]

Configure event types15January, 2012CISUC, University of Coimbra - [email protected]

16January, 2012CISUC, University of Coimbra - [email protected]

17January, 2012CISUC, University of Coimbra - [email protected]

Configure Event Type Schema18January, 2012CISUC, University of Coimbra - [email protected]

19January, 2012CISUC, University of Coimbra - [email protected]

20January, 2012CISUC, University of Coimbra - [email protected]

Column Name

21January, 2012CISUC, University of Coimbra - [email protected]

Column Type

22January, 2012CISUC, University of Coimbra - [email protected]

Data Generation Options

23January, 2012CISUC, University of Coimbra - [email protected]

Add Values24January, 2012CISUC, University of Coimbra - [email protected]

25January, 2012CISUC, University of Coimbra - [email protected]

26January, 2012CISUC, University of Coimbra - [email protected]

27January, 2012CISUC, University of Coimbra - [email protected]

28January, 2012CISUC, University of Coimbra - [email protected]

29January, 2012CISUC, University of Coimbra - [email protected]

30January, 2012CISUC, University of Coimbra - [email protected]

31January, 2012CISUC, University of Coimbra - [email protected]

32January, 2012CISUC, University of Coimbra - [email protected]

33January, 2012CISUC, University of Coimbra - [email protected]

34January, 2012CISUC, University of Coimbra - [email protected]

35January, 2012CISUC, University of Coimbra - [email protected]

36January, 2012CISUC, University of Coimbra - [email protected]

37January, 2012CISUC, University of Coimbra - [email protected]

unique identifierList of event types this Sink subscribes tofrom where Sink receive eventsmachine that hosts the SinkPort used by Sink to receive eventssave generated data to disk?real time performance monitoring?38January, 2012CISUC, University of Coimbra - [email protected]

39January, 2012CISUC, University of Coimbra - [email protected]

40January, 2012CISUC, University of Coimbra - [email protected]

41January, 2012CISUC, University of Coimbra - [email protected]

Done!42Lesson 2: Connecting with a CEP engineConfigure Connection PropertiesLoad FINCoS Adapter applicationJanuary, 2012CISUC, University of Coimbra - [email protected], 2012CISUC, University of Coimbra - [email protected]

List of input streamsList of output streamsNo Information Available Yet!44January, 2012CISUC, University of Coimbra - [email protected]

Retrieve list of streams45January, 2012CISUC, University of Coimbra - [email protected]

from the setup file created earlier46January, 2012CISUC, University of Coimbra - [email protected]

47January, 2012CISUC, University of Coimbra - [email protected]

Load vendor-specific connection properties 48January, 2012CISUC, University of Coimbra - [email protected]

Engine=EsperConfiguration_file_path=C:\\FINCoS\\queries\\esper\\Q1\\Stream_Set.xmlQueries_path=C:\\FINCoS\\queries\\esper\\Q1\\Query_Set.xmlEvent_format=Map49January, 2012CISUC, University of Coimbra - [email protected]

Connect to CEP engine50January, 2012CISUC, University of Coimbra - [email protected]

The list of streams in the CEP engine is retrieved and matched against the configured ones in the test setup51January, 2012CISUC, University of Coimbra - [email protected]

Loads the Adapter:Open Server Socket for Drivers (Input)Subscribes to streams at the CEP engine (Output)52January, 2012CISUC, University of Coimbra - [email protected]

Done!53Lesson 3: Running TestsLoad Drivers and SinksStart Load SubmissionControl Load Submission

NOTE: At this point the following steps must have been completed:Creation of a test setup;Connection with a CEP engine;Initialization of the FINCoS Daemon Service at the machines where Drivers and Sinks are intended to run;January, 2012CISUC, University of Coimbra - [email protected], 2012CISUC, University of Coimbra - [email protected]

Load components55January, 2012CISUC, University of Coimbra - [email protected]

56January, 2012CISUC, University of Coimbra - [email protected]

Start Load Submission57January, 2012CISUC, University of Coimbra - [email protected]

Sent/Received counts58January, 2012CISUC, University of Coimbra - [email protected]

59January, 2012CISUC, University of Coimbra - [email protected]

60January, 2012CISUC, University of Coimbra - [email protected]

61Lesson 4: Collecting Performance MetricsOffline Performance MeasurementAfter test completion, use FINCoS Performance Monitor to process log files

Online Performance MeasurementEnable realtime monitoring at Drivers and Sinks;Initialize FINCoS Performance Monitor in the Realtime Mode before test starts.

January, 2012CISUC, University of Coimbra - [email protected], 2012CISUC, University of Coimbra - [email protected]

Offline Performance Measurement63January, 2012CISUC, University of Coimbra - [email protected]

Add log files64January, 2012CISUC, University of Coimbra - [email protected]

Log file created after test completion65January, 2012CISUC, University of Coimbra - [email protected]

Configure M.I. here:Optionally, save collected metrics to a fileProcess log files66January, 2012CISUC, University of Coimbra - [email protected]

View Results67January, 2012CISUC, University of Coimbra - [email protected]

68January, 2012CISUC, University of Coimbra - [email protected]

Select the stream69January, 2012CISUC, University of Coimbra - [email protected]

Select the metric70January, 2012CISUC, University of Coimbra - [email protected]

Select exhibition scale71January, 2012CISUC, University of Coimbra - [email protected]

Add Metrics to the Chart72January, 2012CISUC, University of Coimbra - [email protected]

Change Visualization Options73Lesson 4: Collecting Performance Metrics (...cont)Offline Performance MeasurementAfter test completion, use FINCoS Performance Monitor to process log files

Online Performance MeasurementEnable realtime monitoring at Drivers and Sinks;Initialize FINCoS Performance Monitor in the Realtime Mode before test starts.

January, 2012CISUC, University of Coimbra - [email protected], 2012CISUC, University of Coimbra - [email protected]

Edit Driver Configuration75January, 2012CISUC, University of Coimbra - [email protected]

Enable Runtime Monitoring

76January, 2012CISUC, University of Coimbra - [email protected]

To where send eventsSend only a fraction of events

77January, 2012CISUC, University of Coimbra - [email protected]

78January, 2012CISUC, University of Coimbra - [email protected]

Edit Sink Configuration79January, 2012CISUC, University of Coimbra - [email protected]

Enable Runtime Monitoring

80January, 2012CISUC, University of Coimbra - [email protected]

81January, 2012CISUC, University of Coimbra - [email protected]

Select a test setup file82January, 2012CISUC, University of Coimbra - [email protected]

the one we have just modified83January, 2012CISUC, University of Coimbra - [email protected]

Performance Monitor is now listening to connections of Drivers and Sinks84January, 2012CISUC, University of Coimbra - [email protected]

Add counters85January, 2012CISUC, University of Coimbra - [email protected]

86January, 2012CISUC, University of Coimbra - [email protected]

87January, 2012CISUC, University of Coimbra - [email protected]

Drivers and Sinks are now connected with Performance Monitor88January, 2012CISUC, University of Coimbra - [email protected]

89January, 2012CISUC, University of Coimbra - [email protected]

90Lesson 5: Setting Test OptionsResponse Time Measurement ModeCommunication ModeLog FlushingJanuary, 2012CISUC, University of Coimbra - [email protected], 2012CISUC, University of Coimbra - [email protected]

92January, 2012CISUC, University of Coimbra - [email protected]

93January, 2012CISUC, University of Coimbra - [email protected]

94Response Time MeasurementJanuary, 2012CISUC, University of Coimbra - [email protected] ENGINESINKADAPTER234sendconvertinputconvertoutputprocessinputforwardgenerate resultforwardsend195Response Time MeasurementJanuary, 2012CISUC, University of Coimbra - [email protected] ENGINESINKADAPTERsendconvertinputconvertoutputprocessinputforwardgenerate resultforwardsendt = t4 t1End-to-end, in milliseconds:From Driver up to Sink 234196Response Time MeasurementJanuary, 2012CISUC, University of Coimbra - [email protected] ENGINESINKADAPTERsendconvertinputconvertoutputprocessinputforwardgenerate resultforwardsendt = t3 t2Inside Adapter, in nanoseconds:From immediately before the input event is forwarded to CEP engine to immediately after the result is received.234197When to use End-to-End RT Measurement ModeWhen communication mode is set to DIRECT (mandatory);When it is acceptable to have a less accurate response time measurement in order to reduce the overhead in the server machine;When you want to consider communication and conversion time as part of response time;When Drivers and Sinks run in the same machine (no problems with clock synchronization).January, 2012CISUC, University of Coimbra - [email protected] to use Inside Adapter RT Measurement ModeWhen accurate response time measurement is required;When you want exclude communication and conversion times from response time;When Drivers and Sinks run in different machines (requires synchronization between machines: inherently inaccurate 10ms);When the server machine can afford with the additional overhead of response time measurement.January, 2012CISUC, University of Coimbra - [email protected]