IP Library Granted Patent US 9,519,653
Granted Patent B2
US 9,519,653 · App. 14/227,278 · Granted Dec 13, 2016

Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system

Inventor: Aron Brand (Petach-Tikva, IL)
Assignee: Ctera Networks, Ltd.
G06F17/30174G06F17/30115G06F17/30194H04L63/10H04L67/1097
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 9,519,653
App. No.
14/227,278
Granted
Dec 13, 2016
Kind
B2
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 (51)

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.

2. 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.

3. 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.

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

5. 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.

6. 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.

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

8. 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.

9. 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 .

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.

11. 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.

12. 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.

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

14. 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.

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

16. 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.

17. 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.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Aug 20, 2026
From: KREOS CAPITAL VI (EXPERT FUND) L.P.
To: CTERA NETWORKS LTD
Reel/Frame 075725/0290 →
SECURITY INTEREST Recorded Oct 30, 2023
From: CTERA NETWORKS LTD
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 065379/0792 →
SECURITY INTEREST Recorded Apr 7, 2022
From: CTERA NETWORKS LTD.
To: KREOS CAPITAL VI (EXPERT FUND) L.P.
Reel/Frame 059523/0377 →
SECURITY INTEREST Recorded Mar 25, 2020
From: CTERA NETWORKS LTD.
To: KREOS CAPITAL VI (EXPERT FUND) LP
Reel/Frame 052217/0678 →
RELEASE OF SECURITY INTEREST Recorded Dec 20, 2018
From: VIOLA CREDIT FIVE (CT), LIMITED PARTNERSHIP
To: CTERA NETWORKS LTD.
Reel/Frame 047967/0146 →
SECURITY INTEREST Recorded May 23, 2017
From: CTERA NETWORKS LTD.
To: VIOLA CREDIT FIVE (CT), LIMITED PARTNERSHIP
Reel/Frame 042481/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2014
From: BRAND, ARON
To: CTERA NETWORKS, LTD
Reel/Frame 032723/0359 →
Continuity (2)
Provisional Application 61807079 · Apr 1, 2013
Related Publication 20140297781A1 · Oct 2, 2014