Does FoundationDB support running 1 GRV proxy per zone?

Hi there :slight_smile:

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.

Any tips/ideas? Thanks!

Previous thread

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.

1 Like

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.

@johscheuer do you know of any way to force the cluster to hire more than 1 GRV proxy role in one of the 3 halls? :thinking:

I managed to activate multiple GRV proxies: it was key to not specify a pre-fixed stateless: in processCounts:.

Thanks everyone!