Log10 Loadshare
The concept of Log10 Loadshare is derived from fundamental hydraulic principles.
Most modern load balancers support weight assignment:
For a set of servers ( S = s_1, s_2, ..., s_n ), each with a capacity ( c_i ), the load share weight ( w_i ) is calculated as:
[ w_i = \log_10(c_i + 1) ]
The actual traffic fraction ( f_i ) becomes: log10 loadshare
[ f_i = \frac\log_10(c_i + 1)\sum_j=1^n \log_10(c_j + 1) ]
(The +1 ensures positivity for servers with capacity=1, as ( \log_10(1) = 0 )).
Problem: A retail company experienced load balancer "thrashing" during Black Friday. Their autoscaler would see a raw RPS spike from 10,000 to 50,000 on the product detail page and immediately double the fleet, causing database connection storms. Meanwhile, the checkout service, running at 500 RPS, never scaled up, causing checkout failures.
Solution: The team switched to log10 loadshare for all autoscaling decisions. The concept of Log10 Loadshare is derived from
With linear scaling, the gap was 100x (50,000 vs. 500). With log scaling, the gap became 2.0 on the log axis. The autoscaler now treated both services with appropriate sensitivity. The result: 40% fewer unnecessary scale-up events and a 99.99% checkout success rate.
Linear loadshare values are deceptive. Consider a scenario with three servers:
Visually, Server A appears "slightly" busier than Server B, while Server C looks slow. But the operational risk is not linear. The difference between 300 and 1,500 is a factor of 5x. When load balancing, a factor of 2x might trigger a rebalancing event; a factor of 10x is a crisis.
The log10 transformation fixes three major problems: With linear scaling, the gap was 100x (50,000 vs
The Log10 loadshare profile defines the "turn-down ratio" of the structure. A logarithmic profile allows for very fine control at low flows (critical for treatment plant dosing) but allows for massive throughput during flood events without requiring excessively tall gates.
| Context | Definition of Loadshare | | :--- | :--- | | Load Balancer | The number of active connections or requests per second (RPS) routed to a single backend server. | | Message Queue | The number of unacknowledged messages a specific consumer is processing. | | Database Shard | The query throughput or data volume stored on a specific shard replica. | | CDN Edge Node | The bandwidth or request count handled by a particular Point of Presence (PoP). |
In an ideal world, every node would have a perfectly equal loadshare. If you have 10 servers and 10,000 RPS, the ideal loadshare per server is 1,000 RPS. Reality, however, introduces skew—due to slow hardware, "hot shards," or suboptimal routing algorithms.
The mathematical definition is straightforward:
log10_loadshare = log10( current_loadshare + 1 )
Why add 1? To handle zero values. log10(0) is undefined (negative infinity). By adding 1, an idle server with 0 RPS yields log10(1) = 0. A server with 9 RPS yields log10(10) = 1. This creates a clean, zero-bound metric.