Web Services Throttling via Centralized Account ID Counters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web services systems face overload due to high volumes of requests that exceed their processing capacity, leading to slow responses or system failure, as existing throttling mechanisms are typically implemented on a server-by-server basis within a farm, failing to communicate effectively across all servers to enforce request limits.

Innovation Solution

A method where web services servers communicate to increment and compare a counter value associated with each client's account ID across the entire farm, enforcing a unified throttling limit by either processing or delaying requests based on whether the count exceeds the set limit, ensuring all servers in the farm are not overwhelmed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If throttling is implemented on a server-by-server basis within a single group of servers, then each server can independently limit requests to maintain local quality of service, but the entire server farm can still be overwhelmed by high volumes of requests from the same client

Engineering Contradiction:
Improvequality of serviceVSAvoidsystem overload
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent merges the throttling functionality across all servers in the farm by introducing a centralized throttling manager that maintains a shared data structure (hash map) storing request counts for each client. This centralized approach combines the independent throttling decisions of individual servers into a unified system-wide throttling mechanism, preventing clients from bypassing limits by contacting multiple servers.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The centralized throttling manager acts as an intermediary between clients and the server farm. It intercepts requests, checks them against the centralized request count data structure, and enforces throttling limits before requests reach individual servers. This mediator component coordinates throttling across the entire farm, ensuring consistent limit enforcement regardless of which server receives the request.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Object-affected harmful factors

If a centralized throttling mechanism is implemented across all servers in a farm, then unified request limits can be enforced to prevent system overload, but the complexity of coordinating communication and maintaining shared state among servers increases

Engineering Contradiction:
Improvesystem overloadVSAvoidthrottling coordination
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The centralized throttling manager is designed as a universal component that handles throttling logic for the entire server farm. It implements a standardized interface for checking and enforcing request limits, working consistently across all servers regardless of their individual configurations. This multi-functional approach simplifies coordination by providing a single point of control rather than requiring complex peer-to-peer communication between servers.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses a data structure (hash map) that can be replicated or distributed across servers, allowing each server to maintain a local copy of the request count information. This copying mechanism enables servers to independently enforce throttling decisions without requiring constant communication with the centralized manager, reducing coordination overhead while maintaining consistency.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8959237B2Web services requests throttling
Publication Date: 2015.02.17 CELLCO PARTNERSHIP INC
  • US8959237B2 patent drawing
  • US8959237B2 patent drawing
  • US8959237B2 patent drawing

AI summary

A method of web services throttling in a web application server environment, where a number of web services servers communicate with web services clients over a network. A request is received from a web services client which contains an account ID related to the web services client. An ID reader resident on one of the web services servers reads the account ID; and a value related to the account ID in a counter, resident on the one of the services servers, is incremented. The method also involves communicating with the remaining web services servers to increment the value in a plurality of counters, each of which is resident on one of the remaining web services servers. The web services servers compare the count value related to the account ID to a throttling limit value.