Using scratch extents to facilitate copying operations in an append-only storage system
First Claim
1. A computer-implemented method, comprising:
- at one or more devices comprising one or more processors and memory storing instructions executed by the one or more processors to perform the method, performing the following operations;
receiving a request to copy an extent from a source storage device to a destination storage device;
creating a scratch extent on the destination storage device;
associating the scratch extent with a private identifier;
performing a copying operation that copies the extent from the source storage device to the scratch extent on the destination storage device;
wherein the scratch extent is associated with the private identifier while the copying operation is being performed;
after the copying operation is complete and the scratch extent is closed, associating the scratch extent with a public identifier;
wherein associating the scratch extent with the private identifier comprises using the private identifier to create a first entry in a lookup structure stored at the destination storage device, the first entry for accessing the scratch extent using the private identifier, the first entry retrievable from the lookup structure using the private identifier; and
wherein associating the scratch extent with the public identifier comprises using the public identifier to create a second entry in the lookup structure, the second entry for accessing the scratch extent using the public identifier, the second entry retrievable from the lookup structure using the public identifier.
3 Assignments
0 Petitions
Accused Products
Abstract
An append-only data storage system is described that stores sets of data blocks in extents that are located in storage devices. During operation of the system, upon receiving a request to copy an extent from a source storage device to a destination storage device, the system creates a scratch extent on the destination storage device, and associates the scratch extent with a private identifier, whereby the scratch extent can only be accessed through the private identifier. The system uses the private identifier to perform a copying operation that copies the extent from the source storage device to the scratch extent on the destination storage device. After the copying operation is complete and the scratch extent is closed, the system associates the scratch extent with a public identifier, whereby the copy of the extent on the destination storage device becomes publically accessible to other entities in the data storage system.
6 Citations
27 Claims
-
1. A computer-implemented method, comprising:
-
at one or more devices comprising one or more processors and memory storing instructions executed by the one or more processors to perform the method, performing the following operations; receiving a request to copy an extent from a source storage device to a destination storage device; creating a scratch extent on the destination storage device; associating the scratch extent with a private identifier; performing a copying operation that copies the extent from the source storage device to the scratch extent on the destination storage device; wherein the scratch extent is associated with the private identifier while the copying operation is being performed; after the copying operation is complete and the scratch extent is closed, associating the scratch extent with a public identifier; wherein associating the scratch extent with the private identifier comprises using the private identifier to create a first entry in a lookup structure stored at the destination storage device, the first entry for accessing the scratch extent using the private identifier, the first entry retrievable from the lookup structure using the private identifier; and wherein associating the scratch extent with the public identifier comprises using the public identifier to create a second entry in the lookup structure, the second entry for accessing the scratch extent using the public identifier, the second entry retrievable from the lookup structure using the public identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. One or more non-transitory computer-readable media storing instructions that when executed by a computer system cause the computer system to perform operations comprising:
-
receiving a request to copy an extent from a source storage device to a destination storage device; creating a scratch extent on the destination storage device; associating the scratch extent with a private identifier; performing a copying operation that copies the extent from the source storage device to the scratch extent on the destination storage device; wherein the scratch extent is associated with the private identifier while the copying operation is being performed; after the copying operation is complete and the scratch extent is closed, associating the scratch extent with a public identifier; wherein associating the scratch extent with the private identifier comprises using the private identifier to create a first entry in a lookup structure stored at the destination storage device, the first entry for accessing the scratch extent using the private identifier, the first entry retrievable from the lookup structure using the private identifier; and wherein associating the scratch extent with the public identifier comprises using the public identifier to create a second entry in the lookup structure, the second entry for accessing the scratch extent using the public identifier, the second entry retrievable from the lookup structure using the public identifier. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A data storage system, comprising:
-
one or more storage devices containing extents, wherein each extent stores a set of data blocks; wherein upon receiving a request to copy an extent from a source storage device to a destination storage device, the data storage system is configured to; create a scratch extent on the destination storage device, associate the scratch extent with a private identifier, perform a copying operation that copies the extent from the source storage device to the scratch extent on the destination storage device, wherein the scratch extent is associated with the private identifier while the copying operation is being performed, after the copying operation is complete and the scratch extent is closed, associate the scratch extent with a public identifier, wherein the data storage system is configured to associate the scratch extent with the private identifier using the private identifier to create a first entry in a lookup structure stored at the destination storage device, the first entry for accessing the scratch extent using the private identifier, the first entry retrievable from the lookup structure using the private identifier, and wherein the data storage system is configured to associate the scratch extent with the public identifier using the public identifier to create a second entry in the lookup structure, the second entry for accessing the scratch extent using the public identifier, the second entry retrievable from the lookup structure using the public identifier. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification