Hi all, Thanks Suho for your feedback. I have made the changes based on your suggestions and submitted the final proposal. Started working on a prototype and will update you soon with the results.
Thanks & Regards, Gobinath On Thu, Mar 30, 2017 at 12:28 PM, Sriskandarajah Suhothayan <[email protected]> wrote: > I have given some feedback on the gsoc site. > > Suho > > On Mon, Mar 27, 2017 at 9:03 PM, Gobinath <[email protected]> wrote: > >> Hi all, >> >> Thanks. I have shared the draft of my proposal titled "Non-Occurrence of >> Events for Siddhi Patterns" with WSO2 through GSoC dashboard and requesting >> your feedback on this. >> >> >> Thanks & Regards, >> Gobinath >> >> On Wed, Mar 15, 2017 at 1:30 PM, Sriskandarajah Suhothayan <[email protected] >> > wrote: >> >>> Thanks for the GSoC idea, I hope this will be a good way to improve the >>> Siddhi language and make it more powerfull. >>> If time permits we can also add other use-cases of patterns & sequences >>> and improve it further. >>> >>> Since you are still not a commuter I hope these contributions will help >>> you be a committer to Siddhi as well :) >>> I'll make this as a formal idea, do work on a proposal as well. >>> >>> Regards >>> Suho >>> >>> >>> On Wed, Mar 15, 2017 at 6:09 PM, Gobinath <[email protected]> wrote: >>> >>>> Hi team, >>>> >>>> This is Gobinath a former software engineer at WSO2 currently doing >>>> masters at Western University. This time I plan to do GSoC with WSO2 and >>>> this is the basic idea of what I have discussed with Suho. >>>> Based on Suho's suggestion, I come up with a proposal to implement >>>> detecting non-occurring events using Siddhi patterns. The current Siddhi >>>> patterns allow identifying the patterns that present. >>>> >>>> See an example: >>>> from every e1=Stream1[price>20] -> e2=Stream2[price>e1.price] within 1 >>>> sec >>>> select e1.symbol as symbol1, e2.symbol as symbol2 >>>> insert into OutputStream; >>>> >>>> Detecting the absence of a pattern is not natively supported by Siddhi >>>> patterns for the moment. In other words, identifying event_a not followed >>>> by event_b within 2 minutes is not possible using the current patterns >>>> implementation (Note that a time frame is required otherwise we have to >>>> wait for infinite time to say event_b has not arrived). The current >>>> workaround [1] to detect non-delivered items is shown below: >>>> >>>> from arrivals_stream#window.time(2 minutes) >>>> select * >>>> insert expired events into overdue_deliveries_stream; >>>> >>>> from every arrivalEvent = arrivals_stream -> >>>> deliveryEvent = deliveries_stream[arrivalEvent.trackingId == >>>> trackingId] >>>> or overdue_delivery = overdue_deliveries_stream[arrivalEvent.trackingId >>>> == trackingId] >>>> select arrivalEvent.trackingId as trackingId, arrivalEvent.customerName >>>> as customerName, arrivalEvent.telephoneNo as telephoneNo, >>>> deliveryEvent.trackingId as deliveryId >>>> insert into filter_stream; >>>> >>>> from filter_stream [ (deliveryId is null)] >>>> select trackingId, customerName, telephoneNo >>>> insert into alert_stream; >>>> >>>> This solution requires a time window and it is inefficient if we are >>>> interested only on one occurrence of such a pattern (In other words same >>>> query without every keyword). Further, the query is more complex and not >>>> user-friendly. >>>> >>>> If we provide patterns to detect absence of patterns, the above query >>>> can be rewritten as below: >>>> >>>> from every arrivalEvent = arrivals_stream -> (not >>>> deliveries_stream[arrivalEvent.trackingId == trackingId] within 2 min ) >>>> select arrivalEvent.trackingId as trackingId, arrivalEvent.customerName >>>> as customerName, arrivalEvent.telephoneNo as telephoneNo >>>> insert into alert_stream; >>>> >>>> As you can see, we can use the existing language components like not & >>>> within. This can be achieved by extending the existing >>>> StreamPreStateProcessors and StreamPostStateProcessors with an internal >>>> timer so that they can expire their internal list of events based on the >>>> time limit. It is somewhat similar to time windows but the processor can >>>> turn off the timer and ignore the events if it is a one time pattern >>>> detection. >>>> >>>> I hope it gives the basic idea and I am waiting for your suggestions >>>> and feedback. >>>> >>>> [1] https://docs.wso2.com/display/CEP400/Sample+0111+-+Detec >>>> ting+non-occurrences+with+Patterns >>>> >>>> >>>> Thanks & Regards, >>>> Gobinath >>>> -- >>>> *Gobinath** Loganathan* >>>> Graduate Student, >>>> Electrical and Computer Engineering, >>>> Western University. >>>> Email : [email protected] >>>> Mobile : (+1) 416-895-0721 >>>> Blog : javahelps.com <http://www.javahelps.com/> >>>> >>>> >>> >>> >>> >>> -- >>> >>> *S. Suhothayan* >>> Associate Director / Architect & Team Lead of WSO2 Complex Event >>> Processor >>> *WSO2 Inc. *http://wso2.com >>> * <http://wso2.com/>* >>> lean . enterprise . middleware >>> >>> >>> *cell: (+94) 779 756 757 <077%20975%206757> | 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>* >>> >> >> >> >> -- >> *Gobinath** Loganathan* >> Graduate Student, >> Electrical and Computer Engineering, >> Western University. >> Email : [email protected] >> Mobile : (+1) 416-895-0721 >> Blog : javahelps.com <http://www.javahelps.com/> >> >> > > > > -- > > *S. Suhothayan* > Associate Director / Architect > *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>* > -- *Gobinath** Loganathan* Graduate Student, Electrical and Computer Engineering, Western University. Email : [email protected] Mobile : (+1) 416-895-0721 Blog : javahelps.com <http://www.javahelps.com/>
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
