IP Library › Granted Patent US 12,229,084
Granted Patent B2
US 12,229,084 · App. 18/194,860 · Granted Feb 18, 2025

Rebalancing engine for use in rebalancing files in a distributed storage systems

Inventors: Umeshkumar Vasantha Rajasekaran (Cranberry Township, PA); Glenn Cook (Pittsburgh, PA); Rajavardhan Mallepally (Aubrey, TX); Brett Sander (Pittsburgh, PA); Wenxin Zhou (Vancouver, CA)
Assignee: NetApp, Inc.
G06F16/134G06F16/148G06F16/16G06F16/1734G06F16/183G06F16/27H04L67/1029
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 12,229,084
App. No.
18/194,860
Granted
Feb 18, 2025
Kind
B2
Abstract

Redistribution of files in a containerized distributed file system is disclosed. Containers each have an engine and a scanner and each of the containers stores files and parameters for characteristics of files stored on the container. A first engine in a first container monitors characteristics of files stored on the first container and, responsive to determining that the parameters for files on the first container exceed one or more predetermined thresholds, communicates with a second engine in a second container to determine a destination container for one or more files from the first container. The second engine in the second container indicates to the first engine in the first container whether the second container is available to receive one or more files from the first container. The first engine triggers file system scanning by the scanner of the first container to identify files to be moved to the second container.

Claims (50)

1. A rebalancing engine in a local data container of a distributed file system having a plurality of data containers, each data container having its own rebalancing engine to facilitate rebalancing of files within the distributed file system, the rebalancing engine in the local data container to:

monitor characteristics associated with files stored in a local data container with respect to container-level parameters for the characteristics;

responsive to determining that the container-level parameters exceed one or more predetermined thresholds,

communicate with one or more remote rebalancing engines in remote data containers to determine a selected destination data container to which one or more files from the local data container are to be moved from the local data container;

generate a query to identify the one or more files from the local data container to be moved to the selected destination data container;

receive a response to the query indicating the one or more files to be moved from the local data container;

store results of the query indicating the one or more files to be moved in candidate database; and

cause movement of the one or more files as indicated by the candidate database to the selected data destination container, wherein the one or more files are stored in the selected destination container.

2. The rebalancing engine of claim 1 , wherein determining whether the container-level parameters exceed one or more predetermined thresholds comprises determining if a current size of a file system of the first container is greater than an optimal usage size of the file system of the first container by determining whether an excess size of the file system of the first container is greater that the optimal usage size of the file system of the first container is greater than a threshold.

3. The rebalancing engine of claim 1 , wherein the response to the query identifying the one or more files from the local container to be moved comprises identifiers corresponding to the one or more files from a candidate database.

4. The rebalancing engine of claim 1 , further comprising transmitting the query to a rebalancing scanner in the local container, wherein the rebalancing scanner inserts entries for candidate files into a candidate file database based on analysis of metadata corresponding to the files of the local container.

5. The rebalancing engine of claim 1 , further comprising selecting one or more files to transfer from a set of candidate files based at least on capacity available on the second container and a determination of storage capacity to be gained in the first container in response to movement of a selected file.

6. The method of claim 1 , wherein the rebalancing engine of the local container shares file system characteristic information with at least one rebalancing engine of a remote container on a periodic schedule.

7. The rebalancing engine of claim 1 , wherein the rebalancing engine determines one or more of:

an Optimal Usage Size, which refers to a preselected usage level corresponding to a storage capacity of a container;

a Current Usage Size, which refers to current storage capacity utilized by a container;

a Maximum Usage Size, which refers to a storage capacity value that is greater than the Optimal Usage Size and is used to trigger rebalancing operations; and

a Balancing Threshold, which refers to a threshold value that can be utilized to terminate rebalancing operations.

8. A non-transitory computer readable medium having stored thereon instructions that, when executed, cause a rebalancing engine in a local container of a distributed file system to facilitate rebalancing of files within the distributed file system, the instructions to cause the rebalancing engine to:

monitor characteristics associated with files stored in a local data container with respect to container-level parameters for the characteristics;

