IP Library Granted Patent US 12,554,546
Granted Patent B1
US 12,554,546 · App. 17/958,270 · Granted Feb 17, 2026

Phased server reservation with a server level allocation and an allotment level allocation

Inventors: Yan Cui (Newark, CA); Zhoutong Jiang (Sunnyvale, CA); Xiang Li (Santa Clara, CA)
Assignee: Meta Platforms, Inc.
G06F9/5044G06F9/5016G06F2209/5011G06F2209/5014G06F2209/5019
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,554,546
App. No.
17/958,270
Granted
Feb 17, 2026
Kind
B1
Abstract

A method of resource allocation is disclosed. A request from a user to allocate computing resources for specified compute processing is received. A server level allocation is performed, including by determining a full server reservation estimate corresponding to the request, wherein the full server reservation estimate comprises a count of how many servers are reserved for the specified compute processing. A virtual server pool is formed based at least in part on the full server reservation estimate. An allotment level allocation is performed, including by assigning among the virtual server pool one or more allotments for the specified compute processing.

Claims (46)

1 . A method, comprising:

receiving a request from a user to allocate computing resources for specified compute processing;

determining a full server reservation estimate corresponding to the request, wherein the full server reservation estimate comprises a count of how many servers are reserved for the specified compute processing, and wherein the full server reservation estimate is based at least in part on a scale factor that is greater than one, and wherein the scale factor is based on a tax percentage rate;

forming a virtual server pool based at least in part on the full server reservation estimate;

assigning among the virtual server pool one or more allotments for the specified compute processing, wherein the one or more allotments are separate less than full server portions of one or more servers in the virtual server pool, wherein the request from the user to allocate the computing resources for the specified compute processing specifies a memory shape size and a memory shape count associated with the one or more allotments for the specified compute processing; and

allocating the one or more allotments for the request.

2 . The method of claim 1 , wherein the request from the user to allocate the computing resources for the specified compute processing specifies that an allotment of the one or more allotments for the specified compute processing has a granularity of a portion of a full server.

3 . The method of claim 1 , wherein the memory shape count specifies a number of requested units of memory with the memory shape size.

4 . The method of claim 3 , wherein the request from the user to allocate the computing resources for the specified compute processing specifies an allowed server subtype list, wherein the allowed server subtype list specifies one or more subtypes of servers that are allowed in the one or more allotments for the specified compute processing.

5 . The method of claim 4 , wherein the determining of the full server reservation estimate corresponding to the request comprises:

selecting a subtype of the one or more subtypes of servers that has a least amount of memory among the one or more subtypes of servers.

6 . The method of claim 5 , wherein the determining of the full server reservation estimate corresponding to the request comprises:

determining a server memory size estimate by deducting a predetermined amount of memory for an operating system from the least amount of memory.

7 . The method of claim 6 , wherein the determining of the full server reservation estimate corresponding to the request comprises:

determining a number of parts that the server memory size estimate is divided into based at least in part on the memory shape size and the server memory size estimate.

8 . The method of claim 7 , wherein the determining of the full server reservation estimate corresponding to the request comprises:

determining the full server reservation estimate at least in part based on the number of parts that the server memory size estimate is divided into and the memory shape count.

9 . The method of claim 1 , wherein the tax percentage rate has a range between five percent and ten percent.

10 . The method of claim 1 , wherein the forming of the virtual server pool based at least in part on the full server reservation estimate comprises:

combining the full server reservation estimate corresponding to the request with one or more other full server reservation estimates corresponding to one or more other requests to allocate the computing resources for the specified compute processing to determine a number of servers forming the virtual server pool.

11 . The method of claim 1 , wherein the forming of the virtual server pool based at least in part on the full server reservation estimate comprises:

combining the full server reservation estimate corresponding to the request, one or more other full server reservation estimates corresponding to one or more other requests to allocate the computing resources for the specified compute processing, and a predetermined number of buffer servers to determine a number of servers forming the virtual server pool.

12 . The method of claim 1 , further comprising:

