Per-Request Resource Usage Metering in Distributed Network Services
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems lack effective resource usage metering across distributed environments, making it difficult to accurately monitor and charge users for their resource consumption in network-accessible software services, which is essential for billing, capacity planning, and quota enforcement.
Innovation Solution
The technique involves correlating per-process accounting information with request logs to generate per-request resource usage metrics, using a monitoring agent to collect and report resource usage data, and employing a correlator to assign usage to specific requests based on heuristic methods, such as even or weighted allocation, to ensure accurate billing and usage tracking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If per-process accounting information is used for resource monitoring, then resource usage can be tracked at the process level, but it cannot accurately attribute resource consumption to individual users or requests
Solution Approach 1:
The patent segments resource usage tracking from the process level to the request level by introducing request identifiers that are embedded in process accounting records. This segmentation allows precise attribution of resource consumption to individual user requests while maintaining the existing per-process accounting infrastructure, thereby improving measurement precision without proportionally increasing system complexity.
Solution Approach 2:
The patent introduces request identifiers as an intermediary mechanism that links user requests to process accounting information. This intermediary enables the correlation between service requests and resource consumption without requiring fundamental changes to the underlying per-process accounting system, thus achieving precise user-level attribution while managing complexity.
2Loss of information
If request logging is implemented to track service requests, then individual request information can be captured, but it cannot be correlated with actual resource consumption data
Solution Approach 1:
The patent merges request logging data with process accounting information by correlating them through request identifiers. This merging combines the strengths of both approaches: request-level detail from logging and resource consumption data from accounting, enabling complete request-resource correlation while using existing infrastructure to manage complexity.
Solution Approach 2:
The patent implements a feedback mechanism where request identifiers from service requests are fed into the process accounting system, and the resulting correlated data is fed back to enable accurate resource attribution. This feedback loop ensures that request information and resource consumption data are continuously aligned, preventing information loss while maintaining manageable system complexity through iterative correlation.
3Measurement precision
If resource usage is monitored at the process level in distributed environments, then system-wide resource consumption can be tracked, but accurate per-request metrics cannot be obtained due to concurrent requests
Solution Approach 1:
The patent applies preliminary action by embedding request identifiers in process accounting records at the moment a request is received, before the request is fully processed. This preliminary tagging ensures that even in concurrent environments, each request's resource consumption can be accurately traced back to its identifier, achieving precise per-request metrics without impeding request processing throughput.
Data Source
AI summary
Process accounting information is recorded, together with service request logs written by e-service applications. These two sets of information are aggregated and correlated, to generate usage metrics relating to resource usage for individual service requests. Such per-request information can be used as a basis for charging users making such requests. Services requests often simultaneously consume computing resources, in which case resource usage is proportionally divided between such simultaneous service requests.


