Systems and methods for distributed atomic storage operations
First Claim
1. A method, comprising:
- assigning two or more storage controllers of a storage system to an atomic storage request, each of the two or more storage controllers assigned to implement respective sub-requests of the atomic storage request based on associations between addresses of the atomic storage request and logical address spaces managed by respective storage controllers of the storage system;
generating completion metadata for the atomic storage request, the completion metadata comprising one or more of;
a number of storage controllers assigned to the atomic storage request and an identifier of each of the assigned storage controllers; and
configuring each storage controller of the assigned storage controllers to store the completion metadata generated for the atomic storage request in response to completing implementation of the respective sub-requests assigned to the storage controller.
9 Assignments
0 Petitions
Accused Products
Abstract
An aggregation module combines a plurality of logical address spaces to form a conglomerated address space. The logical address spaces comprising the conglomerated address space may correspond to different respective storage modules and/or storage devices. An atomic aggregation module coordinates atomic storage operations within the conglomerated address space, and which span multiple storage modules. The aggregation module may identify the storage modules used to implement the atomic storage request, assign a sequence indicator to the atomic storage request, and issue atomic storage requests (sub-requests) to the storage modules. The storage modules may be configured to store a completion tag comprising the sequence indicator upon completing the sub-requests issued thereto. The aggregation module may identify incomplete atomic storage requests based on the completion information stored on the storage modules.
-
Citations
25 Claims
-
1. A method, comprising:
-
assigning two or more storage controllers of a storage system to an atomic storage request, each of the two or more storage controllers assigned to implement respective sub-requests of the atomic storage request based on associations between addresses of the atomic storage request and logical address spaces managed by respective storage controllers of the storage system; generating completion metadata for the atomic storage request, the completion metadata comprising one or more of;
a number of storage controllers assigned to the atomic storage request and an identifier of each of the assigned storage controllers; andconfiguring each storage controller of the assigned storage controllers to store the completion metadata generated for the atomic storage request in response to completing implementation of the respective sub-requests assigned to the storage controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An apparatus, comprising:
-
an atomic aggregation module configured to; assign respective atomic storage operations of an atomic storage request to two or more storage modules of a storage system comprising a plurality of storage modules; and generate a transaction completion tag for the atomic storage request, the transaction completion tag comprising a sequence indicator and one or more of;
a number of storage modules assigned to implement atomic storage operations of the atomic storage request, and identifiers of the two or more storage modules in the storage system; andan aggregation storage module configured to cause each storage module of the two or more storage modules to; write the transaction completion tag generated for the atomic storage request in non-volatile storage of the storage module in response to completing the respective atomic storage operations assigned to the storage module. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory computer-readable storage medium comprising computer-readable program code configured for execution by a processor to cause a computing device to perform operations, the operations comprising:
-
combining a plurality of logical address spaces to form a virtual address space, each logical address space corresponding to a respective storage layer configured to perform storage operations pertaining to the logical address space on persistent storage of the storage layer; selecting two or more of the storage layers to implement an atomic storage request, each of the two or more storage layers being assigned to implement a respective portion of the atomic storage request based on mappings between virtual identifiers of the atomic storage request and the logical address spaces corresponding to the storage layers; and providing completion data for the atomic storage request to each of the selected storage layers, the completion data comprising a completion sequence number and one or more of;
a number of the selected storage layers, and an identifier of each of the selected storage layers,wherein each storage layer of the selected storage layers is configured to write the provided completion data to the persistent storage of the storage layer in response to the storage layer completing the respective portion of the atomic storage request assigned to the storage layer. - View Dependent Claims (22, 23, 24, 25)
-
Specification