IP Library Granted Patent US 11,822,539
Granted Patent B1
US 11,822,539 · App. 17/336,771 · Granted Nov 21, 2023

System and method for facilitating optimization of file upload operations via transaction transformation

Inventors: Ajay Salpekar (Mountain View, CA); Sanjay Kulkarni (Mountain View, CA); Bhaskar Guthikonda (Mountain View, CA)
Assignee: Egnyte, Inc.
G06F16/2379G06F16/219H04L67/568
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,822,539
App. No.
17/336,771
Granted
Nov 21, 2023
Kind
B1
Abstract

A system for facilitating upload file optimization via transaction transformation. A request is received for an operation to upload a file to the cloud. The system bypasses a transaction processing (sub)system and attempts to upload the file to a staging area of the cloud. When the upload transaction is ready to be executed, the system determines an upload status of the file. The system transfers the file from the staging area to an intended destination if the file has been uploaded to the staging area. If the file is not yet uploaded to the staging area, the system determines if an upload operation failed. If an upload operation did not fail, the system waits for the upload to finish prior to transferring the file to the intended destination. If the upload operation did fail, the system uploads the file to the intended destination.

Claims (49)

1. A system, comprising:

a set of computer-executable instructions; and

a processor or processors that execute the set of instructions, wherein when executed, the instructions cause the processor or processors to perform operations comprising:

receiving a request from a client to perform a file upload operation;

associating the requested operation with a corresponding upload transaction in a journal of a hybrid cloud cache;

bypassing a transaction processing system of the hybrid cloud cache and attempting to upload the file to a staging area of a cloud system that is part of the hybrid cloud cache;

determining an upload status of the file when the transaction processing system is ready to execute the upload transaction associated with the file upload operation, wherein

if the upload status indicates that the file is already uploaded to the staging area of the cloud system, then transferring the file from the staging area to a destination intended by the client;

if the upload status indicates that the file is not already uploaded to the staging area of the cloud system, then determining if an upload to the staging area has failed, wherein

if the upload to the staging area has not failed, then waiting for the upload to the staging area to be completed and transferring the file from the staging area to the destination intended by the client;

if the upload to the staging area has failed, then uploading the file to the destination intended by the client; and

marking the upload transaction corresponding to the requested operation as having been completed in the journal of the hybrid cloud cache after the file has been transferred to the destination intended by the client.

2. The system of claim 1 , wherein the instructions further cause the processor or processors to generate a first identifier to identify the file associated with the upload transaction and a second identifier to identify a version of the file associated with the upload transaction.

3. The system of claim 1 , wherein the instructions further cause the processor or processors to discontinue tracking of the upload status of the file once the upload transaction is marked as having been completed in the hybrid cloud journal.

4. The system of claim 1 , wherein the instructions further cause the processor or processors to concurrently upload a plurality of files requested to be uploaded by the client.

5. The system of claim 4 , wherein the instructions further cause the processor or processors to maintain an upload status for each of the plurality of files.

6. The system of claim 2 , wherein the instructions further cause the processor or processors to determine the upload status of the file based on one or more of the first identifier, the second identifier, metadata associated with the first identifier, or metadata associated with the second identifier.

7. The system of claim 1 , wherein the instructions further cause the processor or processors to update metadata associated with the file to indicate its location after transferring the file to the destination intended by the client.

8. A method, comprising:

receiving a request from a client to perform a file upload operation;

associating the requested operation with a corresponding upload transaction in a journal of a hybrid cloud cache;

bypassing a transaction processing system of the hybrid cloud cache and attempting to upload the file to a staging area of a cloud system that is part of the hybrid cloud cache;

determining an upload status of the file when the transaction processing system is ready to execute the upload transaction associated with the file upload operation, wherein

if the upload status indicates that the file is already uploaded to the staging area of the cloud system, then transferring the file from the staging area to a destination intended by the client;

if the upload status indicates that the file is not already uploaded to the staging area of the cloud system, then determining if an upload to the staging area has failed, wherein

if the upload to the staging area has not failed, then waiting for the upload to the staging area to be completed and transferring the file from the staging area to the destination intended by the client;

if the upload to the staging area has failed, then uploading the file to the destination intended by the client; and

marking the upload transaction corresponding to the requested operation as having been completed in the journal of the hybrid cloud cache after the file has been transferred to the destination intended by the client.

9. The method of claim 8 , further comprising generating a first identifier to identify the file associated with the upload transaction and generating a second identifier to identify a version of the file associated with the upload transaction.

10. The method of claim 9 , further comprising determining the upload status of the file based on one or more of the first identifier, the second identifier, metadata associated with the first identifier, or metadata associated with the second identifier.

11. The method of claim 8 , further comprising stopping tracking of the upload status of the file once the data operation associated with the upload transaction is marked as having been completed in the hybrid cloud journal.

12. The method of claim 8 , further comprising concurrently upload a plurality of files requested to be uploaded by the client.

13. The method of claim 12 , further comprising maintaining an upload status for each of the plurality of files.

14. The method of claim 9 , further comprising updating metadata associated with the file to indicate its location after transferring the file to the destination intended by the client.

15. A set of computer-executable instructions, which when executed by a processor or processors, cause the processor or processors to perform operations comprising:

receiving a request from a client to perform a file upload operation;

associating the requested operation with a corresponding upload transaction in a journal of a hybrid cloud cache;

bypassing a transaction processing system of the hybrid cloud cache and attempting to upload the file to a staging area of a cloud system that is part of the hybrid cloud cache;

determining an upload status of the file when the transaction processing system is ready to execute the upload transaction associated with the file upload operation, wherein

if the upload status indicates that the file is already uploaded to the staging area of the cloud system, then transferring the file from the staging area to a destination intended by the client;

if the upload status indicates that the file is not already uploaded to the staging area of the cloud system, then determining if an upload to the staging area has failed, wherein

if the upload to the staging area has not failed, then waiting for the upload to the staging area to be completed and transferring the file from the staging area to the destination intended by the client;

if the upload to the staging area has failed, then uploading the file to the destination intended by the client; and

marking the upload transaction corresponding to the requested operation as having been completed in the journal of the hybrid cloud cache after the file has been transferred to the destination intended by the client.

16. The set of computer-executable instructions of claim 15 , further comprising instructions that cause the processor or processors to generate a first identifier to identify the file associated with the upload transaction and generate a second identifier to identify a version of the file associated with the upload transaction.

17. The set of computer-executable instructions of claim 16 , further comprising instructions that cause the processor or processors to determine the upload status of the file based on one or more of the first identifier, the second identifier, metadata associated with the first identifier, or metadata associated with the second identifier.

18. The set of computer-executable instructions of claim 15 , further comprising instructions that cause the processor or processors to concurrently upload a plurality of files requested to be uploaded by the client.

19. The set of computer-executable instructions of claim 18 , further comprising instructions that cause the processor or processors to maintain an upload status for each of the plurality of files.

20. The set of computer-executable instructions of claim 15 , further comprising instructions that cause the processor or processors to update metadata associated with the file to indicate its location after transferring the file to the destination intended by the client.

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 Jul 14, 2021
From: SALPEKAR, AJAY; KULKARNI, SANJAY; GUTHIKONDA, BHASKAR
To: EGNYTE, INC.
Reel/Frame 056854/0567 →
Continuity (1)
Provisional Application 63034299 · Jun 3, 2020