System and method for logical deletion of stored data objects
First Claim
1. A system, comprising:
- a data store that stores a plurality of objects, wherein each of the plurality of objects is identified by a combination of a corresponding key and a corresponding version identifier;
a memory coupled to one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to;
receive a request to perform a delete operation specifying a key;
determine whether the request to perform the delete operation specifies a version identifier corresponding to the key specified in the request; and
in response to determining that the request does not specify a version identifier corresponding to the specified key;
generate a new, unique version identifier;
create a delete marker object identified by the specified key and the new, unique version identifier;
refrain from deleting, in response to receiving the request to perform a delete operation, any of the plurality of objects previously stored in the data store; and
store 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 specified key.
0 Assignments
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
20 Claims
-
1. A system, comprising:
-
a data store that stores a plurality of objects, wherein each of the plurality of objects is identified by a combination of a corresponding key and a corresponding version identifier; a memory coupled to one or more processors and storing program instructions that when executed by the one or more processors cause the one or more processors to; receive a request to perform a delete operation specifying a key; determine whether the request to perform the delete operation specifies a version identifier corresponding to the key specified in the request; and in response to determining that the request does not specify a version identifier corresponding to the specified key; generate a new, unique version identifier; create a delete marker object identified by the specified key and the new, unique version identifier; refrain from deleting, in response to receiving the request to perform a delete operation, any of the plurality of objects previously stored in the data store; and store 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 specified key. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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:
-
determine, in response to receiving a request to perform a delete operation that specifies a particular key, whether the request to perform the delete operation specifies a version identifier for the particular key;
wherein the particular key and a version identifier collectively identify a particular object of a plurality of objects stored in a data store; andin response to determining that the request does not specify a version identifier for the particular key; generate a new, unique version identifier; create a delete marker object identified by the particular key and the new, unique version identifier; refrain from deleting, in response to receiving the request to perform a delete operation, any of the plurality of objects stored in the data store; and store 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 key. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A method, performed by one or more computers, comprising:
-
receiving, by the one or more computers, a request to perform a delete operation, wherein the request specifies a particular key;
wherein the particular key and a version identifier collectively identify a particular object of a plurality of objects stored in a data store;determining whether the request to perform the delete operation specifies a version identifier for the particular key; and in response to determining that the request does not specify a version identifier for the particular key; generating a new, unique version identifier; creating a delete marker object identified by the particular key and the new, unique version identifier; refraining from deleting, in response to receiving the request to perform a delete operation, any of the plurality of objects previously stored in the data store; 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 key. - View Dependent Claims (18, 19, 20)
-
Specification