Currently our API or gfsh commands allow you to create a cluster with a mix of locators with and without CC. Our DM maintains a list of locators and a separate list of locators with CC enabled. It is bad, I know. But I am not sure if we can change it.
Assuming we have to live with cluster with mix of locators, would my proposal make sense? On Tue, Jan 3, 2017 at 9:59 AM, Udo Kohlmeyer <u...@apache.org> wrote: > +1 > > I think that the configurations of all locators should be identical, or at > least in terms of a few "critical" properties. One would also need to be > able to amend some property changes at runtime, to allow for the changing > of configuration without taking all the locators offline. "remote-locators" > would be a good candidate. > > --Udo > > > > On 1/3/17 09:50, Jacob Barrett wrote: > >> If we consider the locators as the directory service for the cluster then >> it makes no sense for them to be configured differently. I think locators >> should be force to adopt the configuration of the other locator in the >> cluster or refuse to join the cluster until their config is updated to >> match. >> >> >> >> On Tue, Jan 3, 2017 at 8:52 AM Jinmei Liao <jil...@pivotal.io> wrote: >> >> Calling all the pros with knowledge on cluster configurations: >>> >>> This is regarding this current behavior of Cluster Config: Assuming a >>> cluster has 2 locators, locator-A-with-CC (with cluster config enabled), >>> and locator-B-without-CC (without cluster config enabled), currently any >>> commands a user executes through Gfsh that affects cluster config (create >>> region, deploy/undeploy etc) will change cluster config no matter which >>> locator he connects to. >>> >>> The implementation of this behavior is quite complicated: the command >>> needs >>> to: >>> >>> 1. find out from DM if there is any locator that has CC enabled (the DM >>> needs to maintain a flag simply for this purpose). >>> 2. find out from DM the list of locators that has CC enabled. >>> 3. loop through this list, execute a remote function on that locator to >>> change the CC. (depending on the nature of the command, the function is >>> different). >>> 4. break out of the loop if one execution is successful. (it only needs >>> to >>> update only one locator, since the cc region is replicated across >>> locators). >>> >>> Quite often, the locator that ends up executing the function call will >>> the >>> be locator that executes the command, but we still need to do the remote >>> call. So I am wondering: >>> >>> A: What are the use cases where a cluster might have a mix of locators >>> with >>> and without CC? Is it quite common? >>> B: Is there a chance that when a user connects to a locator without CC >>> enabled, he actually WANTS all the commands he execute WON'T affect CC? >>> C: Can we change the behavior to B? That is: the commands will only >>> change >>> CC only if the user is connected to a locator that has CC enabled? (of >>> course, we will provide enough warning if the commands are on a locator >>> without CC telling him that won't affect cluster config. We will also >>> provides commands that will show the current state of Cluster Config) >>> >>> This behavior change would greatly simply our implementation of cluster >>> config and get rid of lots of spaghetti code. >>> >>> -- >>> Cheers >>> >>> Jinmei >>> >>> > -- Cheers Jinmei