Hi

We have made Disruptor as optional for Siddhi[1], currently its always
enabled and it uses PhasedBackoffWaitStrategy, event though Disruptor was
giving high throughput there are several issues identified.

1. It is adding latency, and tuning latency is subject to use-cases hence
the deployment is becoming complicated.
2. PhasedBackoffWaitStrategy is not showing good results when there are
lots of Disruptors.

Hence we have removed disruptor by default and made is as an option to add
via configurations.

By using @plan:async(bufferSize='xxxx') you can enable Disruptor at all
streams in an execution-plan with the queue size of xxxx.  Here
(bufferSize='xxxx') is optional.

e.g

*@plan:async(bufferSize='2')*

define stream cseEventStream (symbol string, price float, volume int);

@info(name = 'query1')
from cseEventStream[70 > price]
select *
insert into innerStream ;

@info(name = 'query2')
from innerStream[volume > 90]
select *
insert into outputStream ;

In this case cseEventStream, innerStream and outputStream will have
async behaviors using Disruptor

Alternatively we can also enable Disruptor for specific streams by
annotating them as below.

e.g

*@async(bufferSize='2')*
define stream cseEventStream (symbol string, price float, volume int);

@info(name = 'query1')
from cseEventStream[70 > price]
select *
insert into innerStream ;

@info(name = 'query2')
from innerStream[volume > 90]
select *
insert into outputStream ;


Here only cseEventStream will have async behavior using Disruptor

Performance stats after the improvements.

Filter Query *without* *Disruptor*
Throughput : 3.5M Events/sec
Time spend :  *2.29E-4 ms*

Filter Query *with Disruptor *
Throughput : *6.1M Events/sec *
Time spend :  0.028464 ms

Multiple Filter Query without Disruptor
Throughput : 3.0M Events/sec
Time spend :  2.91E-4 ms

Multiple Filter Query with Disruptor
Throughput : 5.5M Events/sec
Time spend :  0.089888 ms

[1]https://github.com/wso2/siddhi/tree/latency

Regards
Suho

-- 

*S. Suhothayan*
Technical Lead & Team Lead of WSO2 Complex Event Processor
*WSO2 Inc. *http://wso2.com
* <http://wso2.com/>*
lean . enterprise . middleware


*cell: (+94) 779 756 757 | blog: http://suhothayan.blogspot.com/
<http://suhothayan.blogspot.com/>twitter: http://twitter.com/suhothayan
<http://twitter.com/suhothayan> | linked-in:
http://lk.linkedin.com/in/suhothayan <http://lk.linkedin.com/in/suhothayan>*
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to