# US 9,519,653 B2 · Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,519,653 B2
- Document ID: US9519653B2
- Status: Granted
- Kind: B2
- Application number: 14/227,278
- Filed: 2014-03-27
- Published: 2014-10-02
- Granted: 2016-12-13
- Earliest claimed: 2013-04-01
- Assignees: CTERA Networks, Ltd.
- Applicants: CTERA Networks, Ltd.
- Inventors: Aron Brand
- Web page: https://patentgrep.com/patent/US9519653B2

## CPC

- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/16: File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F 16/182: Distributed file systems
- H04L 63/10: {for controlling access to devices or network resources}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method and system for enforcing resource quotas in cloud storage systems are provided. The method comprises receiving a request to write an object to a target folder of a tenant, wherein the tenant is initially configured with a tenant quota limit and each of a plurality of folders of the tenant initially is configured with a folder quota limit, wherein the tenant quota limit is then dynamically allocated to the plurality of folders of the tenant; determining whether the folder quota limit of the target folder of the tenant is sufficient for storage of the object; upon determining that the folder quota limit of the target folder is sufficient, increasing a folder quota usage of the target folder by a delta value; and storing the object in the target folder.

## Claims

### Claim 1

A method for enforcing tenant resource quotas in a cloud storage system, comprising:
receiving a request to write an object to a target folder of a tenant, wherein the tenant is initially configured with a tenant quota limit and each of a plurality of folders of the tenant initially is configured with a folder quota limit, the folder quota limit and the tenant quota limit each being independent of any underlying storage structure providing the folders of the tenant and the tenant resource in the cloud storage system, wherein the tenant quota limit is then dynamically allocated to the plurality of folders of the tenant;
determining whether the folder quota limit of the target folder of the tenant is sufficient for storage of the object;
upon determining that the folder quota limit of the target folder is sufficient for storage of the object, increasing a folder quota usage of the target folder by a delta value; and
storing the object in the target folder.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining whether the folder quota limit of the target folder further comprises:
checking if a sum of the folder quota usage and the delta value is no greater than the quota limit of the target folder.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
upon determining that the folder quota limit is insufficient, determining whether the delta value is less than a difference between a tenant quota usage and the tenant quota limit of the tenant;
upon determining that the delta value is greater than the difference between the tenant quota usage and the tenant quota limit, dynamically reclaiming unused quotas from at least one other folder of the tenant; and
upon determining that the delta value is less than the difference between the tenant usage and the tenant limit, increasing the folder quota limit of the folder by an quota amount, wherein the quota amount is at least sufficient to allow storage of the object.

### Claim 4 (depends on 3)

The method of claim 3, wherein the delta value is equal to a change in the amount of available quota upon writing the object.

### Claim 5 (depends on 3)

The method of claim 3, wherein reclaiming unused quotas from at least one other folder of the tenant further comprises:
upon successful reclaiming of unused quota, increasing the folder quota limit of the folder, the tenant quota usage of the tenant, and the folder quota usage of the target folder to allocate the quota to the target folder to write the object.

### Claim 6 (depends on 3)

The method of claim 3, wherein dynamically reclaiming unused quotas further comprises:
reclaiming quotas from one or more idle folders of the tenant;
upon determining that reclaiming quotas does not yield sufficient quotas, determining a growth rate of each folder of the tenant; and
allocating the resource among the folders of the tenant based on the growth rate of each folder.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
determining a number of folders of the tenant that have been written to recently; and
allocating the resource among the folders of the tenant based on the number of folders that have been written to recently.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
locking only the target folder to prevent writes to the target folder prior to determining if the folder quota limit is sufficient; and
unlocking the target folder when the folder quota limit of the target folder is insufficient for the allocated resource.

### Claim 9 (depends on 1)

A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 1.

### Claim 10

A system for enforcing resource quotas in a cloud storage system, comprising:
a processor communicatively connected to a resource storage; and
a memory coupled to the processor, wherein the memory contains instructions that, when executed by the processor, configure the system to:
receive a request to write an object to a target folder of a tenant, wherein the tenant is initially configured with a tenant quota limit and each of a plurality of folders of the tenant initially is configured with a folder quota limit, the folder quota limit and the tenant quota limit each being independent of any underlying storage structure providing the folders of the tenant and the tenant resource in the cloud storage system, wherein the tenant quota limit is then dynamically allocated to the plurality of folders of the tenant;
determine whether the folder quota limit of the target folder of the tenant is sufficient for storage of the object;
upon determination that the folder quota limit of the target folder is sufficient for storage of the object, increase a folder quota usage of the target folder by a delta value; and
store the object in the target folder.

### Claim 11 (depends on 10)

The system of claim 10, wherein the system is further configured to:
check if a sum of the folder quota usage and the delta value is no greater than the quota limit of the target folder.

### Claim 12 (depends on 10)

The system of claim 10, wherein the system is further configured to:
determine whether the delta value is less than a difference between a tenant quota usage and the tenant quota limit of the tenant, upon determination that the folder quota limit is insufficient;
dynamically reclaiming unused quotas from at least one other folder of the tenant, upon determination that the delta value is greater than the difference between the tenant quota usage and the tenant quota limit; and
increase the folder quota limit of the folder by an quota amount, wherein the quota amount is at least sufficient to allow storage of the object, upon determination that the delta value is less than the difference between the tenant usage and the tenant limit.

### Claim 13 (depends on 12)

The system of claim 12, wherein the delta value is equal to a change in the amount of available quota upon writing the object.

### Claim 14 (depends on 13)

The system of claim 13, wherein the system is further configured to:
upon successful reclaiming of unused quota, increase the folder quota limit of the folder, the tenant quota usage of the tenant, and the folder quota usage of the target folder to allocate the quota to the target folder to write the object.

### Claim 15 (depends on 13)

The system of claim 13, wherein the system is further configured to:
reclaim quotas from one or more idle folders of the tenant;
upon determining that reclaiming quotas does not yield sufficient quotas, determine a growth rate of each folder of the tenant; and
allocate the resource among the folders of the tenant based on the growth rate of each folder.

### Claim 16 (depends on 15)

The system of claim 15, wherein the system is further configured to:
determine a number of folders of the tenant that have been written to recently; and
allocate the resource among the folders of the tenant based on the number of folders that have been written to recently.

### Claim 17 (depends on 10)

The system of claim 10, wherein the system is further configured to:
lock only the target folder to prevent writes to the target folder prior to determining if the folder quota limit is sufficient; and
unlock the target folder when the folder quota limit of the target folder is insufficient for the allocated resource.
