Following article explains about very high performance on WSO2 CEP on the same JVM. With CEP how can I start another java application (main class) that is running on same JVM. i.e if I start a java program with JAVA command it will run on a different jvm than CEP runnign jvm.
I am interested on achieving very high TPS rate. I am thinking that websokets and wso2events transports can give me high TPS rates from the supported transport list of CEP. So I wrote sample message generators (java programs) for both websockets and wso2events but I couldn't achieve the TPS rates mentioned in above reference. So same JVM might be the issue here.
Above article is written for old CEP release, nFrom CEP 4.0.0 on wards can be tuned to achieve higher TPS. We recommend you to use wso2event and you need to configure thrift protocol data agent and data bridge.
If you are using a thrift data agent publisher to publish events to CEP, increase the size of QueueSize in data-agent-config.xml file. You can use sample performance producer client to publish events [1]. The data-agent-config.xml file of that sample producer is located in the resources directory [2].
Depending on the processing and siddhi queries of your CEP, you may have to increase the eventBufferCapacity in data-bridge-config.xml which resides in /repository/conf/data-bridge/ directory. If you are publishing events from the CEP, use wso2event publisher and increase the QueueSize of /repository/conf/data-bridge/.
Please refer Performance Tuning Recommendations [3] for more details. On the hand tuning CEP instance with very high TPS will result in high latency as well.
[1] https://github.com/wso2/product-cep/tree/master/modules/samples/producers/wso2-event-performance
[3] https://docs.wso2.com/display/CEP400/Performance+Tuning+Recommendations