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
