Aerospike Go客户端:无可用的节点连接。 连接池为空,并且限制为一定数量的连接

I have 8 node Aerospike cluster. My Aerospike Go client (18 servers) sends x (~8k per seconds) batch request per second with batch size ~8-12. What will be Total TPS on my cluster and per Node?

I an getting frequent error in Go client:

command execution timed out: Exceeded number of retries. See Policy.MaxRetries. (last error: No available connections to the node. Connection Pool was empty, and limited to certain number of connections.)

I want to check if it's because of network limitation. what could be other reasons? Total storage used is ~12-15% and there are some ~3k per second writes overall as well.

Aerospike Go Client dev here.

The error you are getting means that the app is using all the connections available in the pool already, and no connections are available to connect to the nodes.

This behavior depends on the following attributes in the ClientPolicy when you're connecting to the database:

  • ConnectionQueueSize: determines how many connections will be pooled per node.
  • LimitConnectionsToQueueSize: Determines if an attempt should be made to connect to a node, in case the pool is empty when a connection is needed.

There is also the MaxRetries attribute on Read/WritePolicy, which determines the number of retries.

Which version of the go client are you using, and what are values you are passing for the above settings?