CONSISTENT UNMAPPING OF APPLICATION DATA IN PRESENCE OF CONCURRENT, UNQUIESCED WRITERS AND READERS
First Claim
1. A method for releasing free storage blocks previously allocated to a logical block device back to an underlying storage system supporting the logical block device, comprising:
- receiving a notification from a first process of a processing entity accessing the logical block device of an intent to request a release of a set of storage blocks that are currently allocated to the logical block device but that are not being used by the logical block device, wherein the notification identifies an initial set of storage blocks to be released;
intercepting a write operation from a second process of the processing entity;
determining that the write operation corresponds to a subset of the initial set of storage blocks;
issuing the write operation to the logical block device;
receiving from the first process a request to release a set of storage blocks from the logical block device, wherein the request identifies an updated set of storage blocks; and
releasing storage blocks in the updated set that are not in the subset of storage blocks corresponding to the write operation.
2 Assignments
0 Petitions
Accused Products
Abstract
Free storage blocks previously allocated to a logical block device are released back to an underlying storage system supporting the logical block device in a manner that does not conflict with write operations that may be issued to the free storage blocks at about the same time. According to a first technique, write operations on the same storage blocks to be released are paused until the underlying storage system has completed the releasing operation or, if the write operations are issued earlier than when the underlying storage system actually performs the releasing operation, such storage blocks are not released. According to a second technique, a special file is allocated the free storage blocks, which are then made available for safe releasing.
-
Citations
20 Claims
-
1. A method for releasing free storage blocks previously allocated to a logical block device back to an underlying storage system supporting the logical block device, comprising:
-
receiving a notification from a first process of a processing entity accessing the logical block device of an intent to request a release of a set of storage blocks that are currently allocated to the logical block device but that are not being used by the logical block device, wherein the notification identifies an initial set of storage blocks to be released; intercepting a write operation from a second process of the processing entity; determining that the write operation corresponds to a subset of the initial set of storage blocks; issuing the write operation to the logical block device; receiving from the first process a request to release a set of storage blocks from the logical block device, wherein the request identifies an updated set of storage blocks; and releasing storage blocks in the updated set that are not in the subset of storage blocks corresponding to the write operation. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable storage medium comprising instructions executable in a computer system to cause the computer system to carry out a method for releasing free storage blocks previously allocated to a logical block device back to an underlying storage system supporting the logical block device, said method comprising:
-
receiving a notification from a first process of a processing entity accessing the logical block device of an intent to request a release of a set of storage blocks that are currently allocated to the logical block device but that are not being used by the logical block device, wherein the notification identifies an initial set of storage blocks to be released; intercepting a write operation from a second process of the processing entity; determining that the write operation corresponds to a subset of the initial set of storage blocks; issuing the write operation to the logical block device; receiving from the first process a request to release a set of storage blocks from the logical block device, wherein the request identifies an updated set of storage blocks; and releasing storage blocks in the updated set that are not in the subset of storage blocks corresponding to the write operation. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A method for issuing a command to release free storage blocks previously allocated to a logical block device back to an underlying storage system supporting the logical block device, comprising:
-
identifying a set of free blocks to be released; updating the set of free blocks to remove those free blocks that have already been released; allocating the free blocks in the updated set to a file; and issuing a command to release the free blocks allocated to the file. - View Dependent Claims (14, 15, 16)
-
-
17. A non-transitory computer readable storage medium comprising instructions executable in a computer system to cause the computer system to carry out a method for issuing a command to release free storage blocks previously allocated to a logical block device back to an underlying storage system supporting the logical block device, comprising:
-
identifying a set of free blocks to be released; updating the set of free blocks to remove those free blocks that have already been released; allocating the free blocks in the updated set to a file; and issuing a command to release the free blocks allocated to the file. - View Dependent Claims (18, 19, 20)
-
Specification