Archived
This forum has been archived. Please start a new discussion on GitHub.
IceGrid Replication and load balancing per function invocation
Hi,
I am curious, if is there any mechanism in Ice products to get load balancing per function invocation rather than per connection using IceGrid replication.
I am working on distributing data on different nodes in round robin fashion. Currently, I am using IceGrid.Query.findAllReplicas function to get all replicated adapter proxies and doing my own round robin thing, but is there any inbuilt thing available.
I also tried doing this by calling shutdown on server after finishing every function invocation, so that client will query icegrid again for next proxy, but this slowed down performance a lot. So, I switched to above technique of using findAllReplicas. But I want to make replicas transparent to client, so is there any better way of doing this?
Thanks.
Surya
I am curious, if is there any mechanism in Ice products to get load balancing per function invocation rather than per connection using IceGrid replication.
I am working on distributing data on different nodes in round robin fashion. Currently, I am using IceGrid.Query.findAllReplicas function to get all replicated adapter proxies and doing my own round robin thing, but is there any inbuilt thing available.
I also tried doing this by calling shutdown on server after finishing every function invocation, so that client will query icegrid again for next proxy, but this slowed down performance a lot. So, I switched to above technique of using findAllReplicas. But I want to make replicas transparent to client, so is there any better way of doing this?
Thanks.
Surya
0
Comments
-
Hi,
Yes, you can configure the proxy in your client to not re-use the same connection for all invocations on the proxy and to consult the IceGrid locator for each invocation to figure out which replica to use, for example:proxy = proxy->ice_connectionCached(false)->ice_locatorCacheTimeout(0);
Check the documentation of the ice_connectionCached, ice_locatorCacheTimeout and ice_endpointSelection proxy methods in the Ice manual for more information. I also recommend checking out Matthew's newsletter article on Ice connection management.
Let us know if you need more information.
Cheers,
Benoit.0