IP Library Granted Patent US 10,346,193
Granted Patent B1
US 10,346,193 · App. 15/683,757 · Granted Jul 9, 2019

Efficient placement of virtual machines based on cache hit ratio

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 10,346,193
App. No.
15/683,757
Granted
Jul 9, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for efficient placement of virtual machines may include (1) allocating space in a cache shared by a group of virtual machines to add a new virtual machine, (2) receiving data requests from the new virtual machine for the cache, (3) recording each of the data requests as a cache hit or a cache miss in a list based on availability of the data in the cache, (4) determining a ratio of cache hits to cache misses for the new virtual machine based on the recorded data requests, and (5) placing the new virtual machine in the group of virtual machines when the ratio of cache hits to cache misses exceeds a threshold, such that the data backup device efficiently utilizes the cache for servicing the data requests from the new virtual machine. Various other methods, systems, and computer-readable media are also disclosed.

Claims (49)

1. A computer-implemented method for efficient placement of virtual machines, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

allocating, by a data backup device, space in a cache shared by a group of virtual machines to add a new virtual machine;

receiving, by the data backup device, a plurality of data requests from the new virtual machine for the cache;

recording, by the data backup device, each of the data requests as a cache hit or a cache miss in a list based on availability of the data in the cache;

determining, by the data backup device, a ratio of cache hits to cache misses for the new virtual machine based on the recorded data requests; and

placing, by the data backup device, the new virtual machine in the group of virtual machines when the ratio of cache hits to cache misses exceeds a threshold, such that the data backup device efficiently utilizes the cache for servicing the data requests from the new virtual machine in the group of virtual machines.

2. The method of claim 1 , further comprising sending data from the cache to the new virtual machine to service the data requests.

3. The method of claim 1 , further comprising:

retrieving data from another data source to service the data requests when the ratio of cache hits to cache misses is below the threshold;

storing the data in the cache; and

sending the list to a placement engine for placing the new virtual machine in another group of virtual machines.

4. The method of claim 1 , wherein receiving the plurality of data requests from the new virtual machine comprises receiving a plurality of read/write requests to virtual disks associated with the new virtual machine.

5. The method of claim 4 , wherein the read/write requests comprise a data backup operation for the new virtual machine.

6. The method of claim 5 , wherein the data backup operation comprises an incremental data backup operation for the new virtual machine.

7. The method of claim 1 , wherein recording each of the data requests as a cache hit or a cache miss in a list based on availability of the data in the cache comprises:

recording a request in the data requests as a cache hit in the list when the data is available in the cache; and

recording a request in the data requests as a cache miss in the list when the data is unavailable in the cache.

8. The method of claim 1 , wherein the cache comprises a unified cache for virtual disks associated with the group of virtual machines.

9. A system for efficient placement of virtual machines, the system comprising:

an allocation module, stored in memory, that allocates space in a cache shared by a group of virtual machines to add a new virtual machine;

a receiving module, stored in memory, that receives a plurality of data requests from the new virtual machine for the cache;

a recording module, stored in memory, that records each of the data requests as a cache hit or a cache miss in a list based on availability of the data in the cache;

a determination module, stored in memory, that records a ratio of cache hits to cache misses for the new virtual machine based on the recorded data requests;

a placement module, stored in memory, that records the new virtual machine in the group of virtual machines when the ratio of cache hits to cache misses exceeds a threshold, such that a data backup device efficiently utilizes the cache for servicing data requests from the new virtual machine in the group of virtual machines; and

at least one physical processor that executes the allocation module, the receiving module, the recording module, the determination module, and the placement module.

10. The system of claim 9 , wherein the placement module further sends data from the cache to the new virtual machine to service the data requests.

11. The system of claim 9 , wherein the placement module further:

retrieves data from another data source to service the data requests when the ratio of cache hits to cache misses is below the threshold;

stores the data in the cache; and

sends the list to a placement engine for placing the new virtual machine in another group of virtual machines.

12. The system of claim 9 , wherein the receiving module receives the plurality of data requests from the new virtual machine by receiving a plurality of read/write requests to virtual disks associated with the new virtual machine.

13. The system of claim 12 , wherein the read/write requests comprise a data backup operation for the new virtual machine.

14. The system of claim 13 , wherein the data backup operation comprises an incremental data backup operation for the new virtual machine.

15. The system of claim 9 , wherein the recording module records each of the data requests as a cache hit or a cache miss in a list based on availability of the data in the cache by:

recording a request in the data requests as a cache hit in the list when the data is available in the cache; and

recording a request in the data requests as a cache miss in the list when the data is unavailable in the cache.

16. The system of claim 9 , wherein the cache comprises a unified cache for virtual disks associated with the group of virtual machines.

17. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one physical processor of a computing device, cause the computing device to:

allocate space in a cache shared by a group of virtual machines to add a new virtual machine;

receive a plurality of data requests from the new virtual machine for the cache;

record each of the data requests as a cache hit or a cache miss in a list based on availability of the data in the cache;

determine a ratio of cache hits to cache misses for the new virtual machine based on the recorded data requests; and

place the new virtual machine in the group of virtual machines when the ratio of cache hits to cache misses exceeds a threshold, such that a data backup device efficiently utilizes the cache for servicing the data requests from the new virtual machine in the group of virtual machines.

18. The non-transitory computer-readable medium of claim 17 , wherein the one or more computer-executable instructions further cause the computing device to send data from the cache to the new virtual machine to service the data requests.

19. The non-transitory computer-readable medium of claim 17 , wherein the one or more computer-executable instructions further cause the computing device to:

retrieve data from another data source to service the data requests when the ratio of cache hits to cache misses is below the threshold;

store the data in the cache; and

send the list to a placement engine for placing the new virtual machine in another group of virtual machines.

20. The non-transitory computer-readable medium of claim 17 , wherein the plurality of data requests comprise a plurality of read/write requests to virtual disks associated with the new virtual machine.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0938 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 051594/0529 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0412 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 2, 2019
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 051594/0529 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 044682/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2017
From: DALAL, CHIRAG; KULKARNI, PRADIP
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 043362/0164 →
Cited By (1)
US 12,693,884