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 > > > > >
