IP Library Granted Patent US 11,765,251
Granted Patent B1
US 11,765,251 · App. 17/167,824 · Granted Sep 19, 2023

System and methods for effectively addressing fast-producer and slow-consumer problem for persistent hybrid cloud caches

Inventors: Ajay Salpekar (Mountain View, CA); Bhaskar Guthikonda (Mountain View, CA)
Assignee: Egnyte, Inc.
H04L67/568G06F16/1734G06F16/1815H04L67/06H04L67/1097H04L67/306
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,765,251
App. No.
17/167,824
Granted
Sep 19, 2023
Kind
B1
Abstract

A system for effectively addressing the fast-producer and slow-consumer problem for persistent hybrid cloud caches. In particular, the system and associated methods ensure the integrity of data stored by persistent caches by utilizing a plurality of journals, including a user journal and a cloud journal. The user journal records operations conducted by users of the system in records. Before the records are transferred to a cloud storage system, the records are transferred to the cloud journal, which may he configured to he larger than the user journal. Once a record is transferred from the user journal to the cloud journal, the record may be released from the user journal, thereby increasing capacity of the user journal for subsequent operations to be recorded. Each record may then be transferred to the cloud storage system from the cloud journal, which may then cause each record to be released from the cloud journal.

Claims (50)

1. A system, comprising:

one or more-non-transitory computer readable media containing a set of computer-executable instructions; and

one or more electronic processors configured to execute the set of instructions, wherein when executed, the instructions cause the system to receive a request to perform an operation from a client that is part of the system;

store, in a record of a user journal on a local device, metadata characterizing an operation to be performed in the system, wherein the metadata stored in the record of the user journal further comprises metadata characterizing one or more aspects of the operation, the one or more aspects of the operation including a file or folder name, and the operation to be performed on the file or folder, wherein the operation in one of the create folder, a delete folder, a rename folder, a rename file, a delete file, a write, a save, or a push to cloud;

determine whether the request to perform the operation is valid and reject the request if it is not valid;

if the request is valid, utilize a local file system to perform the operation in response to the request and after the operation is recorded in the record of the user journal;

determine an amount of resources required to perform the operation, and performing the operation using a portion of determined amount of resources;

transfer the record to a cloud-facing journal on the local device, wherein the cloud-facing journal has a larger storage capacity than the user journal;

remove the record from the user journal once the record is transferred to the cloud-facing journal;

transfer the record from the cloud-facing journal to a remote cloud-file-storage; and

remove the record from the cloud-facing journal once the record is transferred to the remote cloud-file-storage system, wherein the user journal and cloud-facing journal are elements of a hybrid cloud architecture.

2. The system of claim 1 , wherein a size of the cloud-facing journal is inversely proportional to a speed at which the record is able to be transferred to the cloud-file-storage.

3. The system of claim 1 , wherein the instructions cause the system to determine whether the request to perform the operation is valid and reject the request if it is not valid.

4. The system of claim 3 , wherein the instructions cause the system to determine an amount of resources required to perform the operation.

5. The system of claim 3 , wherein the instructions cause the system to, if the request is determined to be valid, utilize a local file system to perform the operation in response to the request and after the operation is recorded in the record of the user journal.

6. The system of claim 5 , wherein the instructions cause the system to determine if the performing of the operation in response to the request was successful.

7. The system of claim 6 , wherein the instructions cause the system to add an operation completed record to the user journal if performing of the operation in response to the request was successful.

8. The system of claim 1 , wherein the instructions cause the system to refresh the cloud-file-storage to determine whether data and metadata associated with one or more operations are current.

9. A method, comprising:

receiving a request to perform an operation from a client that is part of the system;

storing, in a record of a user journal on a local device, metadata regarding an operation to be performed in a system, wherein the metadata stored in the record of the user journal further comprises metadata characterizing one more aspects of the operation, the one or more aspects of the operation including a file or folder name, and the operation to be performed on the file or folder, wherein the operation in one of the create folder, a delete folder, a rename folder, a rename file, a delete file, a write, a save, or a push to cloud;

determining whether the request to perform the operation is valid and reject the request if it is not valid;

