Systems, methods and interfaces for data virtualization
First Claim
1. An apparatus, comprising:
- an interface module configured to receive an atomic storage request pertaining to a target set of logical addresses of a logical address space;
an atomic storage module configured to implement storage operations corresponding to the atomic storage request using a transactional set of logical addresses separate from the target set of logical addresses, wherein implementing the storage operations comprises binding one or more logical addresses of the transactional set to one or more data sets stored on a storage resource; and
a data services module configured to append logical manipulation entries to a metadata log, the logical manipulation entries corresponding to modifications of associations between logical addresses and data stored on the storage resource, wherein the data services module is configured to close the atomic storage request by appending a logical manipulation entry to bind the target set of logical addresses to the one or more data sets,wherein the interface module, the atomic storage module, and the data services module comprise one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable medium.
6 Assignments
0 Petitions
Accused Products
Abstract
A data services module performs log storage operations in response to requests by storing data on one or more storage devices, and appending information pertaining to the requests to a separate metadata log. A log order of the metadata log may correspond to an order in which the requests were received, regardless of the order in which data of the requests are written to the storage devices. The requests may correspond to identifiers of a logical address space. The data services module implements an any-to-any translation layer configured to map identifiers of the logical address space to the stored data. The virtualization module may include a metadata management module configured to checkpoint the translation layer metadata by, inter alia, appending aggregate, checkpoint entries to the metadata log. The data services module may leverage the translation layer between the logical identifiers and underlying storage locations to efficiently implement logical manipulation operations.
-
Citations
18 Claims
-
1. An apparatus, comprising:
-
an interface module configured to receive an atomic storage request pertaining to a target set of logical addresses of a logical address space; an atomic storage module configured to implement storage operations corresponding to the atomic storage request using a transactional set of logical addresses separate from the target set of logical addresses, wherein implementing the storage operations comprises binding one or more logical addresses of the transactional set to one or more data sets stored on a storage resource; and a data services module configured to append logical manipulation entries to a metadata log, the logical manipulation entries corresponding to modifications of associations between logical addresses and data stored on the storage resource, wherein the data services module is configured to close the atomic storage request by appending a logical manipulation entry to bind the target set of logical addresses to the one or more data sets, wherein the interface module, the atomic storage module, and the data services module comprise one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method, comprising:
-
maintaining metadata pertaining to data stored on a storage device, the metadata comprising a forward map comprising any-to-any mappings between logical addresses of a logical address space and data stored on the storage device; and servicing an atomic storage request pertaining to a target set of logical block addresses by; implementing storage operations corresponding to the atomic storage request using a transactional set of logical addresses separate from the target set of logical addresses, wherein implementing the storage operations comprises binding one or more logical addresses of the transactional set to one or more data sets stored on the storage device modifying a mapping in the forward map to bind the target set of logical addresses to the one or more data sets, and appending a record to a persistent metadata log corresponding to the modified mapping. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer-program product comprising computer-readable program code stored on a non-transitory computer-readable storage medium and configured to cause a computing system to perform operations, comprising:
-
servicing requests pertaining to logical block addresses of a logical address space by appending data of the requests to a data log maintained on a plurality of storage devices, wherein an upper-level namespace corresponding to the plurality of storage devices comprises the logical address space; translating logical block addresses of the logical address space to addresses of an intermediate translation layer, wherein the addresses of the intermediate translation layer are within a lower-level namespace corresponding to one of the storage devices, the addresses of the intermediate translation layer corresponding to physical storage units of the storage device such that a forward map comprising any-to-any mappings between the logical block addresses and addresses of the intermediate translation layer is independent of relationships between the addresses of the intermediate translation layer and the physical storage units; altering a mapping between a logical block address and an address of the intermediate translation layer in response to a request, wherein altering the mapping comprises appending a persistent note to a metadata log corresponding to the altered mapping, wherein the metadata log is maintained on a storage device that is separate from the plurality of storage devices comprising the data log; and servicing an atomic storage request pertaining to a target set of logical block addresses by; implementing storage operations corresponding to the atomic storage request in a transactional set of logical block addresses separate from the target set of logical block addresses, wherein implementing the storage operations comprises binding logical block addresses of the transactional set to particular addresses within the intermediate translation layer, and altering mappings between logical block addresses and addresses of the intermediate translation layer to bind the target set of logical block addresses to the particular addresses. - View Dependent Claims (17, 18)
-
Specification