Techniques for asynchronous snapshot invalidation
Abstract
Asynchronous snapshot invalidation techniques are described. According to various such techniques, an enhanced file handle structure may be defined that includes a snapshot generation ID that is to comprise a value that singularly identifies a snapshot performed at a particular point in time. In some embodiments, when a snapshot ID assigned to that snapshot is reused at a subsequent point in time, a different snapshot generation ID may be assigned to that subsequent snapshot. With respect to an in-core cache, the differing snapshot generation IDs may eliminate unacceptable ambiguity regarding respective file information sets corresponding to the initial and subsequent snapshots sharing the same snapshot ID. As a result, obsolete file information sets may be cleared from the in-core cache asynchronously, enabling improved performance. The embodiments are not limited in this context.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method, comprising:
loading, by a storage server, a first snapshot of a file system; storing a snapshot generation identifier (ID) of the first snapshot in a snapshot attribute set associated with a snapshot ID for the first snapshot; and storing a first file information set in an in-core cache, the first file information set associated with the first snapshot, the first file information set to specify a first file handle associated with a file, the first file handle to comprise a file ID for the file, the snapshot ID for the first snapshot, and the snapshot generation ID of the first snapshot.
2 . The method of claim 1 , comprising:
loading the first file information set from the in-core cache; identifying the snapshot attribute set associated with the snapshot ID comprised in the first file handle; and validating the first file information set by comparing the snapshot generation ID comprised in the first file handle with a snapshot generation ID comprised in the identified snapshot attribute set.
3 . The method of claim 2 , comprising determining that the first file information set is stale in response to a determination that the snapshot generation ID comprised in the first file handle does not match the snapshot generation ID comprised in the identified snapshot attribute set.
4 . The method of claim 3 , comprising asynchronously clearing the first file information set from the in-core cache in response to the determination that the first file information set is stale.
5 . The method of claim 2 , comprising determining that the first file information set is not stale in response to a determination that the snapshot generation ID comprised in the first file handle matches the snapshot generation ID comprised in the identified snapshot attribute set.
6 . The method of claim 1 , comprising storing a second file information set in the in-core cache, the second file information set associated with a second snapshot of the file system, the second file information set to specify a second file handle associated with the file, the second file handle to comprise the file ID and snapshot ID comprised in the first file handle and a snapshot generation ID differing from the snapshot generation ID comprised in the first file handle.
7 . The method of claim 6 , comprising maintaining the first file information set in the in-core cache while storing the second file information set in the in-core cache.
8 . The method of claim 1 , the snapshot generation ID to comprise an unsigned 32-bit number.
9 . The method of claim 1 , the snapshot generation ID to comprise a monotonically-increasing parameter.
10 . A non-transitory machine-readable medium having stored thereon instructions for performing a file management method, comprising machine-executable code which when executed by at least one machine, causes the machine to:
load a first snapshot of a file system; store a snapshot generation identifier (ID) of the first snapshot in a snapshot attribute set associated with a snapshot ID for the first snapshot; and store a first file information set in an in-core cache, the first file information set associated with the first snapshot, the first file information set to specify a first file handle associated with a file, the first file handle to comprise a file ID for the file, the snapshot ID for the first snapshot, and the snapshot generation ID of the first snapshot.
11 . The non-transitory machine-readable medium of claim 10 , comprising machine-executable code which when executed by the at least one machine, causes the machine to:
load the first file information set from the in-core cache; identify the snapshot attribute set associated with the snapshot ID comprised in the first file handle; and validate the first file information set by comparing the snapshot generation ID comprised in the first file handle with a snapshot generation ID comprised in the identified snapshot attribute set.
12 . The non-transitory machine-readable medium of claim 11 , comprising machine-executable code which when executed by the at least one machine, causes the machine to:
determine that the first file information set is stale in response to a determination that the snapshot generation ID comprised in the first file handle does not match the snapshot generation ID comprised in the identified snapshot attribute set; and asynchronously clear the first file information set from the in-core cache in response to the determination that the first file information set is stale.
13 . The non-transitory machine-readable medium of claim 11 , comprising machine-executable code which when executed by the at least one machine, causes the machine to determine that the first file information set is not stale in response to a determination that the snapshot generation ID comprised in the first file handle matches the snapshot generation ID comprised in the identified snapshot attribute set.
14 . The non-transitory machine-readable medium of claim 10 , comprising machine-executable code which when executed by the at least one machine, causes the machine to:
store a second file information set in the in-core cache, the second file information set associated with a second snapshot of the file system, the second file information set to specify a second file handle associated with the file, the second file handle to comprise the file ID and snapshot ID comprised in the first file handle and a snapshot generation ID differing from the snapshot generation ID comprised in the first file handle; and maintain the first file information set in the in-core cache while storing the second file information set in the in-core cache.
15 . A computing device, comprising:
a memory containing a machine-readable medium comprising machine-executable code, having stored thereon instructions for performing a file management method; and a processor coupled to the memory, the processor configured to execute the machine-executable code to cause the processor to:
load a first snapshot of a file system;
store a snapshot generation identifier (ID) of the first snapshot in a snapshot attribute set associated with a snapshot ID for the first snapshot; and
store a first file information set in an in-core cache, the first file information set associated with the first snapshot, the first file information set to specify a first file handle associated with a file, the first file handle to comprise a file ID for the file, the snapshot ID for the first snapshot, and the snapshot generation ID of the first snapshot.
16 . The computing device of claim 15 , the processor configured to execute the machine-executable code to cause the processor to:
load the first file information set from the in-core cache; identify the snapshot attribute set associated with the snapshot ID comprised in the first file handle; and validate the first file information set by comparing the snapshot generation ID comprised in the first file handle with a snapshot generation ID comprised in the identified snapshot attribute set.
17 . The computing device of claim 16 , the processor configured to execute the machine-executable code to cause the processor to:
determine that the first file information set is stale in response to a determination that the snapshot generation ID comprised in the first file handle does not match the snapshot generation ID comprised in the identified snapshot attribute set; and asynchronously clear the first file information set from the in-core cache in response to the determination that the first file information set is stale.
18 . The computing device of claim 16 , the processor configured to execute the machine-executable code to cause the processor to determine that the first file information set is not stale in response to a determination that the snapshot generation ID comprised in the first file handle matches the snapshot generation ID comprised in the identified snapshot attribute set.
19 . The computing device of claim 15 , the processor configured to execute the machine-executable code to cause the processor to assign the snapshot ID for the first snapshot to a second snapshot of the file system while maintaining the first file information set in the in-core cache.
20 . A system, comprising:
the computing device of claim 15 ; and at least one storage device.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.