Moving data from file on storage volume to alternate location to free space
First Claim
1. A method in connection with a computing device having a storage volume, a file system managing the storage volume, and a file stored on the storage volume by the file system and accessed by such file system, the file being defined to include data and metadata relating to the data but being in a ghosted form where the data has been moved to an alternate location to free space on the volume, the metadata of the ghosted file including ghosting information for being employed to at least partially retrieve the moved data for the file from the alternate location, the method comprising a ghosting filter on the computing device:
- receiving a read command from the application with respect to a requested range of the data of the ghosted file, the read command having parameters including an offset into the requested range of the data of the ghosted file and a read length with respect to such requested range of the data;
identifying within the requested range of the data any corresponding first segments of data already present in the ghosted file;
if the identified first segments include all of the requested range of the data, responding to the read command with the requested range of the data;
if the identified first segments do not include all of the requested range of the data;
computing a first set comprising a range of each segment of the requested range of data that is not a first segment;
identifying within the first set any corresponding second segments of data pending to be reconstituted from the alternate location to the ghosted file;
if the identified second segments include all of the first set, responding to the read command with the requested range of the data once all necessary second segments of data pending to be reconstituted from the alternate location to the ghosted file are in fact reconstituted from the alternate location to the ghosted file;
if the identified second segments do not include all of the first set;
computing a second set comprising a range of each third segment of the requested range of data that is not a first segment and not a second segment;
initiating reconstituting of each third segment of the requested range of the data of the ghosted file based on the received ghosting information and the data of the ghosted file at the alternate location; and
responding to the read command with the requested range of the data once all necessary second and third segments of data are in fact reconstituted to the ghosted file.
2 Assignments
0 Petitions
Accused Products
Abstract
A ghosting filter on a computing device receives a read command for a requested range of data of a ghosted file. The requested range is categorized into first segments present in the ghosted file, second segments pending to be reconstituted from an alternate location to the ghosted file, and third segments that are not first or second segments. Reconstitution of any third segments is initiated to convert same to second, pending segments, and the read command is responded to with the requested range of the data once all second segments are in fact reconstituted from the alternate location to the ghosted file and thus converted to first, pending segments.
-
Citations
18 Claims
-
1. A method in connection with a computing device having a storage volume, a file system managing the storage volume, and a file stored on the storage volume by the file system and accessed by such file system, the file being defined to include data and metadata relating to the data but being in a ghosted form where the data has been moved to an alternate location to free space on the volume, the metadata of the ghosted file including ghosting information for being employed to at least partially retrieve the moved data for the file from the alternate location, the method comprising a ghosting filter on the computing device:
-
receiving a read command from the application with respect to a requested range of the data of the ghosted file, the read command having parameters including an offset into the requested range of the data of the ghosted file and a read length with respect to such requested range of the data;
identifying within the requested range of the data any corresponding first segments of data already present in the ghosted file;
if the identified first segments include all of the requested range of the data, responding to the read command with the requested range of the data;
if the identified first segments do not include all of the requested range of the data;
computing a first set comprising a range of each segment of the requested range of data that is not a first segment;
identifying within the first set any corresponding second segments of data pending to be reconstituted from the alternate location to the ghosted file;
if the identified second segments include all of the first set, responding to the read command with the requested range of the data once all necessary second segments of data pending to be reconstituted from the alternate location to the ghosted file are in fact reconstituted from the alternate location to the ghosted file;
if the identified second segments do not include all of the first set;
computing a second set comprising a range of each third segment of the requested range of data that is not a first segment and not a second segment;
initiating reconstituting of each third segment of the requested range of the data of the ghosted file based on the received ghosting information and the data of the ghosted file at the alternate location; and
responding to the read command with the requested range of the data once all necessary second and third segments of data are in fact reconstituted to the ghosted file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method in connection with a computing device having a storage volume, a file system managing the storage volume, and a file stored on the storage volume by the file system and accessed by such file system, the file being in a ghosted form in that data of the file has been moved to an alternate location, the method comprising:
-
receiving a read command from the application with respect to a requested range of the data of the ghosted file, the read command having parameters including an offset into the requested range of the data of the ghosted file and a read length with respect to such requested range of the data;
identifying within the requested range of the data any corresponding first segments of data already present in the ghosted file;
if the identified first segments include all of the requested range of the data, responding to the read command with the requested range of the data;
if the identified first segments do not include all of the requested range of the data;
computing a first set comprising a range of each segment of the requested range of data that is not a first segment;
identifying within the first set any corresponding second segments of data pending to be reconstituted from the alternate location to the ghosted file;
if the identified second segments include all of the first set, responding to the read command with the requested range of the data once all necessary second segments of data pending to be reconstituted from the alternate location to the ghosted file are in fact reconstituted from the alternate location to the ghosted file;
if the identified second segments do not include all of the first set;
computing a second set comprising a range of each third segment of the requested range of data that is not a first segment and not a second segment;
initiating reconstituting of each third segment of the requested range of the data of the ghosted file based on the received ghosting information and the data of the ghosted file at the alternate location; and
responding to the read command with the requested range of the data once all necessary second and third segments of data are in fact reconstituted to the ghosted file. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification