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