Request-Specific Nonce for Coordinated Subrequest Throttling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Large-scale service provider systems face inefficiencies in managing overload conditions due to uncoordinated throttling and tracing of subrequests across subsystems, leading to incomplete traces and high failure rates of top-level requests.
Innovation Solution
A request-specific nonce is generated and shared among subsystems to coordinate the selection of subrequests, ensuring consistent and randomized prioritization, thereby minimizing the impact on top-level requests and maximizing complete trace collection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If subsystems independently collect trace samples of random subrequests, then each subsystem can perform local tracing, but complete traces of top-level requests are extremely unlikely to be captured
Solution Approach 1:
The patent introduces a request ID as an intermediary mechanism that is propagated through all subsystems. This request ID serves as a common reference that enables subsystems to coordinate their tracing decisions without requiring complex direct communication between them. Each subsystem uses the request ID to determine whether to trace a subrequest, ensuring consistent coordination across the distributed system.
Solution Approach 2:
The request ID serves multiple functions simultaneously: it identifies the top-level request, enables coordinated tracing across subsystems, facilitates throttling decisions, and provides a basis for sampling. By making the request ID universal across all subsystems, the patent eliminates the need for separate coordination mechanisms while achieving complete trace capture.
2Productivity
If subsystems throttle subrequests randomly, then load distribution is simplified, but the effective throttling rate for top-level requests becomes much larger than the subsystem throttling rate
Solution Approach 1:
The request ID acts as a mediator that allows subsystems to coordinate their throttling decisions. Instead of independent random throttling, each subsystem uses the request ID to determine whether to throttle a subrequest based on a consistent sampling criterion. This coordination ensures that the effective throttling rate at the top-level request level matches the intended subsystem throttling rate.
Solution Approach 2:
The patent creates equipotentiality in the throttling process by using a uniform sampling criterion based on the request ID across all subsystems. Each subsystem applies the same throttling logic relative to the request ID, ensuring that the probability of throttling is consistent across the distributed system. This eliminates the amplification effect where small subsystem throttling rates would translate to large top-level throttling rates.
3Reliability
If high sampling percentages are used for trace collection, then more complete traces can be captured, but system overhead and resource consumption increase
Solution Approach 1:
The patent applies partial action by using a sampling approach where only a subset of subrequests are traced. Instead of tracing all subrequests (excessive action), the system traces a statistically significant sample based on the request ID. This partial sampling achieves sufficient trace completeness for analysis while minimizing the resource consumption associated with full-system tracing.
Data Source
AI summary
Methods and related systems are provided for the generation and use of a request-specific nonce to coordinate the randomized selection of subrequests stemming from a top-level request to a system. The method includes receiving, but a subsystem of the system, a subrequest that is generated in response to the receipt of a top-level request to the system. The subsystem then determines a nonce that comprises a pseudorandom value that is consistent for all subrequests stemming from the top-level request. The subsystem may use the nonce to make a variety of processing decisions for the subrequests. In one embodiment, the nonce is used to determine which subrequests should be throttled. In another embodiment, the nonce is used to determine whether trace data should be collected for received subrequests. The nonce allows different subsystems to coordinate their processing decisions based on a randomized but consistent prioritization of the top-level request.


