Yes, it looks like a bug to me, can you check why it's happening. Regards Suho
On Sun, May 7, 2017 at 8:56 PM, Nirmal Fernando <[email protected]> wrote: > Looks like a bug to me. I would expect only 1 event. > > On Sun, May 7, 2017 at 8:49 PM, Gobinath <[email protected]> wrote: > >> Hi, >> >> Thanks for accepting my proposal. I have a question regarding the >> behavior of *and* in a pattern. >> >> // Query: e1 and e2 -> e3 >> >> define stream Stream1 (symbol string, price float, volume int); >> define stream Stream2 (symbol string, price float, volume int); >> >> @info(name = 'query1') >> from e1=Stream1[price > 50.0f] and e2=Stream2['IBM' == symbol] -> >> e3=Stream2[price > 20] >> select e1.symbol as symbol1, e2.price as price2, e3.price as price3 >> insert into OutputStream; >> >> // Input >> Stream1.send(new Object[]{"GOOGLE", 72.7f, 100}); >> Stream2.send(new Object[]{"IBM", 4.7f, 100}); >> Stream2.send(new Object[]{"WSO2", 55.6f, 100}); >> >> >> // Output >> Event{timestamp=1494169305631, data=[GOOGLE, 4.7, 55.6], isExpired=false} >> Event{timestamp=1494169305631, data=[GOOGLE, 4.7, 55.6], isExpired=false} >> >> Is this the expected output?. Note that the output contains two exactly >> similar events but the pattern *e1 -> e2 and e3* outputs a single event >> [1]. >> >> [1] https://github.com/wso2/siddhi/blob/master/modules/siddh >> i-core/src/test/java/org/wso2/siddhi/core/query/pattern/Logi >> calPatternTestCase.java#L98 >> >> >> Thanks & Regards, >> Gobinath >> >> On Mon, Apr 17, 2017 at 7:58 AM, Gobinath <[email protected]> wrote: >> >>> Hi, >>> >>> Please see the PR at [1]. Please do not merge it. >>> >>> >>> Thanks & Regards, >>> Gobinath >>> >>> [1] https://github.com/wso2/siddhi/pull/313 >>> >>> >>> On Mon, Apr 17, 2017 at 7:44 AM, Sriskandarajah Suhothayan < >>> [email protected]> wrote: >>> >>>> Based on first look, it looks great. >>>> >>>> Can you send it as a PR so I can see the exact implementations and also >>>> give comments. >>>> >>>> Regards >>>> Suho >>>> >>>> On Mon, Apr 17, 2017 at 5:30 AM, Gobinath <[email protected]> wrote: >>>> >>>>> Hi, >>>>> >>>>> A prototype is implemented and available at [1]. Currently the query >>>>> support for absent patterns and two simple pattern identifications (e1 >>>>> -> not e2 and not e1 -> e2) are implemented. Please have a look at >>>>> the unit test [2] to get the idea. Class names and variable names are >>>>> subject to change (will finalize later). I am waiting for your feedback. >>>>> >>>>> >>>>> Thanks & Regards, >>>>> Gobinath >>>>> >>>>> >>>>> [1] https://github.com/lgobinath/siddhi/tree/feature-absent- >>>>> event-pattern >>>>> [2] https://github.com/lgobinath/siddhi/blob/feature-absent- >>>>> event-pattern/modules/siddhi-core/src/test/java/org/wso2/sid >>>>> dhi/core/query/pattern/EveryAbsentPatternTestCase.java >>>>> >>>>> >>>>> On Fri, Mar 31, 2017 at 6:28 AM, Gobinath <[email protected]> >>>>> wrote: >>>>> >>>>>> 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 <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/> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *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 <+94%2077%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/> >>> >>> >> >> >> >> -- >> *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 >> >> > > > -- > > Thanks & regards, > Nirmal > > Technical Lead, WSO2 Inc. > Mobile: +94715779733 <071%20577%209733> > Blog: http://nirmalfdo.blogspot.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>*
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
