IP Library Granted Patent US 11,171,872
Granted Patent B1
US 11,171,872 · App. 16/434,488 · Granted Nov 9, 2021

Distributed processing system throttling using a timestamp

Inventors: Samuel Green McVeety (Seattle, WA); Vyacheslav Alekseyevich Chernyak (Seattle, WA)
Assignee: Google LLC
H04L47/22G06F16/2477G06F16/951H04L43/16H04L67/10
View Patent ↗
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 11,171,872
App. No.
16/434,488
Granted
Nov 9, 2021
Kind
B1
Abstract

Methods, systems, and apparatus are described for throttling a distributed processing system. In one aspect, a method includes identifying records being processed by a distributed processing system that performs agent processes, each of the records including a corresponding timestamp; determining, based on timestamps of the records that have been processed by a first agent process, a first agent progress; identifying a dependent agent process performed by the distributed processing system, wherein the dependent agent process processes only records that have been processed by the first agent process; determining, based on timestamps of records that have been processed by the dependent agent process, a dependent agent progress; and throttling performance of the first process based on the first agent progress and the dependent agent progress.

Claims (41)

1. A method implemented by data processing apparatus, the method comprising:

identifying records being processed by a distributed processing system that performs a plurality of agent processes, wherein each agent process has a respective queue that includes, for each record in the queue, a corresponding timestamp specifying a time for the record prior to a time that the record is processed by another agent process that receives the record from an agent process in the distributed processing system;

for a second agent process that receives records in a first queue from a first agent process and that processes only records in the first queue that have been processed by the first agent process:

determining a first agent progress that is based on a timestamp of an oldest record processed by the first agent process and in the first queue for the second agent process, the timestamp of the oldest record processed corresponding to a time difference between the oldest record being processed by the first agent process and a current system time,

based in part on the first agent progress, determining to increase a second agent progress for the second agent process by increasing a number of data processors currently performing the second agent process; and

throttling, based on the time difference, the first agent process by assigning fewer data processors to performing the first agent process.

2. The method of claim 1 , wherein determining the first agent progress comprises determining a time difference between a timestamp of the oldest record in the first queue and the current system time.

3. The method of claim 2 , further comprising:

determining a difference between the timestamp for the oldest record processed by the first agent process and a timestamp for a oldest record processed by the second agent process;

determining that the difference between the first agent progress and the second agent progress meets a threshold measure of difference; and

determining to increase a second agent progress for the second agent process is based, in part, on the difference between the first agent progress and the second agent progress meets a threshold measure of difference.

4. The method of claim 1 , wherein the records being processed are query records.

5. A system comprising:

a data processing apparatus; and

a data store storing instructions that, when executed by the data processing apparatus, cause the data processing apparatus to perform operations comprising:

identifying records being processed by a distributed processing system that performs a plurality of agent processes, wherein each agent process has a respective queue that includes, for each record in the queue, a corresponding timestamp specifying a time for the record prior to a time that the record is processed by another agent process that receives the record from the agent process in the distributed processing system;

for a second agent process that receives records in a first queue from a first agent process and that processes only records in the first queue that have been processed by the first agent process:

determining a first agent progress that is based on a timestamp of an oldest record processed by the first agent process and in the first queue for the second agent process, the timestamp of the oldest record processed corresponding to a time difference between the oldest record being processed by the first agent process and a current system time;

based in part on the first agent progress, determining to increase a second agent progress for the second agent process by increasing a number of data processors currently performing the second agent process; and

throttling, based on the time difference, the first agent process by assigning fewer data processors to performing the first agent process.

6. The system of claim 5 , wherein determining the first agent progress comprises determining a time difference between a timestamp of the oldest record in the first queue and the current system time.

7. The system of claim 6 , the operations further comprising:

determining a difference between the timestamp for the oldest record processed by the first agent process and a timestamp for a oldest record processed by the second agent process;

determining that the difference between the first agent progress and the second agent progress meets a threshold measure of difference; and

determining to increase a second agent progress for the second agent process is based, in part, on the difference between the first agent progress and the second agent progress meets a threshold measure of difference.

8. The system of claim 5 , wherein the records being processed are query records.

9. A non-transitory computer readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising:

identifying records being processed by a distributed processing system that performs a plurality of agent processes, wherein each agent process has a respective queue that includes, for each record in the queue, a corresponding timestamp specifying a time for the record prior to a time that the record is processed by another agent process that receives the record from an agent process in the distributed processing system;

for a second agent process that receives records in a first queue from a first agent process and that processes only records in the first queue that have been processed by the first agent process:

determining a first agent progress that is based on a timestamp of an oldest record processed by the first agent process and in the first queue for the second agent process, the timestamp of the oldest record processed corresponding to a time difference between the oldest record being processed by the first agent process and a current system time; and

based in part on the first agent progress, determining to increase a second agent progress for the second agent process by increasing a number of data processors currently performing the second agent process; and

throttling, based on the time difference, the first agent process by assigning fewer data processors to performing the first agent process.

10. The non-transitory computer readable medium of claim 9 , wherein determining the first agent progress comprises determining a time difference between a timestamp of the oldest record in the first queue and the current system time.

11. The non-transitory computer readable medium of claim 10 , the operations further comprising:

determining a difference between the timestamp for the oldest record processed by the first agent process and a timestamp for a oldest record processed by the second agent process;

determining that the difference between the first agent progress and the second agent progress meets a threshold measure of difference; and

determining to increase a second agent progress for the second agent process is based, in part, on the difference between the first agent progress and the second agent progress meets a threshold measure of difference.

12. The non-transitory computer readable medium of claim 9 , wherein the records being processed are query records.

13. The method of claim 1 , wherein increasing the number of data processors currently performing the second agent process, comprises reassigning data processors no longer performing the first agent process to the second agent process.

14. The system of claim 5 , wherein increasing the number of data processors currently performing the second agent process, comprises reassigning data processors no longer performing the first agent process to the second agent process.

15. The non-transitory computer readable medium of claim 9 , wherein increasing the number of data processors currently performing the second agent process, comprises reassigning data processors no longer performing the first agent process to the second agent process.

Assignments (2)
CHANGE OF NAME Recorded May 28, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 052771/0810 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2019
From: MCVEETY, SAMUEL GREEN; CHERNYAK, VYACHESLAV ALEKSEYEVICH
To: GOOGLE INC.
Reel/Frame 049421/0095 →
Continuity (2)
Continuation 15443518 · Feb 27, 2017
Continuation 14023208 · Sep 10, 2013
Cited By (1)
US 12,373,248