sonatype/nexus — comment on commit 5683c3eb8b49361ebf18d0013df276be1bf376ca
File: nexus/nexus-proxy/src/main/java/org/sonatype/nexus/proxy/attributes/upgrade/UpgraderThread.java line 121
By mhansen-sonatype:

This algorithm seems great for limiting the maximum transaction rate. But, if you are not able to achieve the maximum transaction rate that has been configured (for whatever reason: CPU, I/O, GC etc.) the approach will push the system to achieve the limit. If it can't keep up, this will resulting in compounding the problem. This model assumes that we know what good upper limit is, and that is effectively unknowable because of the varied system configurations that Nexus will run on.

Unless the default limit is set to a sufficiently low value, this approach seems likely to generate support calls. If we set the default limit to such a low value, we are unnecessarily throttling the throughput.

In short, this approach tries to make sure we go the speed limit regardless of kids crossing the street, snow/ice, terrorist attack, how tired the driver is, whether the driver is texting, or (and most notably) other traffic :)

I respectfully disagree with the implementation decisions made and do not feel this is the right solution to the problem we are trying to solve ("prevent the attribute upgrade process from competing aggressively for system resources when system is under load"). But, I will readily withdraw my objections if there is fault with my logic.