Hi Suho, Looks good.
If (bufferSize='xxxx') is optional, what is the default bufferSize that will be taken if I just add @plan:async ? seshi On Sun, May 15, 2016 at 3:58 PM, Sriskandarajah Suhothayan <s...@wso2.com> wrote: > > 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 <%28%2B94%29%20779%20756%20757> | 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 Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture