Systems and methods for accelerating access to data by pre-warming the cache for virtual machines
First Claim
1. A computer-implemented method for accelerating access to data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
- spawning, at a data-management system for a first application-testing virtual machine, a first virtual disk from a dataset managed by the data-management system;
monitoring, at a data-caching system that serves the first virtual disk to the first application-testing virtual machine during an initialization phase of the first application-testing virtual machine, read requests of the first application-testing virtual machine for the first virtual disk;
identifying, at the data-caching system during the initialization phase, an initialization pattern of the read requests of the first application-testing virtual machine;
transferring, from the data-caching system, the initialization pattern of the read requests of the first application-testing virtual machine to the data-management system;
storing, at the data-management system, the initialization pattern of the read requests of the first application-testing virtual machine in association with the dataset;
detecting, at the data-caching system, an event that indicates an end of the initialization phase and a beginning of an application-testing phase of the first application-testing virtual machine, wherein the first application-testing virtual machine performs application testing during the application-testing phase;
monitoring, at the data-caching system during the application-testing phase, additional read requests of the first application-testing virtual machine for the first virtual disk;
identifying, at the data-caching system during the application-testing phase, an application-testing pattern of the additional read requests of the first application-testing virtual machine;
transferring, from the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine to the data-management system;
storing, at the data-management system, the application-testing pattern of the additional read requests of the first application-testing virtual machine in association with the dataset;
receiving, at the data-caching system, a request by a second application-testing virtual machine to access a second virtual disk comprising the dataset;
spawning, at the data-management system for the second application-testing virtual machine, the second virtual disk from the dataset, wherein the data-caching system serves the second virtual disk to the second application-testing virtual machine and maintains a cache of the second virtual disk for the second application-testing virtual machine;
requesting, at the data-caching system from the data-management system in response to receiving the request, a pattern of read requests associated with the second virtual disk;
determining, at the data-management system, that the application-testing pattern of the additional read requests of the first application-testing virtual machine is a pattern of read requests associated with the second virtual disk;
transmitting, from the data-management system to the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine;
monitoring, at the data-caching system, read requests of the second application-testing virtual machine for the second virtual disk;
determining, at the data-caching system, that a pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine; and
using, at the data-caching system in response to determining that the pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine, a portion of the dataset accessed by the additional read requests of the first application-testing virtual machine to pre-warm the cache of the second virtual disk.
7 Assignments
0 Petitions
Accused Products
Abstract
The disclosed computer-implemented method for accelerating access to data may include (1) monitoring, at a data-caching system, read requests of a first data-accessing system for a dataset managed by a data-management system, (2) identifying a pattern of the read requests of the first data-accessing system, (3) monitoring, at the data-caching system, read requests of a second data-accessing system for the dataset managed by the data-management system, (4) determining that a pattern of the read requests of the second data-accessing system resembles the pattern of the read requests of the first data-accessing system, and (5) using a portion of the dataset accessed by the read requests of the first data-accessing system to pre-warm a cache of the second data-accessing system. Various other methods, systems, and computer-readable media are also disclosed.
45 Citations
20 Claims
-
1. A computer-implemented method for accelerating access to data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:
-
spawning, at a data-management system for a first application-testing virtual machine, a first virtual disk from a dataset managed by the data-management system; monitoring, at a data-caching system that serves the first virtual disk to the first application-testing virtual machine during an initialization phase of the first application-testing virtual machine, read requests of the first application-testing virtual machine for the first virtual disk; identifying, at the data-caching system during the initialization phase, an initialization pattern of the read requests of the first application-testing virtual machine; transferring, from the data-caching system, the initialization pattern of the read requests of the first application-testing virtual machine to the data-management system; storing, at the data-management system, the initialization pattern of the read requests of the first application-testing virtual machine in association with the dataset; detecting, at the data-caching system, an event that indicates an end of the initialization phase and a beginning of an application-testing phase of the first application-testing virtual machine, wherein the first application-testing virtual machine performs application testing during the application-testing phase; monitoring, at the data-caching system during the application-testing phase, additional read requests of the first application-testing virtual machine for the first virtual disk; identifying, at the data-caching system during the application-testing phase, an application-testing pattern of the additional read requests of the first application-testing virtual machine; transferring, from the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine to the data-management system; storing, at the data-management system, the application-testing pattern of the additional read requests of the first application-testing virtual machine in association with the dataset; receiving, at the data-caching system, a request by a second application-testing virtual machine to access a second virtual disk comprising the dataset; spawning, at the data-management system for the second application-testing virtual machine, the second virtual disk from the dataset, wherein the data-caching system serves the second virtual disk to the second application-testing virtual machine and maintains a cache of the second virtual disk for the second application-testing virtual machine; requesting, at the data-caching system from the data-management system in response to receiving the request, a pattern of read requests associated with the second virtual disk; determining, at the data-management system, that the application-testing pattern of the additional read requests of the first application-testing virtual machine is a pattern of read requests associated with the second virtual disk; transmitting, from the data-management system to the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine; monitoring, at the data-caching system, read requests of the second application-testing virtual machine for the second virtual disk; determining, at the data-caching system, that a pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine; and using, at the data-caching system in response to determining that the pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine, a portion of the dataset accessed by the additional read requests of the first application-testing virtual machine to pre-warm the cache of the second virtual disk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A system for accelerating access to data, the system comprising:
-
a data-management subsystem that; spawns, for a first application-testing virtual machine, a first virtual disk from a dataset managed by the data-management system; spawns, for a second application-testing virtual machine, a second virtual disk from the dataset; a monitoring module, stored in memory, that; monitors, at a data-caching system that serves the first virtual disk to the first application-testing virtual machine and the second virtual disk to the second application-testing virtual machine; read requests of the first application-testing virtual machine for the first virtual disk during an initialization phase of the first application-testing virtual machine; additional read requests of the first application-testing virtual machine for the first virtual disk during an application-testing phase of the first application-testing virtual machine, wherein the first application-testing virtual machine performs application testing during the application-testing phase; and read requests of the second application-testing virtual machine for the second virtual disk; detects, at the data-caching system, an event that indicates an end of the initialization phase and a beginning of the application-testing phase, wherein the data-caching system maintains a cache of the second virtual disk for the second application-testing virtual machine; an identifying module, stored in memory, that; identifies, at the data-caching system during the initialization phase, an initialization pattern of the read requests of the first application-testing virtual machine; transfers, from the data-caching system, the initialization pattern of the read requests of the first application-testing virtual machine to the data-management system; identifies, at the data-caching system during the application-testing phase, an application-testing pattern of the additional read requests of the first application-testing virtual machine; and transfers, from the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine to the data-management system, wherein; the data-management system further stores the initialization pattern of the read requests of the first application-testing virtual machine and the application-testing pattern of the additional read requests of the first application-testing virtual machine in association with the dataset; the monitoring module further requests, at the data-caching system in response to receiving a request by the second application-testing virtual machine to access the second virtual disk, a pattern of read requests associated with the second virtual disk from the data-management system; the data-management system further; determines that the application-testing pattern of the additional read requests of the first application-testing virtual machine is a pattern of read requests associated with the second virtual disk; and transmits the application-testing pattern of the additional read requests of the first application-testing virtual machine to the data-caching system; a determining module, stored in memory, that determines, at the data-caching system, that a pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine; a pre-warming module, stored in memory, that uses, at the data-caching system in response to the determination that the pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine, a portion of the dataset accessed by the additional read requests of the first application-testing virtual machine to pre-warm the cache of the second virtual disk; and at least one processor that executes the monitoring module, the identifying module, the determining module, and the pre-warming module. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of at least one computing device, cause the at least one computing device to:
-
spawn, at a data-management system for a first application-testing virtual machine, a first virtual disk from a dataset managed by the data-management system; monitor, at a data-caching system that serves the first virtual disk to the first application-testing virtual machine during an initialization phase of the first application-testing virtual machine, read requests of the first application-testing virtual machine for the first virtual disk; identify, at the data-caching system during the initialization phase, an initialization pattern of the read requests of the first application-testing virtual machine; transfer, from the data-caching system, the initialization pattern of the read requests of the first application-testing virtual machine to the data-management system; store, at the data-management system, the initialization pattern of the read requests of the first application-testing virtual machine in association with the dataset; detect, at the data-caching system, an event that indicates an end of the initialization phase and a beginning of an application-testing phase of the first application-testing virtual machine, wherein the first application-testing virtual machine performs application testing during the application-testing phase; monitor, at the data-caching system during the application-testing phase, additional read requests of the first application-testing virtual machine for the first virtual disk; identify, at the data-caching system during the application-testing phase, an application-testing pattern of the additional read requests of the first application-testing virtual machine; transfer, from the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine to the data-management system; store, at the data-management system, the application-testing pattern of the additional read requests of the first application-testing virtual machine in association with the dataset; receive, at the data-caching system, a request by a second application-testing virtual machine to access a second virtual disk comprising the dataset; spawn, at the data-management system for the second application-testing virtual machine, the second virtual disk from the dataset, wherein the data-caching system serves the second virtual disk to the second application-testing virtual machine and maintains a cache of the second virtual disk for the second application-testing virtual machine; request, at the data-caching system from the data-management system in response to receiving the request, a pattern of read requests associated with the second virtual disk; determine, at the data-management system, that the application-testing pattern of the additional read requests of the first application-testing virtual machine is a pattern of read requests associated with the second virtual disk; transmit, from the data-management system to the data-caching system, the application-testing pattern of the additional read requests of the first application-testing virtual machine; monitor, at the data-caching system, read requests of the second application-testing virtual machine for the second virtual disk; determine, at the data-caching system, that a pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine; and use, at the data-caching system in response to determining that the pattern of the read requests of the second application-testing virtual machine resembles the application-testing pattern of the additional read requests of the first application-testing virtual machine, a portion of the dataset accessed by the additional read requests of the first application-testing virtual machine to pre-warm the cache of the second virtual disk.
-
Specification