IP Library Granted Patent US 10,635,637
Granted Patent B1
US 10,635,637 · App. 15/476,173 · Granted Apr 28, 2020

Method to use previously-occupied inodes and associated data structures to improve file creation performance

Inventors: Abhishek Kumar Gopalka (Pune, IN); Anindya Banerjee (Pune, IN); Pooja Mahadik (Ratnagiri, IN); Sanjay Kumar Jain (Pune, IN); Shirish Vijayvargiya (Pune, IN)
Assignee: Veritas Technologies LLC
G06F16/13G06F11/1451G06F16/162G06F2201/84
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 10,635,637
App. No.
15/476,173
Granted
Apr 28, 2020
Kind
B1
Abstract

Various systems and methods are provided for using various in-core and on-disk data structures to improve the file creation process through the use of previously-occupied inodes. For example, one method involves updating an in-core data structure in response to receiving a command to delete a first file, such that a first node is assigned to the first file, the in-core data structure is stored in a non-persistent computer-readable storage medium, the in-core data structure comprises a plurality of entries, each of the entries comprises information identifying a respective inode of a plurality of inodes as being available, and the updating the in-core data structure comprises storing information regarding the first inode in a first entry of the plurality of entries; and creating a second file, where the creating comprises assigning the first inode to the second file using the information regarding the first inode stored in the first entry.

Claims (103)

1. A method, comprising:

in response to receiving a command to delete a first file, updating an in-core data structure, wherein

a first node is assigned to the first file,

the in-core data structure is stored in a non-persistent computer-readable storage medium,

the in-core data structure comprises a plurality of entries,

each of the entries comprises information identifying a respective inode of a plurality of inodes as being available, and

the updating the in-core data structure comprises storing information regarding a first inode in a first entry of the plurality of entries; and

creating a second file, wherein

the creating comprises assigning the first inode to the second file using the information regarding the first inode stored in the first entry.

2. The method of claim 1 , wherein

the in-core data structure is a queue,

the queue has at least a first position,

the updating the in-core data structure further comprises storing the information in the first position of the queue,

the creating the second file further comprises assigning the first inode to the second file using the information stored in the first position of the queue, and

the first position of the queue comprises information regarding the first inode.

3. The method of claim 1 , further comprising:

assigning the first file to the first inode among the plurality of inodes, and

subsequent to the assigning, receiving the command to delete the first file.

4. The method of claim 3 , further comprising:

deleting the first file from a directory, wherein

the deleting is performed in response to receiving the command to delete the first file.

5. The method of claim 4 , wherein

the deleting comprises

removing the first file from a directory, and

setting a flag in the first inode.

6. The method of claim 5 , further comprising:

updating a backup on-disk bitmap, wherein

the backup on-disk bitmap is stored in a persistent computer-readable storage medium,

the updating is performed in response to deleting the first file from the directory, and

the in-core data structure comprises information identifying a plurality of available inodes, and

the updating comprises storing information identifying each freed inode that is identified in the in-core data structure.

7. The method of claim 6 , further comprising:

subsequent to a shutdown of a computer system, rebooting the computer system, wherein

the rebooting comprises using the backup on-disk bitmap to repopulate the in-core data structure.

8. The method of claim 5 , further comprising:

subsequent to a shutdown of a computer system, unmounting a file system, wherein

the file system comprises the plurality of inodes, and

the unmounting comprises retaining another inode of the plurality of inodes, for which a corresponding flag is currently set.

9. The method of claim 1 , wherein

creating the second file further comprises removing the first inode from the in-core data structure.

10. A system comprising:

a microprocessor; and

a non-transient computer-readable storage medium, comprising computer instructions executable by the microprocessor, wherein the computer instructions are configured to perform a method comprising the steps of:

in response to receiving a command to delete a first file, updating an in-core data structure, wherein

a first node is assigned to the first file,

the in-core data structure is stored in a non-persistent computer-readable storage medium,

the in-core data structure comprises a plurality of entries,

each of the entries comprises information identifying a respective inode of a plurality of inodes as being available, and

the updating the in-core data structure comprises storing information regarding a first inode in a first entry of the plurality of entries; and

creating a second file, wherein

the creating comprises assigning the first inode to the second file using the information regarding the first inode stored in the first entry.

11. The system of claim 10 , wherein

the in-core data structure is a queue,

the queue has at least a first position,

the updating the in-core data structure further comprises storing the information in the first position of the queue,

the creating the second file further comprises assigning the first inode to the second file using the information stored in the first position of the queue, and

the first position of the queue comprises information regarding the first inode.

12. The system of claim 10 , wherein the method further comprises:

assigning the first file to the first inode among the plurality of inodes, and

subsequent to the assigning, receiving the command to delete the first file.

13. The system of claim 12 , wherein the method further comprises:

deleting the first file from a directory, wherein

the deleting is performed in response to receiving the command to delete the first file, and

the deleting comprises

removing the first file from a directory, and

setting a flag in the first inode.

14. The system of claim 13 , wherein the method further comprises:

updating a backup on-disk bitmap, wherein

the backup on-disk bitmap is stored in a persistent computer-readable storage medium,

the updating is performed in response to deleting the first file from the directory, and

the in-core data structure comprises information identifying a plurality of available inodes, and

the updating comprises storing information identifying each freed inode that is identified in the in-core data structure.

15. The system of claim 14 , wherein the method further comprises:

subsequent to a shutdown of a computer system, rebooting the computer system, wherein

the rebooting comprises using the backup on-disk bitmap to repopulate the in-core data structure.

16. The system of claim 13 , wherein the method further comprises:

subsequent to a shutdown of a computer system, unmounting a file system, wherein

the file system comprises the plurality of inodes, and

the unmounting comprises retaining another inode of the plurality of inodes, for which a corresponding flag is currently set.

17. A computer program product, comprising a plurality of instructions stored on a non-transient computer-readable storage medium, wherein the instructions are configured to execute a method comprising the steps of:

in response to receiving a command to delete a first file, updating an in-core data structure, wherein

a first node is assigned to the first file,

the in-core data structure is stored in a non-persistent computer-readable storage medium,

the in-core data structure comprises a plurality of entries,

each of the entries comprises information identifying a respective inode of a plurality of inodes as being available, and

the updating the in-core data structure comprises storing information regarding a first inode in a first entry of the plurality of entries; and

creating a second file, wherein

the creating comprises assigning the first inode to the second file using the information regarding the first inode stored in the first entry.

18. The computer program product of claim 17 , wherein

the in-core data structure is a queue,

the queue has at least a first position,

the updating the in-core data structure further comprises storing the information in the first position of the queue,

the creating the second file further comprises assigning the first inode to the second file using the information stored in the first position of the queue, and

the first position of the queue comprises information regarding the first inode.

19. The computer program product of claim 17 , wherein the method further comprises:

assigning the first file to the first inode among the plurality of inodes, and

subsequent to the assigning, receiving the command to delete the first file.

20. The computer program product of claim 19 , wherein the method further comprises:

deleting the first file from a directory, wherein

the deleting is performed in response to receiving the command to delete the first file, and

the deleting comprises

removing the first file from a directory, and

setting a flag in the first inode.

Assignments (11)
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 →
SECURITY INTEREST Recorded Mar 17, 2025
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070530/0497 →
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 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0931 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
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 Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: GOPALKA, ABHISHEK KUMAR; BANERJEE, ANINDYA; MAHADIK, POOJA; JAIN, SANJAY KUMAR; VIJAYVARGIYA, SHIRISH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041814/0421 →