US 12,169,734 B2
Cost-efficient high-availability multi-single-tenant services
Dean Hildebrand, Bellingham, WA (US); and Grigor Avagyan, Kirkland, WA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Mar. 27, 2023, as Appl. No. 18/445,068.
Application 18/445,068 is a continuation of application No. 17/173,399, filed on Feb. 11, 2021, granted, now 11,614,958, issued on Mar. 28, 2023.
Application 17/173,399 is a continuation of application No. 16/297,054, filed on Mar. 8, 2019, granted, now 10,949,241, issued on Mar. 16, 2021.
Prior Publication US 2023/0289208 A1, Sep. 14, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/455 (2018.01); G06F 9/50 (2006.01)
CPC G06F 9/45558 (2013.01) [G06F 9/45554 (2013.01); G06F 9/5022 (2013.01); G06F 2009/45587 (2013.01); G06F 2209/5011 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A distributed computing system comprising:
a virtual computing environment; and
a plurality of computing devices configured to execute the virtual computing environment, the computing devices comprising a primary pool of computing resources and a separate, secondary pool of computing resources, the virtual computing environment comprising:
a virtual machine layer configured to operate virtual machines using the computing resources, wherein the virtual machine layer comprises a first portion of virtual machines configured to execute first jobs using the primary pool of the computing resources and a second portion of virtual machines configured to execute second jobs using the secondary pool of computing resources; and
a virtual machine manager configured to:
receive an indication of failure of one or more virtual machines included in the first portion of virtual machines;
in response to the indication of failure, evict one or more second jobs from the second portion of virtual machines, wherein eviction of the one or more second jobs from the second portion of virtual machines frees computing resources from the secondary pool of computing resources; and
run one or more of the first jobs on the second portion of virtual machines using the freed computing resources from the secondary pool of computing resources.