IP Library Granted Patent US 10,242,022
Granted Patent B1
US 10,242,022 · App. 15/233,849 · Granted Mar 26, 2019

Systems and methods for managing delayed allocation on clustered file systems

Inventors: Sanjay Jain (Pune, IN); Shirish Vijayvargiya (Pune, IN); Anindya Banerjee (Pune, IN)
Assignee: Veritas Technologies LLC
G06F17/30171G06F17/30197G06F17/30362G06F17/30424
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,242,022
App. No.
15/233,849
Granted
Mar 26, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for managing delayed allocation on clustered file systems may include (i) receiving, at a global lock manager that stores storage disk allocation information for a plurality of nodes in a clustered file system, a lock request from a node that requests a lock range on a storage disk to store data from a file, (ii) reserving, by the global lock manager, the lock range, (iii) receiving, at the global lock manager, from an additional node, an additional lock request for an additional lock range to store additional data from the file, and (iv) reserving, by the global lock manager, the additional lock range to be adjacent to the lock range on the storage disk based on the additional data on the additional node being from the same file as the data on the node. Various other methods, systems, and computer-readable media are also disclosed.

Claims (74)

1. A computer-implemented method for managing delayed allocation on clustered file systems, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

receiving, at a global lock manager that stores, within a lock range data structure, storage disk allocation information for a plurality of nodes in a clustered file system, a lock request from a node that requests a lock range on a storage disk to store data from a file;

reserving, by the global lock manager, in the lock range data structure, the lock range on the storage disk for the data from the file in response to the lock request from the node;

receiving, at the global lock manager, from an additional node within the plurality of nodes in the clustered file system, an additional lock request for an additional lock range on the storage disk to store additional data from the file;

reserving, by the global lock manager, in the lock range data structure, the additional lock range to be adjacent to the lock range on the storage disk based on the additional data on the additional node being from the same file as the data on the node;

determining, at a quota management node, a delayed allocation quota for each individual node in the plurality of nodes, wherein the delayed allocation quota comprises a total amount of memory in a buffer available to be claimed by the individual node via lock ranges reserved by the individual node with the global lock manager;

determining, at the quota management node, that the node has met a delayed allocation quota for the node; and

disallowing, by the quota management node, the node from receiving additional lock ranges from the global lock manager until the node has written all of the data stored in the buffer for the node to the storage disk, wherein the data corresponds to the total amount of memory available in the buffer to be claimed by the node via the lock ranges.

2. The computer-implemented method of claim 1 , further comprising:

receiving, by the global lock manager, from the node, a query about the lock range for the data from the file; and

sending, by the global lock manager, to the node, information about the lock range.

3. The computer-implemented method of claim 2 , further comprising filling a section of the storage disk defined by the additional lock range with filler data in response to receiving the query about the lock range.

4. The computer-implemented method of claim 2 , further comprising sending, to the additional node, in response to receiving the query about the lock range, a message indicating that the additional node should write the additional data to a section of the storage disk defined by the additional lock range.

5. The computer-implemented method of claim 1 , further comprising:

receiving, at the node, a write request that comprises the data from the file;

storing, at the node, the data from the file in the buffer;

requesting, by the node, the lock range from the global lock manager;

determining, by the node, that the buffer needs to be cleared;

querying, by the node, the global lock manager about the lock range;

receiving, by the node, information about the lock range from the global lock manager; and

writing, by the node, the data from the file to a section of the storage disk defined by the lock range.

6. The computer-implemented method of claim 1 , further comprising:

storing, by the additional node, the additional data from the file in the buffer;

receiving, by the additional node, a message indicating that the additional node should write the additional data to a section of the storage disk defined by the additional lock range; and

writing, by the additional node, the additional data to the section of the storage disk defined by the additional lock range in response to the message despite having not determined, by the additional node, that the buffer needs to be cleared.

7. The computer-implemented method of claim 1 , further comprising:

determining, by the quota management node, that the node has written data to a previously requested lock range; and

allowing, by the quota management node, the node to receive the additional lock ranges.

8. The computer-implemented method of claim 1 , wherein the additional lock range is adjacent to the lock range on the storage disk when the additional lock range starts at a same memory address where the lock range ends.

9. A system for managing delayed allocation on clustered file systems, the system comprising:

a receiving module, stored in memory, that receives, at a global lock manager that stores, within a lock range data structure, storage disk allocation information for a plurality of nodes in a clustered file system, a lock request from a node that requests a lock range on a storage disk to store data from a file;

a reservation module, stored in memory, that reserves, by the global lock manager, in the lock range data structure, the lock range on the storage disk for the data from the file in response to the lock request from the node, wherein:

the receiving module receives, at the global lock manager, from an additional node within the plurality of nodes in the clustered file system, an additional lock request for an additional lock range on the storage disk to store additional data from the file; and

