IP Library › Granted Patent US 12,541,403
Granted Patent B2
US 12,541,403 · App. 16/781,467 · Granted Feb 3, 2026

Resource allocation for computer processing

Inventors: Robert Bradshaw (Seattle, WA); Rafael de Jesús Fernández Moctezuma (Kirkland, WA); Daniel Mills (Mountain View, CA); Samuel Green McVeety (Seattle, WA); Samuel Carl Whittle (Seattle, WA); Andrei Maksimenka (Sammamish, WA); Cosmin Ionel Arad (Mountain View, CA); Mark Brian Shields (Seattle, WA); Harris Samuel Nover (Mountain View, CA); Manuel Alfred Fahndrich (Seattle, WA); Jeffrey Paul Gardner (Seattle, WA); Mikhail Shmulyan (Seattle, WA); Reuven Lax (Seattle, WA); Ahmet Altay (Mountain View, CA); Craig D. Chambers (Seattle, WA)
Assignee: Google LLC
G06F9/505G06F9/5011G06F9/5016G06F9/5061G06F2209/508H04L67/10H04L67/1097
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 12,541,403
App. No.
16/781,467
Granted
Feb 3, 2026
Kind
B2
Abstract

A job that receives as input a data stream is executed. For the job, it is iteratively determined a backlog growth over a first period of time; a backlog volume; and whether to adjust a quantity of processing resources. For each iteration for which the quantity of processing resources allocated to the job are determined to be adjusted, adjusting the quantity of processing resources allocated to the job. For each iteration for which the quantity of processing resources allocated to the job are determined not to be adjusted, maintaining the quantity of processing resources allocated to the job.

Claims (40)

1 . A method for allocating resources in a computer system, the method comprising:

executing a job that receives as input a data stream;

determining whether a backlog volume of data that is to be processed by the computer system is greater than, less than, or equal to a predetermined threshold;

determining whether backlog growth of the data that is to be processed is positive, negative, or zero;

based on determining that the backlog volume of data is greater than or equal to the predetermined threshold and determining that the backlog growth is positive-, adjusting a quantity of processing resources allocated to the job, wherein adjusting the quantity of processing resources allocated to the job comprises increasing the quantity of processing resources allocated to the job; and

maintaining the quantity of processing resources allocated to the job when the backlog volume of data that is to be processed by the computer system is below the predetermined threshold and the backlog growth is determined to be positive; and

executing the job using the quantity of processing resources allocated to the job.

2 . The method of claim 1 , wherein the backlog volume of data is a measure of unprocessed data in the received data stream that is to be input into the job.

3 . The method of claim 1 , wherein the backlog volume is measured in terms of a data size.

4 . The method of claim 1 , wherein resources include processor resources or storage resources.

5 . The method of claim 1 , the method comprising:

after the adjusting of the quantity of processing resources:

determining that the quantity of processing resources allocated to the job are to be adjusted to a level of resources used by the computer system prior to the increase in the quantity of processing resources.

6 . A system comprising:

one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

executing a job that receives as input a data stream;

determining whether a backlog volume of data that is to be processed by the computer system is greater than, less than, or equal to a predetermined threshold;

determining whether backlog growth of the data that is to be processed is positive, negative, or zero;

based on determining that the backlog volume of data is greater than or equal to the predetermined threshold and determining that the backlog growth is positive, adjusting a quantity of resources allocated to the job, wherein adjusting the quantity of resources allocated to the job comprises increasing the quantity of resources allocated to the job in response to the backlog volume being determined to be greater than or equal to the predetermined threshold;

maintaining the quantity of resources allocated to the job when the backlog volume of data that is to be processed by the computer system is below the predetermined threshold and the backlog growth is determined to be positive; and

executing the job using the quantity of processing resources allocate to the job.

7 . The system of claim 6 , wherein the backlog volume of data is a measure of unprocessed data in the received data stream that is to be input into the job.

8 . The system of claim 6 , wherein the backlog volume is measured in terms of a data size.

9 . The system of claim 6 , wherein resources include processor resources or storage resources.

10 . The system of claim 6 , the operations comprising:

after the adjusting of the quantity of resources:

determining that the quantity of resources allocated to the job are to be adjusted to a level of resources used by the computer system prior to the increase in the quantity of resources.

11 . A non-transitory computer-readable storage device having stored thereon instructions, which, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising:

executing a job that receives as input a data stream;

determining whether a backlog volume of data that is to be processed by the computer system is greater than or equal to a predetermined threshold;

determining whether backlog growth of the data that is to be processed is positive, negative, or zero;

based on determining that the backlog volume of data is greater than or equal to the predetermined threshold and determining that the backlog growth is positive, adjusting a quantity of resources allocated to the job, wherein adjusting the quantity of resources allocated to the job comprises increasing the quantity of resources allocated to the job;

maintaining the quantity of resources allocated to the job when the backlog volume of data that is to be processed by the computer system is below the predetermined threshold and the backlog growth is determined to be positive; and

executing the job using the quantity of processing sources allocated to the job.

12 . The computer-readable medium of claim 11 , wherein the backlog volume of data is a measure of unprocessed data in the received data stream that is to be input into the job.

13 . The computer-readable medium of claim 11 , wherein the backlog volume is measured in terms of a data size.

14 . The computer-readable medium of claim 11 , wherein resources include processor resources or storage resources.

