Throwing an exception is good enough. Helix will put that node into Error state and pick another node to promote it to MASTER.
You can also disable that partition on that node using helix api. Hope that helps. On Tue, Sep 15, 2020 at 9:16 PM Brent Nash <[email protected]> wrote: > Hello! > > I had a follow-up question similar to an existing post: > > > https://mail-archives.apache.org/mod_mbox/helix-user/202008.mbox/%3CCAKg%2BLsmZBHKXkWUXcQX5cPuPgX6Wz9RpVSrjUZDeZ5TgAjjOGg%40mail.gmail.com%3E > > My apologies for creating a new thread. I couldn't figure out how to > reply to the existing one. > > Here is a hypothetical scenario: > > Let's say that I have a Helix controller running alongside a cluster. I > have a configuration with a resource named "Database" representing a > sharded database and a MASTER/SLAVE state model. > > Due to changes in the cluster, the Helix controller tells node > 10.144.100.1 that it should transition from the SLAVE state to the MASTER > state. But when the code on 10.144.100.1 attempts to transition from SLAVE > state to MASTER state, it encounters a failure (e.g. it can't open > its database shard) and cannot complete the transition to MASTER. > > Is there any way for node 10.144.100.1 to tell the Helix Controller that > it failed the transition and it can't become the MASTER? > > In general, how does the Helix Controller know whether or not a node > transitions state successfully? > > Thank you for your time and help! > > >
