I get a couple questions for the Multi-DC deployment architecture. Some of them might not make sense as CockroachDB is new to me:-)
Geo-partition of dataset in the same logic table.
Assuming we have a user table keyed by user_id, roughly half of the users are homed in west coast, and half in east coast. so let’s say to strike a better balance between latency and availability, we want to have two topologies , west topology (us-west1, us-west2, us-central), east topology (us-east1, us-east-2, us-central), to store the data homed in the two different coasts respectively. The application can afford to pass in topology hints to let cockroachdb know which topology the request should do. I am wondering if cockroachdb provide similar mechanism? Of course, one way I can imagine is to create two different cockroachdb clusters with the same schema but different default replication zones, but not sure how much the extra management cost of multiple clusters would be.
region affinity of leader
Say with replication zone (us-west1, us-west2, us-central), when the nodes in us-west1 have issues, we want to control the consensus leader to have region affinity, ie. the new leader should be us-west2 instead of us-central. Not sure if coachroachdb provide any knob to control this?
Dynamically change replication zone by adding/removing datacenters
Consensus protocols like RAFT support membership changes. So at high level, it’s reasonable to add/remove data centers to an existing replication zone. say if we want to migrate from us-west1 to us-west3, we can do membership change sequence (us-west1, us-west2, us-central) -> (us-west1, us-west2, us-west3, us-central) -> (us-west2, us-west3, us-central).
Support different replica roles?
We’d like to support different types of replica roles. E.g an observer replica may just tail the latest write logs without participating quorum vote. And ideally the observe can tail the logs from non-leader replicas for performance reasons.
I am curious to know if some of the above are already supported. And in case that new development is needed, I’d appreciate your assessment on the complexity/feasibility.