IP Library › Granted Patent US 11,595,319
Granted Patent B2
US 11,595,319 · App. 17/129,548 · Granted Feb 28, 2023

Differential overbooking in a cloud computing environment

Inventors: Changsong Li (Redmond, WA); Ajay Kalhan (Redmond, WA); Pankaj Arora (Sammamish, WA); Junfeng Dong (Sammamish, WA); Yi Shan (Redmond, WA); Christian Konig (Kirkland, WA); Manoj Syamala (Issaquah, WA); Vivek Narasayya (Redmond, WA); Shize Xu (Redmond, WA); John M. Oslake (Seattle, WA); Jiaqi Liu (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L47/762H04L47/745H04L47/783
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,595,319
App. No.
17/129,548
Granted
Feb 28, 2023
Kind
B2
Abstract

Techniques for differential overbooking on a cloud database. These techniques may include determining a reservation amount of a multi-tenant resource for a first service of a based upon an overbooking characteristic of the first service, and determining that a total usage value of the multi-tenant resource by a plurality of services is greater than a threshold value. In addition, the techniques may include determining a service usage value of the multi-tenant resource by the first service, determining a first overage value of the first service based on the service usage value and the reservation amount, and performing a resource reclamation process over the multi-tenant resource based on the first overage value of the first service.

Claims (58)

1. A method comprising:

determining, for a first service of a plurality of services, a reservation amount of a multi-tenant resource shared amongst the plurality of services based upon an overbooking value of the first service, the overbooking value representing a ratio for overbooking a request by the first service for the multi-tenant resource;

determining that a total usage value of the multi-tenant resource by the plurality of services is greater than a threshold value;

determining a service usage value of the multi-tenant resource by the first service;

determining a first overage value of the first service based on the service usage value and the reservation amount; and

performing, in response to the total usage value being greater than the threshold value, a resource reclamation process over the multi-tenant resource based on the first overage value of the first service.

2. The method of claim 1 , further comprising determining a second overage value of a second service of the plurality of services, and wherein performing the resource reclamation process comprises:

determining that the first overage value is greater than the second overage value; and

reclaiming a portion of the multi-tenant resource previously-assigned to the first service.

3. The method of claim 1 , further comprising determining a second overage value of a second service of the plurality of services, and wherein performing the resource reclamation process comprises:

determining a relationship between the first overage value and the second overage value; and

reclaiming a first portion and a second portion of the multi-tenant resource based on the relationship, the first portion of the multi-tenant resource previously-assigned to the first service and the second portion of the multi-tenant resource previously-assigned to the second service.

4. The method of claim 1 , wherein performing the resource reclamation process comprises:

identifying, based on usage history, a portion of the multi-tenant resource used by the first service; and

reclaiming the portion of the multi-tenant resource used by the first service.

5. The method of claim 1 , wherein the multi-tenant resource is storage, and performing the resource reclamation process comprises:

identifying a portion of the storage that has been indicated as deleted and not been accessed in a period of time greater than a threshold amount; and

disassociating the portion of the storage from the first service.

6. The method of claim 1 , wherein the multi-tenant resource is memory, and performing the resource reclamation process comprises:

identifying a portion of the memory that has not been accessed in a period of time greater than a threshold amount; and

disassociating the portion of the memory from the first service.

7. The method of claim 1 , wherein the total usage value of the multi-tenant resource is a first total usage value of the multi-tenant resource, and further comprising:

determining that a second total usage value of the multi-tenant resource by the plurality of services is greater than the threshold value;

determining, in response to the second total usage value being greater than the threshold value, an overage value for each of the plurality of services; and

requesting, from a global coordinator service, a load balancing procedure based upon the overage value for each of the plurality of services.

8. The method of claim 1 , wherein the multi-tenant resource includes at least one of storage, computing units, bandwidth, memory, field programmable gate arrays (FPGAs), graphics processing units (GPUs), input-output (I/O) throughput, or data/instruction cache.

9. The method of claim 1 , wherein the first service includes a database-as-a- service (DaaS) configured to provide individual database instances to tenants of a multi-tenancy.

10. The method of claim 1 , wherein the first service is of a different service type than a second service of the plurality of services, the second service having a different overbooking characteristic than the first service.

11. The method of claim 10 , wherein a service type of the first service is an infrastructure as a service, platform as a service, software as a service, database as a service, security as a service, big data as a service, monitoring as a service, logging as a service, internet of things as a service, identity as a service, analytics as a service, function as a service, or coding as a service.

12. A device comprising:

a memory; and

at least one processor coupled to the memory and configured to:

determine, for a first service of a plurality of services, a reservation amount of a multi-tenant resource shared amongst the plurality of services based upon an overbooking value of the first service, the overbooking value representing a ratio for overbooking a request by the first service for the multi-tenant resource;

determine that a total usage value of the multi-tenant resource by the plurality of services is greater than a threshold value;

determine a service usage value of the multi-tenant resource by the first service;

determine a first overage value of the first service based on the service usage value and the reservation amount; and

perform, in response to the total usage value being greater than the threshold value, a resource reclamation process over the multi-tenant resource based on the first overage value of the first service.

13. The device of claim 12 , wherein to perform the resource reclamation process, the at least one processor is configured to:

determine that the first overage value is greater than a second overage value associated with a second service of the plurality of services; and

reclaim a portion of the multi-tenant resource previously-assigned to the first service.

14. The device of claim 12 , wherein to perform the resource reclamation process, the at least one processor is configured to:

identify, based on usage history, a portion of the multi-tenant resource used by the first service; and

reclaim the portion of the multi-tenant resource used by the first service.

15. The device of claim 12 , wherein the multi-tenant resource includes the memory, and to perform the resource reclamation process, the at least one processor is configured to:

identifying a portion of the memory that has not been accessed in a period of time greater than a threshold amount; and

disassociating the portion of the memory from the first service.

16. The device of claim 12 , wherein the multi-tenant resource includes at least one of storage, computing units, bandwidth, the memory, field programmable gate arrays (FPGAs), graphics processing units (GPUs), input-output throughput, or data/instruction cache.

17. The device of claim 12 , wherein the first service is of a different service type than a second service of the plurality of services, the second service having a different overbooking characteristic.

18. A non-transitory computer-readable device having instructions thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:

determining, for a first service of a plurality of services, a reservation amount of a multi-tenant resource shared amongst the plurality of services based upon an overbooking value of the first service, the overbooking value representing a ratio for overbooking a request by the first service for the multi-tenant resource;

determining that a total usage value of the multi-tenant resource by the plurality of services is greater than a threshold value;

determining a service usage value of the multi-tenant resource by the first service;

determining a first overage value of the first service based on the service usage value and the reservation amount; and

performing, in response to the total usage value being greater than the threshold value, a resource reclamation process over the multi-tenant resource based on the first overage value of the first service.

19. The non-transitory computer-readable device of claim 18 , wherein performing the resource reclamation process comprises:

identifying, based on usage history, a portion of the multi-tenant resource used by the first service; and

reclaiming the portion of the multi-tenant resource used by the first service.

20. The non-transitory computer-readable device of claim 18 , wherein the multi- tenant resource includes at least one of storage, computing units, bandwidth, memory, field programmable gate arrays (FPGAs), graphics processing units (GPUs), input-output throughput, or data/instruction cache.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2021
From: LI, CHANGSONG; KALHAN, AJAY; ARORA, PANKAJ; DONG, JUNFENG; SHAN, YI; KONIG, CHRISTIAN; SYAMALA, MANOJ; NARASAYYA, VIVEK; XU, SHIZE; OSLAKE, JOHN M.; LIU, JIAQI
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 055816/0542 →
Continuity (1)
Related Publication 20220200927A1 · Jun 23, 2022
Cited By (1)
US 12,625,811