Atomic renaming and moving of data files while permitting lock-free look-ups
First Claim
1. A computer-implemented method comprising:
- renaming a data file of a computer system while permitting lock-free look-ups to the data file by utilizing a temporary record to which look-ups to the data file resolve while the data file is being renamed;
looking up the data file in a lock free-manner while the data file is being atomically renamed, by, while traversing records of a containing construct of a record for the data file to locate the record for the data file;
where a number of the records of the containing construct traversed so far exceeds a predetermined maximum number of records, reverting to a locking process to look up the data file;
where a currently traversed record of the containing construct has already been traversed, returning failure of the look-up of the data file;
where a currently traversed record of the containing construct does not match the data file, continuing traversal of the records of the containing construct;
where a currently traversed record of the containing construct matches the data file and is a temporary record for the data file, waiting until the temporary record has been removed and restarting look-up of the data file; and
,where a currently traversed record of the containing construct matches the data file and is the record for the data file, returning the record such that look-up of the data file has succeeded.
0 Assignments
0 Petitions
Accused Products
Abstract
Atomic renaming and moving of data files, while permitting lock-free look-ups to the data files, is disclosed. A temporary record may be created within a hash chain encompassing a record for a data file and corresponding to a location of the data file within a computer file system. The temporary record is linked within the hash chain so that the temporary record points to the same records to which the record for the data file points. The record for the data file is renamed with a new name, and/or moved to a new location within the computer file system, and the temporary record is removed from the hash chain. Before the temporary record is removed, look-ups of the data file resolve to the temporary record, the temporary record causing the look-ups to wait until the record for the data file has been renamed and/or moved and the temporary record removed.
-
Citations
17 Claims
-
1. A computer-implemented method comprising:
-
renaming a data file of a computer system while permitting lock-free look-ups to the data file by utilizing a temporary record to which look-ups to the data file resolve while the data file is being renamed; looking up the data file in a lock free-manner while the data file is being atomically renamed, by, while traversing records of a containing construct of a record for the data file to locate the record for the data file; where a number of the records of the containing construct traversed so far exceeds a predetermined maximum number of records, reverting to a locking process to look up the data file; where a currently traversed record of the containing construct has already been traversed, returning failure of the look-up of the data file; where a currently traversed record of the containing construct does not match the data file, continuing traversal of the records of the containing construct; where a currently traversed record of the containing construct matches the data file and is a temporary record for the data file, waiting until the temporary record has been removed and restarting look-up of the data file; and
,where a currently traversed record of the containing construct matches the data file and is the record for the data file, returning the record such that look-up of the data file has succeeded. - View Dependent Claims (2, 3, 4)
-
-
5. A computer-implemented method comprising:
-
atomically moving a data file from one location to another location within a computer file system while permitting lock-free look-ups to the data file by utilizing a temporary record to which look-ups to the data file resolve while the data file is being moved, wherein atomically moving the data file from one location to another location within the computer file system comprises; creating a temporary record within a hash chain encompassing a record for the data file and corresponding to an old location of the data file within the computer file system; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; moving the record for the data file to another hash chain corresponding to a new location of the data file within the computer file system; and
,removing the temporary record from the hash chain, wherein while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been moved to the other hash chain and the temporary record removed. - View Dependent Claims (6)
-
-
7. A computer-implemented method comprising:
-
creating a temporary record within a hash chain encompassing a record for a data file and corresponding to a location of the data file within a computer file system; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; renaming the record for the data file with a new name; and
,removing the temporary record from the hash chain, wherein while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been renamed and the temporary record has been removed. - View Dependent Claims (8, 9)
-
-
10. A computer-implemented method comprising:
-
creating a temporary record within a hash chain encompassing a record for a data file and corresponding to a location of the data file within a computer file system; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; moving the record for the data file to another hash chain corresponding to a new location of the data file within the computer file system; and
,removing the temporary record from the hash chain, wherein while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been moved and the temporary record removed. - View Dependent Claims (11, 12)
-
-
13. A computer-implemented system comprising:
-
a file system in which a plurality of files are stored; and
,means for at least one of atomically renaming and atomically moving from one location to another one of the files within the file system, while permitting lock-free file look-ups, wherein atomically renaming the one of the files is achieved by the means; creating a temporary record within a hash chain encompassing a record for a data file and corresponding to a location of the data file within the file system, the data file being the one of the files; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; renaming the record for the data file with a new name; and
,removing the temporary record from the hash chain, where while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been renamed and the temporary record has been removed, wherein atomically moving the one of the files is achieved by the means; creating a temporary record within a hash chain encompassing a record for the data file and corresponding to the location of the data file within the file system; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; moving the record for the data file to another hash chain corresponding to a new location of the data file within the computer file system; and
,removing the temporary record from the hash chain, where while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been moved and the temporary record removed. - View Dependent Claims (14, 15)
-
-
16. A non-transitory computer-readable data storage medium to store a computer program that when executable by a processor causes a method to be performed, comprising:
-
creating a temporary record within a hash chain encompassing a record for a data file and corresponding to a location of the data file within a computer file system; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; renaming the record for the data file with a new name; and
,removing the temporary record from the hash chain, wherein while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been renamed and the temporary record has been removed.
-
-
17. A non-transitory computer-readable data storage medium to store a computer program that when executable by a processor causes a method to be performed, comprising:
-
creating a temporary record within a hash chain encompassing a record for a data file and corresponding to a location of the data file within a computer file system; linking the temporary record within the hash chain so that the temporary record points to a before record to which the record for the data file points and to an after record to which the record for the data file points; moving the record for the data file to another hash chain corresponding to a new location of the data file within the computer file system; and
,removing the temporary record from the hash chain, wherein while the temporary record exists within the hash chain, look-ups of the data file resolve to the temporary record, such that the temporary record causes the look-ups to wait until the record for the data file has been moved and the temporary record removed.
-
Specification