System and method for logical deletion of stored data objects
First Claim
1. A method, comprising:
- performing, by a computer system that stores a plurality of objects in a memory, wherein each of the plurality of objects comprises a composite key and object data, and wherein each composite key comprises a user key and a version identifier;
receiving a request to perform a delete operation, wherein the request to perform a delete operation specifies a particular user key but does not specify a version identifier;
in response to said receiving;
creating a delete marker object comprising a new composite key, wherein the delete marker object does not contain object data, and wherein said creating comprises;
generating a new, unique version identifier for the delete marker object; and
concatenating the new, unique version identifier for the delete marker object and the particular user key to generate the new composite key for the delete marker object;
refraining from deleting any of the plurality of objects previously stored in the memory in response to said receiving; and
storing the delete marker object in the memory, wherein the presence of the delete marker object in the memory indicates a logical deletion of the particular user key;
receiving a second request to perform a delete operation, wherein the second request to perform a delete operation specifies a second user key and a second, unique version identifier; and
in response to receiving the second request;
deleting an object stored in the memory that has a composite key comprising the second user key and the second, unique version identifier.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for providing object versioning in a storage system may support the logical deletion of stored objects. In response to a delete operation specifying both a user key and a version identifier, the storage system may permanently delete the specified version of an object having the specified key. In response to a delete operation specifying a user key, but not a version identifier, the storage system may create a delete marker object that does not contain object data, and may generate a new version identifier for the delete marker. The delete marker may be stored as the latest object version of the user key, and may be addressable in the storage system using a composite key comprising the user key and the new version identifier. Subsequent attempts to retrieve the user key without specifying a version identifier may return an error, although the object was not actually deleted.
-
Citations
35 Claims
-
1. A method, comprising:
performing, by a computer system that stores a plurality of objects in a memory, wherein each of the plurality of objects comprises a composite key and object data, and wherein each composite key comprises a user key and a version identifier; receiving a request to perform a delete operation, wherein the request to perform a delete operation specifies a particular user key but does not specify a version identifier; in response to said receiving; creating a delete marker object comprising a new composite key, wherein the delete marker object does not contain object data, and wherein said creating comprises; generating a new, unique version identifier for the delete marker object; and concatenating the new, unique version identifier for the delete marker object and the particular user key to generate the new composite key for the delete marker object; refraining from deleting any of the plurality of objects previously stored in the memory in response to said receiving; and storing the delete marker object in the memory, wherein the presence of the delete marker object in the memory indicates a logical deletion of the particular user key; receiving a second request to perform a delete operation, wherein the second request to perform a delete operation specifies a second user key and a second, unique version identifier; and in response to receiving the second request; deleting an object stored in the memory that has a composite key comprising the second user key and the second, unique version identifier. - View Dependent Claims (2, 3, 4, 5)
-
6. A method, comprising:
performing, by a computer system that stores a plurality of objects in a memory, wherein each of the plurality of objects comprises a user key and a version identifier; receiving a request to perform a delete operation, wherein the request to perform a delete operation specifies a particular user key but does not specify a version identifier; and in response to said receiving; generating a new, unique version identifier; creating a delete marker object comprising the particular user key and the new, unique version identifier; refraining from deleting any of the plurality of objects previously stored in the memory in response to said receiving; and storing the delete marker object in the memory, wherein the presence of the delete marker object in the memory indicates a logical deletion of the particular user key. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
19. A system, comprising:
-
a data store that stores a plurality of objects, wherein each of the plurality of objects comprises a user key and a version identifier; one or more processors; a memory coupled to the one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to perform; receiving a request to perform a delete operation, wherein the request to perform a delete operation specifies a particular user key but does not specify a version identifier; and in response to said receiving; generating a new, unique version identifier; creating a delete marker object comprising the particular user key and the new, unique version identifier; refraining from deleting any of the plurality of objects previously stored in the data store in response to said receiving; and storing the delete marker object in the data store, wherein the presence of the delete marker object in the data store indicates a logical deletion of the particular user key. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31)
-
-
32. A non-transitory, computer-readable storage medium storing program instructions that when executed on one or more computers cause the one or more computers to perform:
-
receiving a request to perform a delete operation in regard to one of a plurality of objects stored in a data store, wherein each of the plurality of objects comprises a user key and a version identifier, wherein the request to perform a delete operation specifies a particular user key but does not specify a version identifier; and in response to said receiving; generating a new, unique version identifier; creating a delete marker object comprising the particular user key and the new, unique version identifier; refraining from deleting any of the plurality of objects previously stored in the memory in response to said receiving; and storing the delete marker object in the memory, wherein the presence of the delete marker object in the memory indicates a logical deletion of the particular user key. - View Dependent Claims (33, 34, 35)
-
Specification