Fast data initialization
First Claim
1. A method comprising:
- receiving an initialization request to create or extend a file, wherein the initialization request comprises or identifies file template metadata comprising a template that describes at least a non-zero portion of a blank file;
allocating a set of allocation units comprising at least one allocation unit for the file on a primary storage medium without initializing at least a portion of the file on the primary storage medium;
storing the file template metadata in at least one of a volatile memory cache and a persistent memory cache;
receiving a second request corresponding to a particular allocation unit of the set of allocation units;
obtaining particular file template metadata associated with the particular allocation unit; and
in response to the second request, generating at least a portion of the particular allocation unit based on the template;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for fast file initialization is provided. An initialization request to create or extend a file is received. The initialization request comprises or identifies file template metadata. A set of allocation units are allocated, the set of allocation units comprising at least one allocation unit for the file on a primary storage medium without initializing at least a portion of the file on the primary storage medium. The file template metadata is stored in a cache. The cache resides in at least one of volatile memory and persistent flash storage. A second request is received corresponding to a particular allocation unit of the set of allocation units. Particular file template metadata associated with the particular allocation unit is obtained. In response to the second request, at least a portion of a new allocation unit is generated.
56 Citations
25 Claims
-
1. A method comprising:
-
receiving an initialization request to create or extend a file, wherein the initialization request comprises or identifies file template metadata comprising a template that describes at least a non-zero portion of a blank file; allocating a set of allocation units comprising at least one allocation unit for the file on a primary storage medium without initializing at least a portion of the file on the primary storage medium; storing the file template metadata in at least one of a volatile memory cache and a persistent memory cache; receiving a second request corresponding to a particular allocation unit of the set of allocation units; obtaining particular file template metadata associated with the particular allocation unit; and in response to the second request, generating at least a portion of the particular allocation unit based on the template; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 22, 23)
-
-
10. One or more non-transitory computer-readable media storing instructions, wherein the instructions include:
-
instructions which, when executed by one or more hardware processors, cause receiving an initialization request to create or extend a file, wherein the initialization request comprises or identifies file template metadata comprising a template that describes at least a non-zero portion of a blank file; instructions which, when executed by one or more hardware processors, cause allocating a set of allocation units comprising at least one allocation unit for the file on a primary storage medium without initializing at least a portion of the file on the primary storage medium; instructions which, when executed by one or more hardware processors, cause storing the file template metadata in at least one of a volatile memory cache and a persistent memory cache; instructions which, when executed by one or more hardware processors, cause receiving a second request corresponding to a particular allocation unit of the set of allocation units; instructions which, when executed by one or more hardware processors, cause obtaining particular file template metadata associated with the particular allocation unit based on the template; and instructions which, when executed by one or more hardware processors, cause, in response to the second request, generating at least a portion of the particular allocation unit. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 24, 25)
-
-
19. A system comprising:
-
a plurality of primary storage devices comprising a plurality of allocation units; a plurality of persistent cache devices; volatile memory; one or more processors configured to; receive an initialization request to create or extend a file, wherein the initialization request is associated with file template metadata comprising a template that describes at least a non-zero portion of a blank file; allocate a set of allocation units of the plurality of allocation units for the file without initializing the file on the primary storage medium; store the file template metadata in the volatile memory; receive a read request corresponding a first allocation unit of the set of allocation units; in response to the read request, generate at least one block of the particular allocation unit based on the file template metadata based on the template. - View Dependent Claims (20)
-
-
21. A method comprising:
-
receiving an initialization request to create or extend a file, wherein the initialization request comprises or identifies file template metadata; storing the file template metadata in at least one of a volatile memory cache and a persistent memory cache; allocating a set of allocation units comprising at least one allocation unit for the file on a primary storage medium without initializing at least a portion of the file on the primary storage medium; receiving a second request corresponding to a particular allocation unit of the set of allocation units; obtaining particular file template metadata associated with the particular allocation unit; and in response to the second request, generating at least a portion of the particular allocation unit; storing said at least a portion of the particular allocation unit in persistent cache storage associated with the primary storage medium; receiving a third request corresponding to a block of a second allocation unit; determining, based on tracking data for the second allocation unit, whether the block is stored in the persistent memory cache; responsive to determining that the block is stored in the persistent memory cache, accessing the block in the persistent memory cache; responsive to determining that the block is not stored in the persistent memory cache, generating the block based at least in part on the file template metadata corresponding to the second allocation unit; wherein the method is performed by one or more computing devices.
-
Specification