Consistency without ordering dependency
First Claim
1. A method implemented at least in part by a computer, the method comprising:
- obtaining one or more indications of objects that are modified in context of a transaction;
creating, by the computer, logical copies of the objects that are modified in the context of the transaction while maintaining originals of the objects on a store;
indicating that storage locations associated with the originals of the objects are available for use;
indicating that storage locations associated with the logical copies are valid after successfully flushing all logical copies to a non-volatile memory of the store;
creating a write plan that indicates an intention of where on the store the logical copies are to be written, the write plan including a value indicative of correct content of one or more of the logical copies; and
sending a request to write the write plan to the store.
1 Assignment
0 Petitions
Accused Products
Abstract
Aspects of the subject matter described herein relate to maintaining consistency in a storage system. In aspects, one or more objects may be updated in the context of a transaction. In conjunction with updating the objects, logical copies of the objects may be obtained and modified. A request to write the updated logical copies is sent to a storage controller. The logical copies do not overwrite the original copies. In conjunction with sending the request, a data structure is provided for the storage controller to store on the disk. The data structure indicates the one or more objects that were supposed to be written to disk and may include verification data to indicate the content that was supposed to be written to disk. During recovery, this data structure may be used to determine whether all of the object(s) were correctly written to disk.
35 Citations
17 Claims
-
1. A method implemented at least in part by a computer, the method comprising:
-
obtaining one or more indications of objects that are modified in context of a transaction; creating, by the computer, logical copies of the objects that are modified in the context of the transaction while maintaining originals of the objects on a store; indicating that storage locations associated with the originals of the objects are available for use; indicating that storage locations associated with the logical copies are valid after successfully flushing all logical copies to a non-volatile memory of the store; creating a write plan that indicates an intention of where on the store the logical copies are to be written, the write plan including a value indicative of correct content of one or more of the logical copies; and sending a request to write the write plan to the store. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. At least one computer storage device storing computer-executable instructions, which when executed perform actions, comprising:
-
obtaining an indication of an object involved in an update of one or more transactions; locating the object in a first storage location of a store; creating a logical copy of the object that includes changes made to the object in context of the one or more transactions; determining a second storage location of the store for storing the logical copy; sending a request to write a write plan to the store, the write plan indicating an intention of writing the logical copy as changed to the second storage location, the write plan including a value indicative of correct content of the logical copy as changed; sending a request to write the logical copy as changed to the second storage location; in conjunction with sending the request, providing data that indicates a next location at which a logical copy pertaining to another transaction, if any, is to be written; updating a volatile data structure to indicate that the logical copy is stored in the second storage location; sending a request to write changes to the updated volatile data structure to the store; and sending, to the store in conjunction with the sending the request to write the changes, a flush command that instructs a controller of the store to write cache associated with the store to non-volatile memory of the store. - View Dependent Claims (12, 13, 14)
-
-
15. In a computing environment, a system, comprising:
-
an interface operable to receive a request to modify an object involved in a transaction; a store having a non-volatile memory and a volatile memory thereon; a storage controller that allows writes to the non-volatile memory to proceed in an order other than an order in which requests for the writes were received; an I/O manager operable to perform actions, comprising; locating the object in a first storage location of the store, creating a logical copy of the object that includes changes made to the object in context of the transaction, determining a second storage location of the store for storing the logical copy, sending a request to write a write plan to the store, the write plan indicating an intention of writing the logical copy as changed to the second storage location, the write plan including a value indicative of correct content of the logical copy as changed, sending a request to write the logical copy as changed to the second storage location, and updating a volatile data structure to indicate that the logical copy as changed is stored in the second storage location; and a checkpoint manager operable to send a request to write the volatile data structure to the storage controller and to send a flush request to the storage controller, the flush request instructing the storage controller to flush data from the volatile memory of the store to the non-volatile memory of the store. - View Dependent Claims (16, 17)
-
Specification