IP Library Granted Patent US 11,907,359
Granted Patent B2
US 11,907,359 · App. 17/890,654 · Granted Feb 20, 2024

Event-based user state synchronization in a local cloud of a cloud storage system

Inventors: Shishir Sharma (Mountain View, CA); Debjit Bhattacharjee (Dublin, CA); Amrit Jassal (Morgan Hill, CA); Kalpesh Patel (Flower Mound, TX); Deepak Mehta (Surat, IN); Przemek Grzedzielski (Poznan, PL); Sachin Shetty (Mumbai, IN); Krzysztof Gardo (Poznan, PL); Daniil Iaitskov (Poznan, PL); Harikesavan Krishnan (San Jose, CA); Manish Marathe (San Jose, CA)
Assignee: Egnyte, Inc.
G06F21/45G06F16/27
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,907,359
App. No.
17/890,654
Granted
Feb 20, 2024
Kind
B2
Abstract

Cloud storage systems and methods are described for providing event-based user state synchronization among the various cloud elements. A global user directory is maintained on a remote cloud storage system. The global user directory includes a plurality of global user definitions associated with a plurality of user accounts, where each of the user accounts has access to at least one of a remote file system hosted by the remote cloud storage system and a local file system hosted by a local cloud storage system. As global user definition are altered on the remote cloud storage system, user events are generated and communicated to the local cloud storage system, where they are applied to synchronize the local user definitions with the global user definitions. The invention facilitates centralized control of user definitions, near real-time event delivery to local cloud storage systems, and separation of authentication processes from customers' active directory services.

Claims (61)

1. A method for synchronizing local user definitions of a local file storage system with global user definitions of a remote file storage system, said method comprising:

maintaining a plurality of local user definitions associated with a plurality of local user accounts having access to a local file system (LFS) hosted by said local file storage system;

capturing a local user state snapshot indicative of said local user definitions;

communicating with said remote file storage system, said remote file storage system maintaining a global user directory comprising a plurality of global user definitions associated with a plurality of global user accounts, each of said global user accounts having access to at least one of a remote file system (RFS) hosted by said remote file storage system and said LFS, each of said local user definitions corresponding to one of said global user definitions;

receiving a remote user state snapshot indicative of said global user definitions;

comparing said local user state snapshot and said remote user state snapshot to identify differences between said local user definitions and said global user definitions;

generating update information based at least in part on said differences;

providing said update information to said remote file storage system to facilitate synchronization of said global user definitions with said local user definitions as of a first time;

receiving a user event including information indicative of a change made to an altered global user definition after said first time; and

altering a corresponding one of said local user definitions based on said user event to synchronize said corresponding local user definition and said altered global user definition as of a second time subsequent said first time.

2. The method of claim 1 , wherein said plurality of local user accounts comprises a subset of said global user accounts.

3. The method of claim 1 , further comprising:

reading at least some headquarter (HQ) user definitions from a subscriber directory service maintained by a subscriber associated with said local file storage system; and

providing at least some of said HQ user definitions to said remote file storage system; and wherein

each of said local user definitions and at least some of said global user definitions correspond to ones of said HQ user definitions.

4. The method of claim 3 , wherein said step of providing at least some of said HQ user definitions to said remote file storage system includes mapping said at least some of said HQ user definitions to a data structure associated with said global user definitions.

5. The method of claim 1 , wherein said user event originates at said remote file storage system.

6. The method of claim 5 , wherein said step of receiving said user event comprises:

establishing a persistent connection with a real time event delivery (RED) service; and

receiving said user event from said RED service.

7. The method of claim 6 , further comprising:

generating a reply message responsive to receiving said user event; and

providing said reply message to said RED service.

8. The method of claim 1 , further comprising:

receiving each of said local user definitions from said remote file storage system; and

storing said local user definitions on said local file storage system.

9. The method of claim 1 , wherein said remote file storage system is configured to:

provide an administrator associated with said local file storage system access to said global user directory;

allow said administrator to alter one of said global user definitions stored on said remote file storage system to define said altered global user definition;

generate said user event responsive to said altered global user definition; and

provide said user event to a real time event delivery (RED) service configured to deliver said user event to said local file storage system.

10. A local file storage system configured to synchronize local user definitions of said local file storage system with global user definitions of a remote file storage system, said local file storage system comprising:

a processing unit configured to execute code;

a wide area network (WAN) adapter;

memory for storing data and said code, said data and said code including a local user directory configured to maintain a plurality of local user definitions associated with a plurality of local user accounts having access to a local file system (LFS) hosted by said local file storage system,

a local user state synchronizer configured to

capture a local user state snapshot indicative of said local user definitions,

communicate with said remote file storage system, said remote file storage system maintaining a global user directory comprising a plurality of global user definitions associated with a plurality of global user accounts having access to at least one of a remote file system (RFS) hosted by said remote file storage system and said LFS, each of said local user definitions corresponding to one of said global user definitions,

receive a remote user state snapshot indicative of said global user definitions,

compare said local user state snapshot and said remote user state snapshot to identify differences between said local user definitions and said global user definitions,

generate update information based at least in part on said differences, and

provide said update information to said remote file storage system to facilitate synchronization of said global user definitions with said local user definitions as of a first time, and

an event delivery interface configured to receive a user event including information indicative of a change made to an altered global user definition after said first time; and

wherein said local user state synchronizer is further configured to alter a corresponding one of said local user definitions based on said user event to synchronize said corresponding local user definition and said altered global user definition as of a second time subsequent said first time.

11. The system of claim 10 , wherein said plurality of local user accounts comprises a subset of said global user accounts.

12. The system of claim 11 , wherein at least some of said global user accounts correspond to a second plurality of local user accounts corresponding to a second local file storage system remote from said local file storage system.

13. The system of claim 12 , wherein at least one of said plurality of local user accounts and at least one of said second plurality of local user accounts correspond to a same one of said plurality of global user accounts.

14. The system of claim 12 , wherein said event delivery interface is configured to:

establish a WebSocket connection with a real time event delivery (RED) service; and

receive said user event from said RED service.

15. The system of claim 14 , wherein said local user state synchronizer is further configured to generate a reply message responsive to applying said user event to said corresponding local user definition.

16. The system of claim 10 , further comprising a headquarter (HQ) user directory exporter configured to:

read at least some HQ user definitions from a subscriber directory service maintained by a subscriber associated with said local file storage system; and

provide at least some of said HQ user definitions to said remote file storage system; and wherein

each of said local user definitions and at least some of said global user definitions correspond to ones of said HQ user definitions.

17. The system of claim 16 , wherein said HQ user directory exporter is additionally configured to map said at least some of said HQ user definitions to a data structure associated with said global user definitions.

18. The system of claim 10 , wherein said user event originates at said remote file storage system.

19. The system of claim 10 , wherein said local user state synchronizer is configured to generate said local user definitions responsive to receiving user events from said remote file storage system.

20. The system of claim 10 , wherein said plurality of local user definitions comprises:

a user definitions file including a list of said local user definitions; and

a shadow file including a list of encrypted passwords, each of said encrypted passwords corresponding to one of said local user definitions contained in said user definitions file.

Assignments (1)
SECURITY INTEREST Recorded Mar 25, 2025
From: EGNYTE, INC.
To: TCG SENIOR FUNDING, L.L.C., AS COLLATERAL AGENT
Reel/Frame 070614/0319 →
Continuity (4)
Continuation 15808425 · Nov 9, 2017
Division 15388038 · Dec 22, 2016
Provisional Application 62271133 · Dec 22, 2015
Related Publication 20230117023A1 · Apr 20, 2023
Cited By (1)
US 12,712,852