responsive to determining that the container-level parameters exceed one or more predetermined thresholds,

communicate with one or more remote rebalancing engines in remote data containers to determine a selected destination data container to which one or more files from the local data container are to be moved from the local data container;

generate a query to identify the one or more files from the local data container to be moved to the selected destination data container;

receive a response to the query indicating the one or more files to be moved from the local data container;

store results of the query indicating the one or more files to be moved in candidate database;

cause movement of the one or more files as indicated by the candidate database to the selected data destination container, wherein the one or more files are stored in the selected destination container.

9. The non-transitory computer readable medium of claim 8 , wherein the instructions that cause the rebalancing engine to determine whether the container-level parameters exceed one or more predetermined thresholds comprises instructions that, when executed, cause the rebalancing engine to determine if a current size of a file system of the first container is greater than an optimal usage size of the file system of the first container by determining whether an excess size of the file system of the first container is greater that the optimal usage size of the file system of the first container is greater than a threshold.

10. The non-transitory computer readable medium of claim 8 , wherein the response to the query identifying the one or more files from the local container to be moved comprises identifiers corresponding to the one or more files from a candidate database.

11. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed, cause the engine to transmit the query to a rebalancing scanner in the local container, wherein the rebalancing scanner inserts entries for candidate files into a candidate file database based on analysis of metadata corresponding to the files of the local container.

12. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed, cause the engine to select one or more files to transfer from a set of candidate files based at least on capacity available on the second container and a determination of storage capacity to be gained in the first container in response to movement of a selected file.

13. The non-transitory computer readable medium of claim 8 , wherein the rebalancing engine of the local container shares file system characteristic information with at least one engine of a remote container on a periodic schedule.

14. The non-transitory computer readable medium of claim 8 , wherein the rebalancing engine determines one or more of:

an Optimal Usage Size, which refers to a preselected usage level corresponding to a storage capacity of a container;

a Current Usage Size, which refers to current storage capacity utilized by a container;

a Maximum Usage Size, which refers to a storage capacity value that is greater than the Optimal Usage Size and is used to trigger rebalancing operations; and

a Balancing Threshold, which refers to a threshold value that can be utilized to terminate rebalancing operations.

15. A distributed file system comprising:

a plurality of containers each having at least a rebalancing engine to facilitate rebalancing of files within the distributed file system and a scanner, each of the plurality of containers to store one or more files and each of the plurality of containers having corresponding container-level parameters for characteristics of files stored on the container;

wherein a rebalancing first engine in a first container monitors characteristics associated with files stored in a local data container with respect to container-level parameters for the characteristics and, responsive to determining that the parameters for files on the first container exceed one or more predetermined thresholds, communicates with one or more remote rebalancing engines in remote data containers to determine a selected destination data container to which one or more files from the local data container are to be moved from the local data container and generates a query to identify the one or more files from the local data container to be moved to the selected destination data container;

wherein a second rebalancing engine in a second container indicates to the first rebalancing engine in the first container whether the second container is available to receive one or more files from the first container;

wherein the first rebalancing engine, responsive to an indication from the second rebalancing engine that the second container is available to receive one or more files from the first container, receives a response to the query indicating the one or more files to be moved from the local data container, stores results of the query indicating the one or more files to be moved in candidate database, and causes movement of the one or more files as indicated by the candidate database to the selected data destination container, wherein the one or more files are stored in the selected destination container.

16. The distributed file system of claim 15 wherein the container-level parameters comprise one or more of:

an Optimal Usage Size, which refers to a preselected usage level corresponding to a storage capacity of a container;

a Current Usage Size, which refers to current storage capacity utilized by a container;

a Maximum Usage Size, which refers to a storage capacity value that is greater than the Optimal Usage Size and is used to trigger rebalancing operations; and

a Balancing Threshold, which refers to a threshold value that can be utilized to terminate rebalancing operations.

17. The distributed file system of claim 15 further comprising selecting one or more files to transfer from a set of candidate files based at least on capacity available on the second container and a determination of storage capacity to be gained in the first container in response to movement of a selected file.

