IP Library Patent Application 13927119
Patent Application
App. No. 13/927,119

LOCKLESS DISTRIBUTED COUNTING OF MESSAGE REQUESTS

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/927,119
Abstract

Lockless distributed counting of message requests. A plurality of message requests is received from a client by a plurality of message processors. A local count, for one time slot, is incremented in each message processor of the plurality of message processors based on the plurality of message requests. A global count in a shared state system, for one version, is incremented by value of the local count at a preconfigured time interval, the local count being decremented to a value zero. A global count in each message processor of the plurality of message processors is then synchronized, asynchronously, with the global count in the shared state system. The local count and the global count are subsequently reset in each message processor of the plurality of message processors to the value zero for a next time slot.

Claims (46)

1 . A method of providing lockless distributed counting of message requests, the method comprising:

receiving a plurality of message requests from a client by a plurality of message processors;

incrementing a local count, for one time slot, in each message processor of the plurality of message processors based on the plurality of message requests;

incrementing a global count in a shared state system, for one version, by value of the local count at a preconfigured time interval, wherein the local count is decremented to a value zero;

synchronizing, asynchronously, a global count in each message processor of the plurality of message processors with the global count in the shared state system; and

resetting the local count and the global count in each message processor of the plurality of message processors to the value zero for a next time slot.

2 . The method as claimed in claim 1 , wherein each message processor of the plurality of message processors serves the plurality of message requests from a plurality of clients.

3 . The method as claimed in claim 1 and further comprising

maintaining the local count and the global count in each message processor of the plurality of message processors.

4 . The method as claimed in claim 1 and further comprising

maintaining a shared state for a plurality of versions of the global count along with corresponding expiry time in the shared state system.

5 . The method as claimed in claim 1 and further comprising

incrementing the local count in accordance with a quota, wherein the quota is a sum of the local count and the global count in each message processor of the plurality of message processors.

6 . The method as claimed in claim 4 , wherein one or more of the plurality of message requests are rejected if the client exceeds the quota.

7 . The method as claimed in claim 1 , wherein resetting the local count and the global count comprises:

updating the global count in the shared state system for a next version.

8 . The method as claimed in claim 1 and further comprising

refreshing one or more quotas at each time interval.

9 . A message processing system for providing lockless distributed counting of message requests, the message processing system comprising:

one or more clients that transmit a plurality of message requests;

a plurality of message processors that

receive the plurality of message requests, and

increment a local count, for one time slot, in each message processor of the plurality of message processors based on the plurality of message requests, and a shared state system that

increments a global count, for one version, by value of the local count at a preconfigured time interval, wherein the local count is decremented to a value zero, and

synchronizes, asynchronously, a global count in each message processor of the plurality of message processors with the global count in the shared state system.

10 . The message processing system as claimed in claim 9 , wherein the message processing system resets the local count and the global count in each message processor of the plurality of message processors to the value zero for a next time slot.

11 . The message processing system as claimed in claim 9 , wherein each message processor of the plurality of message processors serves the plurality of message requests from a plurality of clients.

12 . The message processing system as claimed in claim 9 , wherein each message processor of the plurality of message processors maintains the local count and the global count.

13 . The message processing system as claimed in claim 9 , wherein the shared state system maintains a shared state for a plurality of versions of the global count along with corresponding expiry time.

14 . A computer program product stored on a non-transitory computer-readable medium that when executed by a processor, performs a method of providing lockless distributed counting of message requests, comprising:

receiving a plurality of message requests from a client by a plurality of message processors;

incrementing a local count, for one time slot, in each message processor of the plurality of message processors based on the plurality of message requests;

incrementing a global count in a shared state system, for one version, by value of the local count at a preconfigured time interval, wherein the local count is decremented to a value zero;

synchronizing, asynchronously, a global count in each message processor of the plurality of message processors with the global count in the shared state system; and

resetting the local count and the global count in each message processor of the plurality of message processors to the value zero for a next time slot.

15 . The computer program product as claimed in claim 14 , wherein each message processor of the plurality of message processors serves the plurality of message requests from a plurality of clients.

16 . The computer program product as claimed in claim 14 and further comprising

maintaining the local count and the global count in each message processor of the plurality of message processors.

17 . The computer program product as claimed in claim 14 and further comprising

maintaining a shared state for a plurality of versions of the global count along with corresponding expiry time in the shared state system.

18 . The computer program product as claimed in claim 14 and further comprising

incrementing the local count in accordance with a quota, wherein the quota is a sum of the local count and the global count in each message processor of the plurality of message processors.

19 . The computer program product as claimed in claim 18 , wherein one or more of the plurality of message requests are rejected if the client exceeds the quota.

20 . The computer program product as claimed in claim 14 , wherein resetting the local count and the global count comprises:

updating the global count in the shared state system for a next version.

21 . The computer program product as claimed in claim 14 and further comprising refreshing one or more quotas at each time interval.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE REMOVAL OF THE INCORRECTLY RECORDED APPLICATION NUMBERS 14/149802 AND 15/419313 PREVIOUSLY RECORDED AT REEL: 44144 FRAME: 1. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 4, 2024
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 068092/0502 →
CHANGE OF NAME Recorded Oct 6, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044144/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2017
From: APIGEE CORPORATION
To: GOOGLE INC.
Reel/Frame 040955/0070 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2013
From: MURUGESAN, VIJAYAKUMAR; GOPALAN, VAIDHYANATHAN MAYILRANGAM
To: APIGEE CORPORATION
Reel/Frame 030685/0881 →