# US 11,907,359 B2 · Event-based user state synchronization in a local cloud of a cloud storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,907,359 B2
- Document ID: US11907359B2
- Status: Granted
- Kind: B2
- Application number: 17/890,654
- Filed: 2022-08-18
- Published: 2023-04-20
- Granted: 2024-02-20
- Earliest claimed: 2015-12-22
- Assignees: Egnyte, Inc.
- Applicants: Egnyte, Inc.
- Inventors: Shishir Sharma; Debjit Bhattacharjee; Amrit Jassal; Kalpesh Patel; Deepak Mehta; Przemek Grzedzielski; Sachin Shetty; Krzysztof Gardo; Daniil Iaitskov; Harikesavan Krishnan; Manish Marathe
- Web page: https://patentgrep.com/patent/US11907359B2

## CPC

- G06F 21/45: Structures or tools for the administration of authentication
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

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

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

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 1)

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.

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

### Claim 11 (depends on 10)

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

### Claim 12 (depends on 11)

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.

### Claim 13 (depends on 12)

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.

### Claim 14 (depends on 12)

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.

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 10)

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.

### Claim 17 (depends on 16)

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.

### Claim 18 (depends on 10)

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

### Claim 19 (depends on 10)

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.

### Claim 20 (depends on 10)

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.
