Sorry to keep using the same thread but is there a callback which gets invoked when say a resource is added?
So example T1: 3 nodes : A, B and C T2: resource X gets added on A with 1 partition and 2 replicas T3: resource X is available on say A and B Is there a callback that can be registered on B so that the statemodel or some object will receive a message when X is added to B? On Thu, Feb 20, 2014 at 11:31 PM, kishore g <[email protected]> wrote: > Agree with that, there are some cases where the api's need to be async. We > have taskScheduler api that is well suited for such usecases. However, I > think there are some gaps in the design/ implementation. Fixing that will > allow us to easily support such operations. > > Yes, agree the API needs to be marked to throw a proper exception. > > thanks, > Kishore G > > > On Thu, Feb 20, 2014 at 11:17 PM, Sandeep Nayak <[email protected]> wrote: >> >> The dropResource works I imagine but adding the resource back >> immediately does not. I will try and play with delays to see if the >> cleanup works, currently I catch HelixException and ignore it. >> >> Thinking out aloud, I imagine a call to drop should return after some >> internal state tracks that the resource is removed and maybe queues a >> task for background propagation/removal across nodes. I imagine the >> task should fall on a queue/executor, a subsequent task would be for >> resource add. But both calls to remove and add should return as soon >> as the internal state is tracked to mark the state correctly. >> Eventually I imagine the remove task will execute on the background >> and upon acks from all other participants move on to the next task >> i.e. the tasks execute sequentially. >> >> Apologies on the above blurb, just sharing my thoughts I am sure you >> guys are well aware of what I am talking of. >> >> On a separate note maybe this API also needs to be marked on a ticket >> to throw a proper exception. >> >> Thanks, >> >> Sandeep >> >> On Thu, Feb 20, 2014 at 11:05 PM, kishore g <[email protected]> wrote: >> > Great! Thanks for your patience, I know it was not easy. We really need >> > lot >> > more work on documentation. Suggestions/feedback/contributions are >> > welcome. >> > >> > Did dropResource succeed, can you wait until it dissappears from >> > idealstates >> > and external view. You might want to give some time for the resource to >> > be >> > cleaned up. We can probably add additional safety check to addResource >> > back >> > when the resources are still active. >> > >> > thanks, >> > Kishore G >> > >> > >> > On Thu, Feb 20, 2014 at 10:16 PM, Sandeep Nayak <[email protected]> >> > wrote: >> >> >> >> Btw other than the remove, I have the resources working and >> >> distributing the way I want. So just wanted to say good work, it works >> >> nicely :-) >> >> >> >> Thanks, >> >> >> >> Sandeep >> >> >> >> On Thu, Feb 20, 2014 at 10:06 PM, Sandeep Nayak <[email protected]> >> >> wrote: >> >> > Does it need time to remove the resource? I tried dropResource and >> >> > the >> >> > very next call I invoke addResource to see if I can add it again and >> >> > the add call fails with the exception >> >> > >> >> > org.apache.helix.HelixException: Skip the operation. Resource ideal >> >> > state directory already exists:/cluster/IDEALSTATES/resource-name >> >> > >> >> > On Thu, Feb 20, 2014 at 10:03 PM, Kanak Biscuitwala >> >> > <[email protected]> wrote: >> >> >> Hi Sandeep, >> >> >> >> >> >> dropResource is correct. resetResource takes resources in error >> >> >> state >> >> >> and resets them to the initial state. >> >> >> >> >> >> Kanak >> >> >> ---------------------------------------- >> >> >>> Date: Thu, 20 Feb 2014 21:58:24 -0800 >> >> >>> Subject: Helix 0.6.2: Resetting or removing a resource >> >> >>> From: [email protected] >> >> >>> To: [email protected] >> >> >>> >> >> >>> Hi guys, >> >> >>> >> >> >>> Wanted to check what is the correct API for removing a resource so >> >> >>> that it is unavailable on any of the nodes? >> >> >>> >> >> >>> I see HelixAdmin.dropResource and HelixAdmin.resetResource. What is >> >> >>> the right API to use to remove a resource entirely from the >> >> >>> cluster? >> >> >>> >> >> >>> Thanks, >> >> >>> >> >> >>> Sandeep >> > >> > > >