configuring a solver performing an allotment level allocation such that a previous allotment to the user is assigned to the user.

13 . A system, comprising:

one or more processors configured to:

receive a request from a user to allocate computing resources for specified compute processing;

determine a full server reservation estimate corresponding to the request, wherein the full server reservation estimate comprises a count of how many servers are reserved for the specified compute processing, and wherein the full server reservation estimate is based at least in part on a scale factor that is greater than one, and wherein the scale factor is based on a tax percentage rate;

form a virtual server pool based at least in part on the full server reservation estimate;

assigning among the virtual server pool one or more allotments for the specified compute processing, wherein the one or more allotments is a are separate less than full server portions of one or more servers in the virtual server pool, wherein the request from the user to allocate the computing resources for the specified compute processing specifies a memory shape size and a memory shape count associated with the one or more allotments for the specified compute processing; and

allocate the one or more allotments for the request; and

memory coupled to at least one of the one or more processors and configured to provide the at least one of the one or more processors with instructions.

14 . The system of claim 13 , wherein the request from the user to allocate the computing resources for the specified compute processing specifies that an allotment of the one or more allotments for the specified compute processing has a granularity of a portion of a full server.

15 . The system of claim 13 , wherein the memory shape count specifies a number of requested units of memory with the memory shape size.

16 . The system of claim 13 , wherein being configured to form the virtual server pool based at least in part on the full server reservation estimate comprises being configured to:

combine the full server reservation estimate corresponding to the request with one or more other full server reservation estimates corresponding to one or more other requests to allocate the computing resources for the specified compute processing to determine a number of servers forming the virtual server pool.

17 . A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving a request from a user to allocate computing resources for specified compute processing;

determining a full server reservation estimate corresponding to the request, wherein the full server reservation estimate comprises a count of how many servers are reserved for the specified compute processing, and wherein the full server reservation estimate is based at least in part on a scale factor that is greater than one, and wherein the scale factor is based on a tax percentage rate;

forming a virtual server pool based at least in part on the full server reservation estimate;

assigning among the virtual server pool one or more allotments for the specified compute processing, wherein the one or more allotments is a are separate less than full server portions of one or more servers in the virtual server pool, wherein the request from the user to allocate the computing resources for the specified compute processing specifies a memory shape size and a memory shape count associated with the one or more allotments for the specified compute processing; and

allocating the one or more allotments for the request.

18 . The computer program product of claim 17 , wherein the request from the user to allocate the computing resources for the specified compute processing specifies that an allotment of the one or more allotments for the specified compute processing has a granularity of a portion of a full server.

19 . The computer program product of claim 17 , wherein the memory shape count specifies a number of requested units of memory with the memory shape size.

20 . The computer program product of claim 17 , wherein the forming of the virtual server pool based at least in part on the full server reservation estimate comprises:

combining the full server reservation estimate corresponding to the request with one or more other full server reservation estimates corresponding to one or more other requests to allocate the computing resources for the specified compute processing to determine a number of servers forming the virtual server pool.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2022
From: CUI, YAN; JIANG, ZHOUTONG; LI, XIANG
To: META PLATFORMS, INC.
Reel/Frame 062103/0465 →
References Cited (12)
US 7454516B1 · Weinert et al. · 2008 [cited by applicant]
US 7533385B1 · Barnes · 2009 [cited by applicant]
US 7546588B2 · Dickenson · 2009 [cited by applicant]
US 7962609B2 · Koning et al. · 2011 [cited by applicant]
US 8032634B1 · Eppstein et al. · 2011 [cited by applicant]
US 8209515B2 · Schott · 2012 [cited by applicant]
US 11169720B1 · Al-Harbi · 2021 [cited by examiner]
US 11579925B2 · Duluk, Jr. · 2023 [cited by examiner]
US 12120040B2 · Jackson · 2024 [cited by examiner]
US 20190258529A1 · Moldvai · 2019 [cited by examiner]
US 20200174839A1 · Venkadasamy · 2020 [cited by examiner]
US 20210019160A1 · Pan · 2021 [cited by examiner]