In RavenDB Client API, if the Read Balance Behavior is configured for the Fastest Node,
then under certain conditions, the client executes a Speed Test for each node in the cluster so that the fastest node can be accessed for Read requests.
When doing a Speed Test, the client checks the response time from all the nodes in the topology.
This is done per 'Read' request that is executed.
Once the Speed Test is finished, the client stores the fastest node found.
After that, the speed test will be repeated every minute.
When does the Speed Test Trigger?
The Speed Test is triggered in the following cases:
When the client configuration has changed to FastestNode
Once the client configuration is updated on the server, the next response from the server to the client will include the following header: Refresh-Client-Configuration.
When the client sees such a header for the first time, it will start the Speed Test - if indeed configuration is set to FastestNode.
Every 5 minutes the client checks the server for the current nodes' topology.
At this periodic check, the Speed Test will be triggered if FastestNode is set.
Any time when the nodes' topology changes, and again - only if FastestNode is set.