I am trying to figure out whether it’s possible (or not) to run a cluster configuration with operator where there is 1 GRV proxy on each zone, with the intent of minimizing latency on read-only queries.
So far I have tried using three_data_hall and configuring grv_proxies: 1 on the cluster of each zone, with no luck: the GRV proxy and cluster controller always end up in a single zone.
grv_proxies=N is a database option that can be configured with fdbcli. For your desired case, N=3. Then you need to have 3 stateless pods, one in each zone, running grv_proxy class so that these processes are preferred and recruited as GRV proxies.
Thanks for your reply @jzhou! When setting grv_proxies: 3 on each of the 3 k8s FoundationDB cluster objects, no change happens e.g. the master, commit_proxy, cluster_controller, grv_proxy and resolver are all running on the stateless pods of one of the 3 data halls. By grv_proxy class you mean that I should somehow have the operator create dedicated pods for this class? Is that supported/possible? I can see for example that one can specify a coordinatorSelection but I can’t locate a similar mechanism for grv_proxy and other classes which normally run on stateless pods; if you have some reference to existing documentation I’ll be happy to read it.