We listen to external view changes and compose a config file of shard mapping in our internal format that is used by our clients.
Will shutdownInProgress=true in InstanceConfig get reflected in external view immediately (Mark all partitions on the hosts with shutdownInProgress=true to be in a state other than Online/Master/Slave)? On Wed, Apr 18, 2018 at 6:14 PM, kishore g <[email protected]> wrote: > This is a good question. We have the same problem in Pinot and we solved > it using a shutdownInProgress flag in instanceConfig znode, spectator will > look into this flag and stop routing queries to that node. We avoided using > disable instance solution. > > The solution is as follows > - the participant sets shutdownInProgress=true in InstanceConfig in its > shutdownHook > - Broker routing table gets updated because it listens to changes in > instanceConfig. > - the routingTableProvider treats this node as disabled if it sees this > flag. (you need to extend routingtableprovider) > - when the participant restarts, as part of registering itself in Helix, > it sets the shudownInProgress=false. > > This is a valid feature and potentially be added to Helix. > > thanks, > Kishore G > > > On Wed, Apr 18, 2018 at 10:44 AM, Bo Liu <[email protected]> wrote: > >> Hi folks, >> >> We are running a service managed by Helix. When we rolling restart the >> service, we first disable instances through Helix before restarting the >> service processes in the hope that the read errors are minimized. >> >> However, the instances being restarted may get Online->Offline messages >> before clients get the latest version of the external view. I am wondering >> if there is any way to delay the Online->Offline messages generated by >> instance "disable" command? >> >> -- >> Best regards, >> Bo >> >> > -- Best regards, Bo
