Hi Lasantha,

This is what I am looking for. I will update if I am getting any issues.

Thanks

*T. Pranavan*
*BSc Eng Undergraduate| Department of Computer Science & Engineering
,University of Moratuwa*
*Mobile| *0775136836

On 18 July 2015 at 01:56, Lasantha Fernando <[email protected]> wrote:

> Hi Pranavan,
>
> Actually I missed pointing this out in the earlier mail, the thing is, if
> you are using output rate limiting, your window should act more like a
> sliding window. You can refer to the implementation within Siddhi at [1].
> Looking at the code you have already written, it seems your
> CurveFinderWindowProcessor is based on the Siddhi TimeBatchWindowProcessor.
> The issue in that implementation is that it will output the events once
> they are expired only. i.e. for a 10 min window it will output the events
> received within that specific 10 mins as a batch at the end of the window
> time period.
>
> For output rate limiting of 1 min to work, your extension would have to
> act more similar to a sliding window (similar to the implementation in
> [1]). For example, if you write your curve fitting window to be similar to
> a sliding window, then whenever a new event comes, you can recalculate the
> curve function after ejecting any expired events and taking into
> consideration the new event. Then you can output the newly calculated
> values for the curve immediately. But since you have put an output rate
> limiter of 1 min in front, the events would actually come out of the query
> every 1 min. Will that approach work for your usecase?
>
> However, please note that if there are other specific requirements when
> implementing this CurveFitting extension, it might be efficient to
> implement this logic within your window processor extension itself. In that
> case, what you can do is implement the logic to pass the events to next
> processor at 1 min intervals, but still keep the events in the window
> itself for 10 min. e.g. Keep the window size to 10 min, but make the window
> processing be scheduled for 1 min interval. Then at the the time of calling
> the nextProcessor.process(event) method, do an additional check to see if
> the event is older for 1 min and dispatch to the next processor. You might
> have to maintain additional queues to know which events have been
> dispatched, but still in the window and which events are in window and not
> yet dispatched. The sum of the events in both those queues will be the
> actual window. I am simply suggesting an alternative approach here that
> might work.If you need to go with "CustomWindow hanldes all" approach. You
> might have to figure out other implementation details and adjust the design
> accordingly.
>
> Can you consider the above 2 approaches suggested/any other feasible
> approaches and decide which is more appropriate taking into consideration
> the usecase for this extension as well?
>
> [1]
> https://github.com/wso2/siddhi/blob/2.2.x/modules/siddhi-core/src/main/java/org/wso2/siddhi/core/query/processor/window/TimeWindowProcessor.java
>
> Thanks,
> Lasantha
>
> On 17 July 2015 at 09:51, Pranavan Theivendiram <[email protected]
> > wrote:
>
>> Hi Lasantha,
>>
>> I am using it. But I have some problems in getting the snapshot events of
>> 1 minute. Can you tell me a method how can I get those?
>>
>> Thanks
>>
>> *T. Pranavan*
>> *BSc Eng Undergraduate| Department of Computer Science & Engineering
>> ,University of Moratuwa*
>> *Mobile| *0775136836
>>
>> On 16 July 2015 at 11:32, Lasantha Fernando <[email protected]> wrote:
>>
>>> [Please copy dev list as well so that we can get input/feedback from a
>>> wider community in any discussions]
>>>
>>> Hi Pranavan,
>>>
>>> If you want to output every 1 min, you can use output rate limiting of
>>> Siddhi [1]. i.e. Keep a window of 10 min, and put output rate limiting to
>>> output all every 1 min.
>>>
>>> Will that work for your usecase? Can you write your curve fitting
>>> extension as a normal sliding time window and then put output rate limiting
>>> in front of that window and see if that fits your usecase?
>>>
>>> [1] https://docs.wso2.com/display/CEP310/Output+Rate+Limiting
>>>
>>> Thanks,
>>> Lasantha
>>>
>>> On 15 July 2015 at 20:41, Pranavan Theivendiram <
>>> [email protected]> wrote:
>>>
>>>>
>>>> Hi Lasantha,
>>>> The thing is that I have a window of 10 min. I am outputiing the events
>>>> every one min.
>>>> So I need to save the events as ten chunks of event lists. ( 10 lists
>>>> of events)
>>>> ?
>>>>
>>>> Is that possible?
>>>>
>>>> Thanks
>>>>
>>>> *T. Pranavan*
>>>> *BSc Eng Undergraduate| Department of Computer Science & Engineering
>>>> ,University of Moratuwa*
>>>> *Mobile| *0775136836
>>>>
>>>> On 15 July 2015 at 11:34, Lasantha Fernando <[email protected]> wrote:
>>>>
>>>>> Hi Pranavan,
>>>>>
>>>>> Can you elaborate more on what you mean by keeping the events in 10
>>>>> blocks and removing and adding of 1 min of events?
>>>>>
>>>>> If you need to output when 10 events are accumulated, then you have to
>>>>> write that logic where nextProcessor.process() is called in the run()
>>>>> method. However, that would be similar to a length batch window, and you
>>>>> won't be able to introduce any time constraint.
>>>>>
>>>>> If you want to process in batches of 10, you can modify the logic in
>>>>> if(removeEvent == null) condition.
>>>>>
>>>>> Can you work a bit further to modify the logic as necessary for your
>>>>> usecase? Then it will be easier to understand the issue you are facing by
>>>>> looking at your code.
>>>>>
>>>>> Thanks,
>>>>> Lasantha
>>>>>
>>>>> On 14 July 2015 at 21:58, Pranavan Theivendiram <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Kind remainder
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> *T. Pranavan*
>>>>>> *BSc Eng Undergraduate| Department of Computer Science & Engineering
>>>>>> ,University of Moratuwa*
>>>>>> *Mobile| *0775136836
>>>>>>
>>>>>> On 14 July 2015 at 08:05, Pranavan Theivendiram <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Lasantha,
>>>>>>>
>>>>>>> I am implementing a Sliding Window Processor for cep 3.1.0. The
>>>>>>> execution plans can be found in the link below.
>>>>>>> 1-
>>>>>>> https://github.com/Pranavan135/stratos/blob/CurveFittingGSoC/extensions/cep/artifacts/executionplans/CurveFinderOfHealthRequest.xml
>>>>>>>
>>>>>>> The implementation of Window Processor can be found below.
>>>>>>>
>>>>>>> 2 -
>>>>>>> https://github.com/Pranavan135/stratos/blob/CurveFittingGSoC/extensions/cep/stratos-cep-extension/src/main/java/org/apache/stratos/cep/extension/CurveFinderWindowProcessor.java
>>>>>>>
>>>>>>> Can you please suggest me a method where I can keep the events 10
>>>>>>> blocks. (Removing and Adding of 1 min of events)?
>>>>>>>
>>>>>>> Thanks
>>>>>>> *T. Pranavan*
>>>>>>> *BSc Eng Undergraduate| Department of Computer Science & Engineering
>>>>>>> ,University of Moratuwa*
>>>>>>> *Mobile| *0775136836
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Lasantha Fernando*
>>>>> Senior Software Engineer - Data Technologies Team
>>>>> WSO2 Inc. http://wso2.com
>>>>>
>>>>> email: [email protected]
>>>>> mobile: (+94) 71 5247551
>>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> *Lasantha Fernando*
>>> Senior Software Engineer - Data Technologies Team
>>> WSO2 Inc. http://wso2.com
>>>
>>> email: [email protected]
>>> mobile: (+94) 71 5247551
>>>
>>
>>
>
>
> --
> *Lasantha Fernando*
> Senior Software Engineer - Data Technologies Team
> WSO2 Inc. http://wso2.com
>
> email: [email protected]
> mobile: (+94) 71 5247551
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to