IP Library Granted Patent US 11,392,545
Granted Patent B1
US 11,392,545 · App. 16/559,686 · Granted Jul 19, 2022

Tracking access pattern of inodes and pre-fetching inodes

Inventors: Bhautik Patel (Gujarat, IN); Freddy James (Kerala, IN); Mitul Kothari (Madhya Pradesh, IN); Anindya Banerjee (Maharashtra, IN)
Assignee: VERITAS TECHNOLOGIES LLC
G06F16/13G06F16/14G06F16/172
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,392,545
App. No.
16/559,686
Granted
Jul 19, 2022
Kind
B1
Abstract

Methods, computer program products, computer systems, and the like are disclosed that provide for the tracking of access patterns of inodes, and the issuing of inode read-ahead instructions, in order to pre-fetch inodes. Such a method can include, for example, identifying a unit of metadata in a file system, identifying a file system structure in the file system, determining whether a file structure of the file system structure is non-sequential, and, in response to a determination that the file structure is non-sequential, retrieving a list of units of metadata. In such embodiments, the file system structure is associated with the unit of metadata, and the determining includes accessing the file system structure. Further, in certain embodiments, the units of metadata identified in the list of units of metadata are stored in a storage device of the computer system.

Claims (116)

1. A method implemented in a computer system, comprising:

identifying a unit of metadata in a file system;

identifying a file system structure in the file system, wherein the file system structure is associated with the unit of metadata;

determining whether an entry corresponding to the file system structure exists in a global list of units of metadata; and

in response to a determination that the entry exists in the global list of units of metadata,

determining whether a file structure of the file system structure is non-sequential,

wherein

the determining comprises

accessing the file system structure, and

in response to a determination that the file structure is non-sequential,

retrieving a list of units of metadata from the global list of units of metadata, wherein

the list of units of metadata corresponds to the entry, and

the units of metadata identified in the list of units of metadata are stored in a storage device of the computer system, and

issuing a read-ahead instruction for one or more of the units of metadata identified in the list of units of metadata.

2. The method of claim 1 , wherein

the read-ahead instruction is an asynchronous read-ahead instruction.

3. The method of claim 1 , wherein

intercepting a read command, wherein

the storage device is a non-volatile storage unit,

the read command is configured to cause a read operation to be performed using a unit of metadata of the units of metadata,

the unit of metadata is associated with the non-volatile storage unit by virtue of the file system, and

the intercepting is performed in response to an input/output operation being issued for a data chunk associated with the unit of metadata.

4. The method of claim 3 , wherein

analyzing an issued read-ahead amount in the read-ahead instruction using a data chunk total; and

in response to the analyzing indicating that the read-ahead instruction can be issued, performing the issuing.

5. The method of claim 4 , wherein

in response to the analyzing indicating that the input/output operation should complete, waiting for completion of the input/output operation.

6. The method of claim 5 , wherein the waiting for the completion of the input/output operation comprises:

determining whether the input/output operation is complete; and

in response to a determination that the input/output operation is not complete, updating a data chunk total of the read-ahead instruction, and continuing performance of the analyzing.

7. The method of claim 6 , wherein the waiting for the completion of the input/output operation further comprises:

in response to a determination that the input/output operation is complete, generating a queue, and

including one or more remaining data chunks in the read-ahead instruction, wherein

the one or more remaining data chunks were not yet included in the read-ahead instruction.

8. The method of claim 1 , wherein the list of units of metadata is a global inode list, and the identifying the file system structure in the file system comprises:

accessing the global inode list, wherein

the unit of metadata is an inode; and

identifying a directory inode in the global inode list, wherein

the directory inode is associated with a parent directory of the inode.

9. The method of claim 1 , wherein the list of units of metadata is a global inode list, and the method further comprises:

accessing a file in the file system, wherein

the unit of metadata is an inode associated with the file; and

searching the global inode list for a directory inode, wherein

the file is stored in a directory in the file system,

the directory inode is associated with the directory.

10. The method of claim 9 , further comprising:

in response to the directory inode being found in the global inode list, determining a file structure of the directory.

11. The method of claim 9 , wherein the determining the file structure of the directory comprises:

performing the determining whether a file structure of the file system structure is non-sequential; and

in response to a determination that the file structure is sequential, issuing a read-ahead instruction to perform a read operation on another inode, wherein the another inode is an inode other than the inode.

12. The method of claim 11 , wherein

the units of metadata are inodes stored in the storage device,

the file structure is sequential, if inode numbers of the inodes are sequential, and

