Thanks Kishore. My use case requires starting a server socket when an instance becomes Master. Stop the server when that Master becomes Slave. And start a client socket when in Slave state. The Slave will have to lookup the Master's server socket info. I'm fairly far along with using HelixPropertyStore. One advantage I see is that using the PropertyStore I can set with AccessOption.EPHEMERAL option, which works for my use case.
When I have time I'll look into the InstanceConfig option. Thanks again. On Mar 11, 2013, at 1:54 AM, kishore g <[email protected]> wrote: > Hi Ming, > > InstanceConfig is the right choice. You can update this during start up, > there is a callback interface called preConnectCallback, this is invoked > after you connect to cluster but before liveInstance znode is created. You > can set the config here using > > manager.getConfigAccessor().set(ConfigScope, key, value) > > See TestConfigAccessor on how to create ConfigScope, it basically allows you > to set config at a cluster, instance, resource, partition level. > > Hope this helps. > > Thanks, > Kishore G > > > On Sun, Mar 10, 2013 at 9:42 PM, Ming Fang <[email protected]> wrote: > I have a use case similar to rsync-replicated-file-system recipe. > One difference is that my Master needs to communicate the server host and > port to the Slave. > Also the server port will be dynamic. > > There seems to be three ways to communicate config changes to the Slave, > InstanceConfig, ConfigScope, and ZkHelixPropertyStore. > I actually don't know what ConfigScope is for. > > InstanceConfig at first appears to the right place since it is the Master > instance config that is changing. > But there does not seem to be a way to update it once it is added the Admin. > > That leaves me with ZkHelixPropertyStore. > Is ZkHelixPropertyStore the best way to do this? > > Thanks > >