the reservation module reserves, by the global lock manager, in the lock range data structure, the additional lock range to be adjacent to the lock range on the storage disk based on the additional data on the additional node being from the same file as the data on the node; and

a quota management module, stored in memory, that:

determines, at a quota management node, a delayed allocation quota for each individual node in the plurality of nodes, wherein the delayed allocation quota comprises a total amount of memory available in a buffer to be claimed by the individual node via lock ranges reserved by the individual node with the global lock manager;

determines, at the quota management node, that the node has met a delayed allocation quota for the node; and

disallows, by the quota management node, the node from receiving additional lock ranges from the global lock manager until the node has written all of the data stored in the buffer for the node to the storage disk, wherein the data corresponds to the total amount of memory available in the buffer to be claimed by the node via the lock ranges; and

at least one physical hardware processor configured to execute the receiving module, the reservation module, and the quota management module.

10. The system of claim 9 , wherein:

the receiving module receives, by the global lock manager, from the node, a query about the lock range for the data from the file; and

the receiving module sends, by the global lock manager, to the node, information about the lock range.

11. The system of claim 10 , wherein the reservation module fills a section of the storage disk defined by the additional lock range with filler data in response to receiving the query about the lock range.

12. The system of claim 10 , wherein the receiving module sends, to the additional node, in response to receiving the query about the lock range, a message indicating that the additional node should write the additional data to a section of the storage disk defined by the additional lock range.

13. The system of claim 9 , further comprising:

a write receiving module, stored in memory, that receives, at the node, a write request that comprises the data from the file;

a buffer module, stored in memory, that stores, at the node, the data from the file in the buffer;

a lock range module, stored in memory, that requests, by the node, the lock range from the global lock manager; wherein:

the buffer module determines, by the node, that the buffer needs to be cleared;

the lock range module:

queries, by the node, the global lock manager about the lock range; and

receives, by the node, information about the lock range from the global lock manager; and

a writing module, stored in memory, that writes, by the node, the data from the file to a section of the storage disk defined by the lock range.

14. The system of claim 9 , further comprising:

a buffer module, stored in memory, that stores, by the additional node, the additional data from the file in the buffer;

a lock range module, stored in memory, that receives, by the additional node, a message indicating that the additional node should write the additional data to a section of the storage disk defined by the additional lock range; and

a writing module, stored in memory, that writes, by the additional node, the additional data to the section of the storage disk defined by the additional lock range in response to the message despite having not determined, by the additional node, that the buffer needs to be cleared.

15. The system of claim 9 , wherein the quota management module:

determines, by the quota management node, that the node has written data to a previously requested lock range; and

allows, by the quota management node, the node to receive the additional lock ranges.

16. The system of claim 9 , wherein the additional lock range is adjacent to the lock range on the storage disk when the additional lock range starts at a same memory address where the lock range ends.

17. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

receive, at a global lock manager that stores, within a lock range data structure, storage disk allocation information for a plurality of nodes in a clustered file system, a lock request from a node that requests a lock range on a storage disk to store data from a file;

reserve, by the global lock manager, in the lock range data structure, the lock range on the storage disk for the data from the file in response to the lock request from the node;

receive, at the global lock manager, from an additional node within the plurality of nodes in the clustered file system, an additional lock request for an additional lock range on the storage disk to store additional data from the file;

reserve, by the global lock manager, in the lock range data structure, the additional lock range to be adjacent to the lock range on the storage disk based on the additional data on the additional node being from the same file as the data on the node;

determine, at a quota management node, a delayed allocation quota for each individual node in the plurality of nodes, wherein the delayed allocation quota comprises a total amount of memory in a buffer available to be claimed by the individual node via lock ranges reserved by the individual node with the global lock manager;

determine, at the quota management node, that the node has met a delayed allocation quota for the node; and

disallow, by the quota management node, the node from receiving additional lock ranges from the global lock manager until the node has written all of the data stored in the buffer for the node to the storage disk, wherein the data corresponds to the total amount of memory available in the buffer to be claimed by the node via the lock ranges.

18. The non-transitory computer-readable medium of claim 17 , wherein the one or more computer-readable instructions cause the computing device to:

receive, by the global lock manager, from the node, a query about the lock range for the data from the file; and

send, by the global lock manager, to the node, information about the lock range.

19. The non-transitory computer-readable medium of claim 18 , wherein the one or more computer-readable instructions cause the computing device to fill a section of the storage disk defined by the additional lock range with filler data in response to receiving the query about the lock range.

20. The non-transitory computer-readable medium of claim 18 , wherein the one or more computer-readable instructions cause the computing device to send, to the additional node, in response to receiving the query about the lock range, a message indicating that the additional node should write the additional data to a section of the storage disk defined by the additional lock range.

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 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 069632/0613 →
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 →
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 Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2016
From: JAIN, SANJAY; VIJAYVARGIYA, SHIRISH; BANERJEE, ANINDYA
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 039399/0047 →