if the request is valid, utilize a local file system to perform the operation in response to the request and after the operation is recorded in the record of the user journal;

determining an amount of resources required to perform the operation, and performing the operation using a portion of determined amount of resources;

transferring the record to a cloud-facing journal on the local device , wherein the cloud-facing journal has a larger storage capacity than the user journal;

removing the record from the user journal once the record is transferred to the cloud-facing journal;

transferring the record from the cloud-facing journal to a remote cloud-file-storage; and removing the record from the cloud-facing journal once the record is transferred to the remote cloud-file-storage , wherein the user journal and cloud-facing journal are elements of a hybrid cloud architecture.

10. The method of claim 9 , further comprising facilitating performance of the operation if the system crashes.

11. The method of claim 9 , further comprising adjusting one or more of a storage capacity of the cloud-facing journal and a storage capacity of the user journal based on a requirement of one or more of the system and a requirement of the local device.

12. The method of claim 9 , further comprising determining an amount of resources needed to perform the operation and performing the operation using at least a portion of the determined amount of resources.

13. The method of claim 9 , further comprising determining if a request to perform the operation complies with a rule or policy of the system and rejecting the request if the request does not comply with the rule or policy.

14. The method of claim 9 , wherein one or more of the user journal and the cloud-facing journal comprise circular logs.

15. The method of claim 9 , further comprising implementing one or more of the user journal and the cloud-facing journal using a persistent cache.

16. The method of claim 9 , further comprising determining if the performing of the operation in response to the request was successful.

17. The method of claim 9 , further comprising refreshing the cloud-file-storage to determine whether data and metadata associated with one or more operations are current.

18. One or more non-transitory computer-readable media comprising instructions, which when executed by one or more electronic processors, cause the processors to perform operations comprising:

receiving a request to perform an operation from a client that is part of the system;

storing, in a record of a user journal on a local device, metadata regarding an operation to be performed in a system, wherein the metadata stored in the record of the user journal further comprises metadata characterizing one more aspects of the operation, the one or more aspects of the operation including a file or folder name, and the operation to be performed on the file or folder, wherein the operation in one of the create folder, a delete folder, a rename folder, a rename file, a delete file, a write, a save, or a push to cloud;

determining whether the request to perform the operation is valid and reject the request if it is not valid;

if the request is valid, utilize a local file system to perform the operation in response to the request and after the operation is recorded in the record of the user journal;

determining an amount of resources required to perform the operation, and performing the operation using a portion of determined amount of resources;

transferring the record to a cloud-facing journal on the local device, wherein the cloud-facing journal has larger storage capacity than the user journal;

removing the record from the user journal once the record is transferred to the cloud-facing journal;

transferring the record from the cloud-facing journal to a remote cloud-file-storage; and

removing the record from the cloud-facing journal once the record is transferred to the remote cloud-file-storage, wherein the user journal and cloud-facing journal are elements of a hybrid cloud architecture.

19. The method of claim 9 , further comprising adding an operation completed record to the user journal if performing of the operation in response to the request was successful.

20. The non-transitory computer-readable media of claim 18 , wherein the instructions cause the processors to:

determine if the performing of the operation was successful;

add an operation completed record to the user journal if performing of the operation was successful; and

refresh the cloud-file-storage to determine whether data and metadata associated with one or more operations are current.

Assignments (4)
SECURITY INTEREST Recorded Mar 25, 2025
From: EGNYTE, INC.
To: TCG SENIOR FUNDING, L.L.C., AS COLLATERAL AGENT
Reel/Frame 070614/0319 →
RELEASE OF SECURITY INTEREST Recorded Mar 14, 2025
From: JPMORGAN CHASE BANK, N.A.
To: EGNYTE, INC.
Reel/Frame 070518/0898 →
SECURITY INTEREST Recorded Apr 1, 2022
From: EGNYTE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 059568/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2021
From: SALPEKAR, AJAY; GUTHIKONDA, BHASKAR
To: EGNYTE, INC.
Reel/Frame 057126/0146 →
Continuity (1)
Provisional Application 62970198 · Feb 5, 2020