18. The distributed file system of claim 15 wherein the first rebalancing engine transmits the query to a rebalancing scanner in the local container, wherein the rebalancing scanner inserts entries for candidate files into a candidate file database based on analysis of metadata corresponding to the files of the local container.

19. The distributed file system of claim 15 wherein the first rebalancing engine of the first container shares file system characteristic information with at least the second rebalancing engine on a periodic schedule.

20. The distributed file system of claim 15 wherein determining whether the container-level parameters exceed one or more predetermined thresholds comprises determining if a current size of a file system of the first container is greater than an optimal usage size of the file system of the first container by determining whether an excess size of the file system of the first container is greater that the optimal usage size of the file system of the first container is greater than a threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2023
From: RAJASEKARAN, UMESHKUMAR VASANTHA; COOK, GLENN; MALLEPALLY, RAJAVARDHAN; SANDER, BRETT; ZHOU, WENXIN
To: NETAPP, INC.
Reel/Frame 063285/0177 →
Continuity (2)
Provisional Application 63399598 · Aug 19, 2022
Related Publication 20240061807A1 · Feb 22, 2024
References Cited (31)
US 7984259B1 · English · 2011 [cited by applicant]
US 9223500B1 · Lemar et al. · 2015 [cited by applicant]
US 9465820B2 · Singh · 2016 [cited by examiner]
US 9813353B1 · Suit · 2017 [cited by applicant]
US 9934241B2 · Duval et al. · 2018 [cited by applicant]
US 10331627B2 · Singh · 2019 [cited by examiner]
US 12105679B2 · Bare et al. · 2024 [cited by applicant]
US 20040268244A1 · Levanoni et al. · 2004 [cited by applicant]
US 20090006402A1 · Bohle et al. · 2009 [cited by applicant]
US 20090300169A1 · Sagar et al. · 2009 [cited by applicant]
US 20100023631A1 · Archer et al. · 2010 [cited by applicant]
US 20120124092A1 · Teranishi et al. · 2012 [cited by applicant]
US 20130339645A1 · Barve et al. · 2013 [cited by applicant]
US 20140201145A1 · Dorman et al. · 2014 [cited by applicant]
US 20140298116A1 · Bodmer et al. · 2014 [cited by applicant]
US 20150134703A1 · Singh · 2015 [cited by examiner]
US 20160026652A1 · Zheng · 2016 [cited by applicant]
US 20160292047A1 · Bender et al. · 2016 [cited by applicant]
US 20160350328A1 · Singh · 2016 [cited by examiner]
US 20170315838A1 · Nidugala et al. · 2017 [cited by applicant]
US 20180157671A1 · Eda et al. · 2018 [cited by applicant]
US 20190220297A1 · Rao et al. · 2019 [cited by applicant]
US 20230112569A1 · Blom et al. · 2023 [cited by applicant]
US 20240296147A1 · Bare, II et al. · 2024 [cited by applicant]
Co-pending U.S. Appl. No. 18/193,707, inventors Bare; Keith Allen et al., filed on Mar. 31, 2023. [cited by applicant]
U.S. Appl. No. 18/194,874, filed Apr. 3, 2023, Rajasekaran et al. [cited by applicant]
Non-Final Office Action mailed on Apr. 4, 2024 for U.S. Appl. No. 18/194,874, filed Apr. 3, 2023, 24 pages. [cited by applicant]
Non-Final Office Action mailed on Mar. 7, 2024 for U.S. Appl. No. 18/193,707, filed Mar. 31, 2023, 07 pages. [cited by applicant]
Notice of Allowance mailed on May 29, 2024 for U.S. Appl. No. 18/193,707, filed Mar. 31, 2023, 7 pages. [cited by applicant]
Final Office Action mailed on Dec. 12, 2024 for U.S. Appl. No. 18/194,874, filed Apr. 3, 2023, 28 pages. [cited by applicant]
Non-Final Office Action mailed on Nov. 20, 2024 for U.S. Appl. No. 18/661,835, filed May 13, 2024, 32 pages. [cited by applicant]