US-12625846-B2 - Controlling actions in a file system environment using buckets corresponding to priority
Abstract
A method can include receiving requests to perform actions in a file system environment. The method can include populating a first bucket with first tokens. The first bucket can be associated with actions in the file system environment. The method can include populating second buckets, which can correspond to different tenants, with corresponding second tokens based on priorities of the tenants. The second tokens may correspond to allowable actions on behalf of the tenants. Each token of the first tokens and the second tokens may be in one-to-one correspondence with a single action. The method can include prioritizing the second buckets. The method can include generating an execution list for executing the requests. The method can include executing the execution list based on the first tokens and the second tokens.
Inventors
- Hwee Lin Yeo
Assignees
- ORACLE INTERNATIONAL CORPORATION
Dates
- Publication Date
- 20260512
- Application Date
- 20241104
Claims (20)
- 1 . A computer-implemented method, comprising: populating, by a computing system, a first bucket with a first set of tokens, the first bucket associated with global actions of a file system environment; populating, by the computing system, each second bucket of a plurality of second buckets with a corresponding second set of tokens, each second bucket of the plurality of second buckets associated with a respective tenant of a plurality of tenants; prioritizing, by the computing system, each second bucket of the plurality of second buckets by adjusting a maximum number of tokens for each second bucket of the plurality of second buckets such that a first second bucket of the plurality of second buckets associated with a first tenant of the plurality of tenants has a first maximum number of tokens that is different from a second maximum number of tokens of a different second bucket of the plurality of second buckets associated with a different tenant of the plurality of tenants; and executing, by the computing system, an execution list based at least in part on a first number of tokens in the first bucket and a second number of tokens in at least one second bucket of the plurality of second buckets.
- 2 . The computer-implemented method of claim 1 , further comprising: receiving, by the computing system, a plurality of requests to generate data backups from the plurality of tenants associated with the file system environment; and generating, by the computing system, the execution list for executing the plurality of requests based at least in part on the first bucket and the plurality of second buckets.
- 3 . The computer-implemented method of claim 1 , wherein each token of the first set of tokens represents a single action performable by the file system environment, wherein each token of each corresponding second set of tokens of a plurality of second sets of tokens represents a single action performable by the file system environment, and wherein each second set of tokens of the plurality of second sets of tokens has a different second maximum number of tokens corresponding to an allowable number of actions for a corresponding tenant.
- 4 . The computer-implemented method of claim 1 , further comprising: identifying (i) a particular request of a plurality of requests received by the computing system and (ii) a particular tenant of the plurality of tenants associated with the particular request; determining a first number of tokens remaining in a particular second bucket of the plurality of second buckets associated with the particular tenant; in response to determining that the first number of tokens is greater than zero, performing one or more operations associated with the particular request; and deducting one or more tokens from the particular second bucket of the plurality of second buckets, wherein the one or more tokens is in one-to-one correspondence with the one or more operations.
- 5 . The computer-implemented method of claim 1 , further comprising: identifying (i) a particular request of a plurality of requests received by the computing system and (ii) a particular tenant of the plurality of tenants associated with the particular request; determining a first number of tokens remaining in a particular second bucket of the plurality of second buckets associated with the particular tenant; and in response to determining that the first number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed.
- 6 . The computer-implemented method of claim 5 , further comprising: determining a second number of tokens remaining in the first bucket; and in response to determining that the second number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed; or in response to determining that the second number of tokens is greater than zero: performing the one or more operations associated with the particular request; and deducting one or more tokens from the first bucket, wherein the one or more tokens is in one-to-one correspondence with the one or more operations.
- 7 . The computer-implemented method of claim 1 , further comprising: for each single action taken by the file system environment, deducting one token from the first bucket and from a corresponding second bucket of the plurality of second buckets; continuously refilling the first bucket based at least in part on an expected future computational capacity of the file system environment; and continuously refilling the corresponding second bucket based at least in part on a priority assigned to a corresponding tenant associated with the corresponding second bucket.
- 8 . A system, comprising: one or more processors; and a memory coupled to the one or more processors, the memory storing a plurality of instructions executable by the one or more processors, the plurality of instructions comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising: populating a first bucket with a first set of tokens, the first bucket associated with global actions of a file system environment; populating each second bucket of a plurality of second buckets with a corresponding second set of tokens, each second bucket of the plurality of second buckets associated with a respective tenant of a plurality of tenants; prioritizing each second bucket of the plurality of second buckets by adjusting a maximum number of tokens for each second bucket of the plurality of second buckets such that a first second bucket of the plurality of second buckets associated with a first tenant of the plurality of tenants has a first maximum number of tokens that is different from a second maximum number of tokens of a different second bucket of the plurality of second buckets associated with a different tenant of the plurality of tenants; and executing an execution list based at least in part on a first number of tokens in the first bucket and a second number of tokens in at least one second bucket of the plurality of second buckets.
- 9 . The system of claim 8 , wherein the operations further comprise: receiving a plurality of requests to generate data backups from the plurality of tenants associated with the file system environment; and generating the execution list for executing the plurality of requests based at least in part on the first bucket and the plurality of second buckets.
- 10 . The system of claim 8 , wherein each token of the first set of tokens represents a single action performable by the file system environment, wherein each token of each corresponding second set of tokens of a plurality of second sets of tokens represents a single action performable by the file system environment, and wherein each second set of tokens of the plurality of second sets of tokens has a different second maximum number of tokens corresponding to an allowable number of actions for a corresponding tenant.
- 11 . The system of claim 8 , wherein the operations further comprise: identifying (i) a particular request of a plurality of requests receivable by the system and (ii) a particular tenant of the plurality of tenants associated with the particular request; determining a first number of tokens remaining in a particular second bucket of the plurality of second buckets associated with the particular tenant; in response to determining that the first number of tokens is greater than zero, performing one or more operations associated with the particular request; and deducting one or more tokens from the particular second bucket of the plurality of second buckets, wherein the one or more tokens is in one-to-one correspondence with the one or more operations.
- 12 . The system of claim 8 , wherein the operations further comprise: identifying (i) a particular request of a plurality of requests receivable by the system and (ii) a particular tenant of the plurality of tenants associated with the particular request; determining a first number of tokens remaining in a particular second bucket of the plurality of second buckets associated with the particular tenant; and in response to determining that the first number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed.
- 13 . The system of claim 12 , wherein the operations further comprise: determining a second number of tokens remaining in the first bucket; and in response to determining that the second number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed; or in response to determining that the second number of tokens is greater than zero: performing the one or more operations associated with the particular request; and deducting one or more tokens from the first bucket, wherein the one or more tokens is in one-to-one correspondence with the one or more operations.
- 14 . The system of claim 8 , wherein the operations further comprise: for each single action taken by the file system environment, deducting one token from the first bucket and from a corresponding second bucket of the plurality of second buckets; continuously refilling the first bucket based at least in part on an expected future computational capacity of the file system environment; and continuously refilling the corresponding second bucket based at least in part on a priority assigned to a corresponding tenant associated with the corresponding second bucket.
- 15 . A non-transitory computer-readable memory storing a plurality of instructions executable by one or more processors, the plurality of instructions comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform operations, comprising: populating a first bucket with a first set of tokens, the first bucket associated with global actions of a file system environment; populating each second bucket of a plurality of second buckets with a corresponding second set of tokens, each second bucket of the plurality of second buckets associated with a respective tenant of a plurality of tenants; prioritizing each second bucket of the plurality of second buckets by adjusting a maximum number of tokens for each second bucket of the plurality of second buckets such that a first second bucket of the plurality of second buckets associated with a first tenant of the plurality of tenants has a first maximum number of tokens that is different from a second maximum number of tokens of a different second bucket of the plurality of second buckets associated with a different tenant of the plurality of tenants; and executing an execution list based at least in part on a first number of tokens in the first bucket and a second number of tokens in at least one second bucket of the plurality of second buckets.
- 16 . The non-transitory computer-readable memory of claim 15 , wherein the operations further comprise: receiving a plurality of requests to generate data backups from the plurality of tenants associated with the file system environment; and generating the execution list for executing the plurality of requests based at least in part on the first bucket and the plurality of second buckets.
- 17 . The non-transitory computer-readable memory of claim 15 , wherein each token of the first set of tokens represents a single action performable by the file system environment, wherein each token of each corresponding second set of tokens of a plurality of second sets of tokens represents a single action performable by the file system environment, and wherein each second set of tokens of the plurality of second sets of tokens has a different second maximum number of tokens corresponding to an allowable number of actions for a corresponding tenant.
- 18 . The non-transitory computer-readable memory of claim 15 , wherein the operations further comprise: identifying (i) a particular request of a plurality of requests and (ii) a particular tenant of the plurality of tenants associated with the particular request; determining a first number of tokens remaining in a particular second bucket of the plurality of second buckets associated with the particular tenant; in response to determining that the first number of tokens is greater than zero, performing one or more operations associated with the particular request; and deducting one or more tokens from the particular second bucket of the plurality of second buckets, wherein the one or more tokens is in one-to-one correspondence with the one or more operations.
- 19 . The non-transitory computer-readable memory of claim 15 , wherein the operations further comprise: identifying (i) a particular request of a plurality of requests and (ii) a particular tenant of the plurality of tenants associated with the particular request; determining a first number of tokens remaining in a particular second bucket of the plurality of second buckets associated with the particular tenant; and in response to determining that the first number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed.
- 20 . The non-transitory computer-readable memory of claim 19 , wherein the operations further comprise: determining a second number of tokens remaining in the first bucket; and in response to determining that the second number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed; or in response to determining that the second number of tokens is greater than zero: performing the one or more operations associated with the particular request; and deducting one or more tokens from the first bucket, wherein the one or more tokens is in one-to-one correspondence with the one or more operations.
Description
CROSS REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. application Ser. No. 18/418,479, filed Jan. 22, 2024, the disclosure of which is hereby incorporated by reference in its entirety. BACKGROUND A file system environment can provide tenants with the opportunity to automate various actions with respect to a corresponding file system. For example, a tenant may use a file system to store data files, to analyze the data files, to generate backups, and the like. In some examples, the file system environment can receive requests for scheduling the various actions to be performed, for example at a later time, periodically at known intervals, or the like. The file system environment may have an excessive number of tenants and corresponding file systems that may transmit the requests such that the file system environment may experience latency in performing the requested actions, may fail to perform the requested actions within requested parameters, or may experience other technical problems with providing services to the tenants. BRIEF SUMMARY In certain embodiments, a method can be used to control actions in a file system environment based at least in part on priorities assigned to tenants associated with file systems included in the file system environment. The method can include receiving, by a computing system, such as a control application programming interface (control API), a set of requests to generate data backups from a set of tenants associated with the file system environment. The method can include populating, by the computing system, a first bucket with a first set of tokens. The first bucket can be associated with global actions of the file system environment, and a first maximum number of the first set of tokens can correspond to a computational capacity of the file system environment. Each token of the first set of tokens can represent a single action that can be performed by the file system environment. The method can include populating, by the computing system, each second bucket of a set of second buckets with a corresponding second set of tokens of a set of second sets of tokens. Each second bucket of the set of second buckets can be associated with a different tenant of the set of tenants, and each second set of tokens of the set of second sets of tokens can have a different second maximum number of tokens corresponding to an allowable number of actions for a corresponding tenant. Each token of each second set of tokens of the set of second sets of tokens can represent a single action that can be performed by the file system environment. The method can include prioritizing, by the computing system, each second bucket of the set of second buckets by adjusting the different second maximum number of tokens such that a first second bucket of the set of second buckets associated with a first tenant of the set of tenants has a first maximum number of tokens that is different than a second maximum number of tokens of a different second bucket of the set of second buckets associated with a different tenant of the set of tenants. The method can include generating, by the computing system, an execution list for executing the set of requests based at least in part on the first bucket and the set of second buckets. The method can include executing, by the computing system, the execution list based at least in part on a first number of tokens in the first bucket and a second number of tokens in the set of second buckets. In certain examples, the method can additionally include identifying a particular request of the set of requests and a particular tenant of the set of tenants associated with the particular request. The method can additionally include determining a first number of tokens remaining in a particular second bucket of the set of second buckets associated with the particular tenant. The method can additionally include, in response to determining that the first number of tokens is greater than zero, performing one or more operations associated with the particular request. The method can additionally include deducting one or more tokens from the particular second bucket of the plurality of second buckets. The one or more tokens may be in one-to-one correspondence with the one or more operations. In certain examples, the method can additionally include identifying a particular request of the set of requests and a particular tenant of the set of tenants associated with the particular request. The method can additionally include determining a first number of tokens remaining in a particular second bucket of the set of second buckets associated with the particular tenant. The method can additionally include, in response to determining that the first number of tokens is zero or less than zero, preventing one or more operations associated with the particular request from being performed. In certain examples, the method can additionally include determining a second number of