I have given some feedback on the gsoc site.

Suho

On Mon, Mar 27, 2017 at 9:03 PM, Gobinath <slgobin...@gmail.com> 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 <s...@wso2.com>
> 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 <slgobin...@gmail.com> 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  : slgobin...@gmail.com
>>> 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  : slgobin...@gmail.com
> 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>*
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to