Affects Version/s: 6.0.0, 6.11.1
Fix Version/s: None
There is a performance degradation when running in an HA setup, with a number of nodes higher than the configured number of redundancy.
When # of nodes > # of redundancy:
Assuming file is uploaded to node #1, node #1 will stream the file to a random second node - it will be node #2.
Once the streaming is completed, as part of the upload request, node #1 will trigger a HEAD request to node #3 to verify if it exists (endpoint used is HEAD "/binarystore/provider").
On node #3 as the receiving of these HEAD request, it triggers a check in his binary providers for the existence of the binary. I would expect cloud storage providers to be filtered out, but they are not. This means node #3 as the receiving of this HEAD request, triggers an additional HEAD request to the cloud storage provider.
In a hybrid setup where Artifactory is installed on-prem, but uses Cloud storage, this makes lots of extra additional requests to the cloud, which was witnessed as a major performance issue in large-scale hybrid environments.
1. Do we really need to verify existence of binaries at all nodes of the cluster (what if I have 15 nodes? This impacts each upload)
2. Requests to cloud storage providers should never be part of a deploy to Artifactory. This must always happen in the background.