15 . The computer-readable medium of claim 11 , the operations comprising:

after the adjusting of the quantity of resources:

determining that the quantity of resources allocated to the job are to be adjusted to a level of resources used by the computer system prior to the increase in the quantity of resources.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2020
From: BRADSHAW, ROBERT; FERNÁNDEZ MOCTEZUMA, RAFAEL DE JESÚS; MILLS, DANIEL; MCVEETY, SAMUEL GREEN; WHITTLE, SAMUEL CARL; MAKSIMENKA, ANDREI; ARAD, COSMIN IONEL; SHIELDS, MARK BRIAN; NOVER, HARRIS SAMUEL; FAHNDRICH, MANUEL ALFRED; GARDNER, JEFFREY PAUL; SHMULYAN, MIKHAIL; LAX, REUVEN; ALTAY, AHMET; CHAMBERS, CRAIG D.
To: GOOGLE INC.
Reel/Frame 051715/0242 →
ENTITY CONVERSION Recorded Feb 4, 2020
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 051798/0095 →
Continuity (3)
Continuation 15395225 · Dec 30, 2016
Provisional Application 62303827 · Mar 4, 2016
Related Publication 20200225991A1 · Jul 16, 2020
References Cited (47)
US 6591287B1 · More et al. · 2003 [cited by applicant]
US 8458720B2 · Bansal et al. · 2013 [cited by applicant]
US 8799916B2 · Cherkasova et al. · 2014 [cited by applicant]
US 9135064B2 · Dinker · 2015 [cited by examiner]
US 9384031B2 · Shimogawa · 2016 [cited by examiner]
US 9396039B1 · Arguelles · 2016 [cited by examiner]
US 9542107B2 · Brown · 2017 [cited by applicant]
US 10108244B2 · Tsuji · 2018 [cited by examiner]
US 10409647B2 · Carteri · 2019 [cited by examiner]
US 20070130213A1 · Jean-Denis · 2007 [cited by applicant]
US 20110022871A1 · Bouvier et al. · 2011 [cited by applicant]
US 20120254443A1 · Ueda · 2012 [cited by applicant]
US 20120296696A1 · Cantor · 2012 [cited by applicant]
US 20130060555A1 · Thomson et al. · 2013 [cited by applicant]
US 20140040885A1 · Donahue · 2014 [cited by applicant]
US 20160306416A1 · Browne · 2016 [cited by applicant]
US 20160378545A1 · Ho · 2016 [cited by examiner]
US 20170061364A1 · Waltz · 2017 [cited by examiner]
US 20170339062A1 · Mayer-Wolf · 2017 [cited by examiner]
US 20180115498A1 · Sundaram · 2018 [cited by applicant]
US 20190028407A1 · Perumal Vijayan · 2019 [cited by examiner]
CN 1674485A · 2005 [cited by applicant]
CN 101533362A · 2009 [cited by applicant]
CN 104023042A · 2014 [cited by applicant]
CN 104951368A · 2015 [cited by applicant]
JP 2005173928A · 2005 [cited by applicant]
JP 2010079908A · 2010 [cited by applicant]
JP 2011118525A · 2011 [cited by applicant]
JP 2011210225A · 2011 [cited by applicant]
JP 2014149690A · 2014 [cited by applicant]
KR 20120122136A · 2012 [cited by applicant]
KR 20150062634A · 2015 [cited by applicant]
WO 2015165546A1 · 2015 [cited by applicant]
Written Opinion issued in International application No. PCT/US2016067538, dated Feb. 9, 2018, 11pages. [cited by applicant]
KR Office Action issued in Korean Application No. 10-2018-7020037, dated Nov. 13, 2018, 7 pages (English translation). [cited by applicant]
International Preliminary Report on Patentability issued in International Application No. PCT/US2016/067538, dated Jun. 8, 2016, 21 pages. [cited by applicant]
KR Notice of Allowance in Korean Application No. 10-2018-7020037, dated May 8, 2019, 11 pages. [cited by applicant]
JP Notice of Reasons for Refusal in Japanese Application No. 2018-536462, dated Aug. 6, 2019, 10 pages (with English translation). [cited by applicant]
AU Office Action issued in Australian Application No. 2016396079, dated Aug. 14, 2019, 3 pages. [cited by applicant]
EP Office Action in European Application No. 16826534.6, dated Sep. 2, 2019, 5 pages. [cited by applicant]
First Examination Report for Indian Patent Applicaton No. 201847025664 dated Dec. 3, 2020. 7 pages. [cited by applicant]
First Office Action for Chinese Patent Application No. 201680078758.4 dated Mar. 2, 2021. 13 pages. [cited by applicant]
First Office Action for Japanese Patent Application No. 2019-229115 dated Mar. 9, 2021. 4 pages. [cited by applicant]
Summons to Attend Oral Proceedings for European Patent Application No. 16826534.6 dated May 4, 2021. 7 pages. [cited by applicant]
Examination Report No. 1 for Australian Patent Application No. 2020201056 dated Apr. 1, 2021. 6 pages. [cited by applicant]
Result of Consultation for European Patent Application No. 16826534.6 dated Sep. 13, 2021. 6 pages. [cited by applicant]
Extended European Search Report for European Patent Applicaton No. 21206839.9 dated Feb. 17, 2022. 11 pages. [cited by applicant]