IP Library Granted Patent US 11,681,454
Granted Patent B2
US 11,681,454 · App. 17/402,206 · Granted Jun 20, 2023

Efficiently storing data in a cloud storage

Inventors: Anubhav Gupta (Sunnyvale, CA); Praveen Kumar Yarlagadda (Santa Clara, CA); Venkata Ranga Radhanikanth Guturi (San Jose, CA); Zhihuan Qiu (San Jose, CA); Sarthak Agarwal (Fremont, CA)
Assignee: Cohesity, Inc.
G06F3/0644G06F3/0604G06F3/067G06F3/0608G06F3/0631
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 11,681,454
App. No.
17/402,206
Granted
Jun 20, 2023
Kind
B2
Abstract

A cloud server determines that a size of a first cloud storage element object is at least below a first threshold. In response to the first determination, a client-side component is requested to store additional data in the cloud storage element object including by having the client-side component update the first cloud storage element with an updated version that includes previously existing data of the first cloud storage element and the additional data. The first cloud storage element object is added to a set of one or more cloud storage element objects available for update. The client-side component is configured to generate an updated version of the first cloud storage element object that has a size that is greater than or equal to the first threshold.

Claims (33)

1. A method, comprising:

determining at a cloud server that a first size of a first cloud storage element object is at least below a first threshold;

in response to a first determination, requesting a client-side component to store additional data in the first cloud storage element object including by having the client-side component update the first cloud storage element object with an updated version that includes previously existing data of the first cloud storage element object and the additional data; and

adding the first cloud storage element object to a set of one or more cloud storage element objects available for update, wherein the client-side component selects the first cloud storage element object from the set of one or more cloud storage element objects available for update, wherein the client-side component generates the updated version of the first cloud storage element object that has a second size that is greater than or equal to the first threshold, wherein to generate the updated version of the first cloud storage element object, the client-side component determines whether the previously existing data of the first cloud storage element object is stored in a cache storage of the client-side component and in response to determining that the previously existing data of the first cloud storage element object is stored in the cache storage of the client-side component, the client-side component uses the previously existing data of the first cloud storage element object stored in the cache storage of the client-side component and additional data to generate the updated version of the first cloud storage element object.

2. The method of claim 1 , further comprising monitoring a cloud storage storing the first cloud storage element object.

3. The method of claim 1 , wherein an initial size of the first cloud storage element object was above the first threshold and a current size of the first cloud storage element object is below the first threshold.

4. The method of claim 1 , wherein an initial size and a current size of the first cloud storage element object are below the first threshold.

5. The method of claim 1 , wherein an identifier associated with the first cloud storage element object is included in the set of one or more cloud storage element objects available for update.

6. The method of claim 1 , wherein the previously existing data of the first cloud storage element object and the additional data are encrypted using an encryption key received from the cloud server.

7. The method of claim 1 , wherein the updated version of the first cloud storage element object is associated with a corresponding identifier and corresponding version number.

8. The method of claim 1 , further comprising:

determining that a third size of a second cloud storage element object is above the first threshold but below a second threshold; and

in response to a second determination, storing new data chunks in the second cloud storage element object including by updating the second cloud storage element object to be an updated version of the second cloud storage element object that includes previously existing data of the second cloud storage element object and the new data chunks.

9. The method of claim 8 , wherein the client-side component encrypts the previously existing data of the second cloud storage element object and the new data chunks using an encryption key associated with a storage tenant.

10. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:

determining at a cloud server that a size of a first cloud storage element object is at least below a first threshold;

in response to a first determination, requesting a client-side component to store additional data in the first cloud storage element object including by having the client-side component update the first cloud storage element object with an updated version that includes previously existing data of the first cloud storage element object and the additional data; and

adding the first cloud storage element object to a set of one or more cloud storage element objects available for update, wherein the client-side component selects the first cloud storage element object from the set of one or more cloud storage element objects available for update, wherein the client-side component generates the updated version of the first cloud storage element object that has a second size that is greater than or equal to the first threshold, wherein to generate the updated version of the first cloud storage element object, the client-side component determines whether the previously existing data of the first cloud storage element object is stored in a cache storage of the client-side component and in response to determining that the previously existing data of the first cloud storage element object is stored in the cache storage of the client-side component, the client-side component uses the previously existing data of the first cloud storage element object stored in the cache storage of the client-side component and additional data to generate the updated version of the first cloud storage element object.

11. The computer program product of claim 10 , further comprising computer instructions for monitoring a cloud storage storing the first cloud storage element object.

12. The computer program product of claim 10 , wherein an initial size of the first cloud storage element object was above the first threshold and a current size of the first cloud storage element object is below the first threshold.

13. The computer program product of claim 10 , wherein an initial size and a current size of the first cloud storage element object are below the first threshold.

14. The computer program product of claim 10 , wherein an identifier associated with the first cloud storage element object is included in the set of one or more cloud storage element objects available for update.

15. The computer program product of claim 10 , wherein the previously existing data of the first cloud storage element object and the additional data are encrypted using an encryption key received from the cloud server.

16. The computer program product of claim 10 , wherein the updated version of the first cloud storage element object is associated with a corresponding identifier and corresponding version number.

17. A system, comprising:

one or more processors configured to:

determine at a cloud server that a first size of a first cloud storage element object is at least below a first threshold;

in response to a first determination, request a client-side component to store additional data in the first cloud storage element object including by having the client-side component update the first cloud storage element object with an updated version that includes previously existing data of the first cloud storage element object and the additional data; and

add the first cloud storage element object to a set of one or more cloud storage element objects available for update, wherein the client-side component selects the first cloud storage element object from the set of one or more cloud storage element objects available for update, wherein the client-side component is configured to generate the updated version of the first cloud storage element object that has a second size that is greater than or equal to the first threshold, wherein to generate the updated version of the first cloud storage element object, the client-side component determines whether the previously existing data of the first cloud storage element object is stored in a cache storage of the client-side component and in response to determining that the previously existing data of the first cloud storage element object is stored in the cache storage of the client-side component, the client-side component uses the previously existing data of the first cloud storage element object stored in the cache storage of the client-side component and additional data to generate the updated version of the first cloud storage element object; and

a memory coupled to the one or more processors and configured to provide the one or more processors with instructions.

18. The system of claim 17 , wherein the one or more processors are configured to monitor a cloud storage storing the first cloud storage element object.

19. The system of claim 17 , wherein an initial size of the first cloud storage element object was above the first threshold and a current size of the first cloud storage element object is below the first threshold.

20. The system of claim 17 , wherein an initial size and a current size of the first cloud storage element object are below the first threshold.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2022
From: GUPTA, ANUBHAV; YARLAGADDA, PRAVEEN KUMAR; GUTURI, VENKATA RANGA RADHANIKANTH; QIU, ZHIHUAN; AGARWAL, SARTHAK
To: COHESITY, INC.
Reel/Frame 061090/0786 →
Continuity (2)
Provisional Application 63074682 · Sep 4, 2020
Related Publication 20220083250A1 · Mar 17, 2022