the file structure is non-sequential, if the inode numbers of the inodes are not sequential.

13. The method of claim 9 , further comprising:

in response to the directory inode not being found in the global inode list, adding an entry to the global inode list, wherein

the entry if for the unit of metadata.

14. The method of claim 1 , wherein

the unit of metadata is an inode,

the global list of units of metadata is a global inode list,

the determining whether the entry corresponding to the file system structure exists in the global list of units of metadata comprises attempting to identify a directory inode in the global inode list, and

the directory inode is associated with a parent directory of the inode.

15. A computer program product comprising:

a plurality of instructions, configured to, when executed by one or more processors of a computer system, cause the one or more processors to

identify a unit of metadata in a file system,

identify a file system structure in the file system, wherein the file system structure is associated with the unit of metadata,

determine whether an entry corresponding to the file system structure exists in a global list of units of metadata, and

in response to a determination that the entry exists in the global list of units of metadata,

determine whether a file structure of the file system structure is non-sequential, wherein

whether the file structure of the file system structure is non-sequential is determined by accessing the file system structure, and

in response to a determination that the file structure is non-sequential, retrieve a list of units of metadata from the global list of units of metadata, wherein

the list of units of metadata corresponds to the entry, and

the units of metadata identified in the list of units of metadata are stored in a storage device of the computer system, and

issue a read-ahead instruction for one or more of the units of metadata identified in the list of units of metadata; and

a non-transitory computer-readable storage medium, wherein the plurality of instructions are encoded in the non-transitory computer-readable storage medium.

16. The computer program product of claim 15 , wherein the plurality of instructions are further configured to cause the one or more processors to:

intercept a read command, wherein

the storage device is a non-volatile storage unit,

the read command is configured to cause a read operation to be performed using a unit of metadata of the units of metadata,

the unit of metadata is associated with the non-volatile storage unit by virtue of the file system, and

the read command is intercepted in response to an input/output operation being issued for a data chunk associated with the unit of metadata.

17. The computer program product of claim 16 , wherein the plurality of instructions are further configured to cause the one or more processors to:

analyze an issued read-ahead amount in the read-ahead instruction using a data chunk total; and

in response to an indication that the read-ahead instruction can be issued, issue the read-ahead instruction.

18. The computer program product of claim 15 , wherein the plurality of instructions are further configured to cause the one or more processors to:

access a file in the file system, wherein

the unit of metadata is an inode associated with the file, and

the list of units of metadata is a global inode list;

search the global inode list for a directory inode, wherein

the file is stored in a directory in the file system,

the directory inode is associated with the directory;

determine whether a file structure of the file system structure is non-sequential;

in response to the determination that the file structure is non-sequential, retrieve the list of units of metadata; and

in response to a determination that the file structure is sequential, issue a read-ahead instruction to perform a read operation on another inode, wherein the another inode is an inode other than the inode,

the units of metadata are inodes stored in the storage device,

the file structure is sequential, if inode numbers of the inodes are sequential, and

the file structure is non-sequential, if the inode numbers of the inodes are not sequential.

19. The computer program product of claim 15 , wherein

the unit of metadata is an inode,

the global list of units of metadata is a global inode list, and

the plurality of instructions configured to cause the one or more processors to determine whether the entry corresponding to the file system structure exists in the global list of units of metadata comprises further instructions configured to cause the one or more processors to attempt to identify a directory inode in the global inode list, wherein

the directory inode is associated with a parent directory of the inode.

20. A computer system comprising:

one or more processors;

a computer-readable storage medium coupled to the one or more processors; and

a plurality of instructions, encoded in the computer-readable storage medium and configured to cause the one or more processors to

identify a unit of metadata in a file system,

identify a file system structure in the file system, wherein the file system structure is associated with the unit of metadata,

determine whether an entry corresponding to the file system structure exists in a global list of units of metadata, and

in response to a determination that the entry exists in the global list of units of metadata,

determine whether a file structure of the file system structure is non-sequential, wherein

whether the file structure of the file system structure is non-sequential is determined by accessing the file system structure, and

in response to a determination that the file structure is non-sequential, retrieve a list of units of metadata from the global list of units of metadata, wherein

the list of units of metadata corresponds to the entry, and

the units of metadata identified in the list of units of metadata are stored in a storage device of the computer system, and

issue a read-ahead instruction for one or more of the units of metadata identified in the list of units of metadata.

Assignments (13)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
Continuity (1)
Continuation 15279694 · Sep 29, 2016