IP Library Granted Patent US 11,392,546
Granted Patent B1
US 11,392,546 · App. 16/837,046 · Granted Jul 19, 2022

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 11,392,546
App. No.
16/837,046
Granted
Jul 19, 2022
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 (94)

1. A method comprising:

determining whether an in-core data structure comprises an adequate number of entries, wherein

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, and

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

in response to a determination that the in-core data structure does not comprise an adequate number of entries, performing a first maintenance action, wherein

the first maintenance action is one of a plurality of maintenance actions, and

the plurality of maintenance actions comprises

pre-occupying one or more inodes of the plurality of inodes, and

removing the one or more inodes.

2. The method of claim 1 , further comprising:

determining whether the in-core data structure comprises an expired entry; and

in response to a determination that the in-core data structure comprises the expired entry, removing the expired entry from the in-core data structure.

3. The method of claim 1 , wherein

the determination that the in-core data structure does not comprise the adequate number of entries is a determination that the in-core data structure comprises less than a minimum number of entries.

4. The method of claim 3 , wherein the pre-occupying the one or more inodes comprises:

pre-allocating a sufficient number of inodes to reach a minimum number of inodes, wherein

the sufficient number of inodes is a difference between the minimum number of inodes and a current number of inodes, and

setting a flag for each of the one or more inodes, wherein

each flag is configured to indicate that the each of the one or more inodes is at least one of

allocated, and

unavailable.

5. The method of claim 4 , wherein

the pre-occupying the one or more inodes further comprises at least one of

marking each of the one or more inodes as being allocated in a primary on-disk data structure, or

adding information identifying each of the one or more inodes to the in-core data structure.

6. The method of claim 1 , wherein

the determination that the in-core data structure does not comprise the adequate number of entries is a determination that the in-core data structure comprises more than a maximum number of entries.

7. The method of claim 1 , wherein the removing the one or more inodes comprises:

removing a sufficient number of inodes to reach a maximum number of inodes, wherein

the sufficient number of inodes is a difference between a current number of inodes and the maximum number of inodes, and

each inode that is removed, deleting a corresponding record from a primary on-disk data structure.

8. A system comprising:

a microprocessor; and

a non-transient computer-readable storage medium, comprising computer instructions executable by the microprocessor and configured to perform a method comprising

determining whether an in-core data structure comprises an adequate number of entries, wherein

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, and

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

in response to a determination that the in-core data structure does not comprise an adequate number of entries, performing a first maintenance action, wherein

the first maintenance action is one of a plurality of maintenance actions, and

the plurality of maintenance actions comprises

pre-occupying one or more inodes of the plurality of inodes, and

removing the one or more inodes.

9. The system of claim 8 , wherein the method further comprises:

determining whether the in-core data structure comprises an expired entry; and

in response to a determination that the in-core data structure comprises the expired entry, removing the expired entry from the in-core data structure.

10. The system of claim 8 , wherein

the determination that the in-core data structure does not comprise the adequate number of entries is a determination that the in-core data structure comprises less than a minimum number of entries.

11. The system of claim 10 , wherein the pre-occupying the one or more inodes comprises:

pre-allocating a sufficient number of inodes to reach a minimum number of inodes, wherein

the sufficient number of inodes is a difference between the minimum number of inodes and a current number of inodes, and

setting a flag for each of the one or more inodes, wherein

each flag is configured to indicate that the each of the one or more inodes is at least one of

allocated, and

unavailable.

12. The system of claim 11 , wherein

the pre-occupying the one or more inodes further comprises at least one of

marking each of the one or more inodes as being allocated in a primary on-disk data structure, or

adding information identifying each of the one or more inodes to the in-core data structure.

13. The system of claim 8 , wherein

the determination that the in-core data structure does not comprise the adequate number of entries is a determination that the in-core data structure comprises more than a maximum number of entries.

14. The system of claim 8 , wherein the removing the one or more inodes comprises:

removing a sufficient number of inodes to reach a maximum number of inodes, wherein

the sufficient number of inodes is a difference between a current number of inodes and the maximum number of inodes, and

each inode that is removed, deleting a corresponding record from a primary on-disk data structure.

15. 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:

determining whether an in-core data structure comprises an adequate number of entries, wherein

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, and

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

in response to a determination that the in-core data structure does not comprise an adequate number of entries, performing a first maintenance action, wherein

the first maintenance action is one of a plurality of maintenance actions, and

the plurality of maintenance actions comprises

pre-occupying one or more inodes of the plurality of inodes, and

removing the one or more inodes.

16. The computer program product of claim 15 , wherein the method further comprises:

determining whether the in-core data structure comprises an expired entry; and

in response to a determination that the in-core data structure comprises the expired entry, removing the expired entry from the in-core data structure.

17. The computer program product of claim 15 , wherein

the determination that the in-core data structure does not comprise the adequate number of entries is a determination that the in-core data structure comprises less than a minimum number of entries.

18. The computer program product of claim 17 , wherein the pre-occupying the one or more inodes comprises:

pre-allocating a sufficient number of inodes to reach a minimum number of inodes, wherein

the sufficient number of inodes is a difference between the minimum number of inodes and a current number of inodes, and

setting a flag for each of the one or more inodes, wherein

each flag is configured to indicate that the each of the one or more inodes is at least one of

allocated, and

unavailable.

19. The computer program product of claim 15 , wherein

the determination that the in-core data structure does not comprise the adequate number of entries is a determination that the in-core data structure comprises more than a maximum number of entries.

20. The computer program product of claim 15 , wherein the removing the one or more inodes comprises:

removing a sufficient number of inodes to reach a maximum number of inodes, wherein

the sufficient number of inodes is a difference between a current number of inodes and the maximum number of inodes, and

each inode that is removed, deleting a corresponding record from a primary on-disk data structure.

Assignments (12)
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 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
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 →
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/0951 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELESAE OF SECURITY INTEREST IN PATENTS AT R/F 053640/0780 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0492 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 31, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 053640/0780 →
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 Jul 31, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 053373/0367 →
Continuity (1)
Continuation 15476173 · Mar 31, 2017