IP Library Granted Patent US 11,349,916
Granted Patent B2
US 11,349,916 · App. 16/886,343 · Granted May 31, 2022

Learning client preferences to optimize event-based synchronization

Inventors: Ondrej Hrebicek (San Carlos, CA); Srin Kumar (Sunnyvale, CA); Hironmay Basu (Mountain View, CA); Ashwani Verma (Pleasanton, CA); Andrew Rondeau (Shrewsbury, MA)
Assignee: EMC IP Holding Company LLC
H04L67/1095H04L67/1097
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,349,916
App. No.
16/886,343
Granted
May 31, 2022
Kind
B2
Abstract

Techniques to perform event-based synchronization of data among a plurality of endpoints are disclosed. In various embodiments, a user interaction associated with synchronization set data that has been synchronized based on synchronization events downloaded from a synchronization server configured to propagate changes via a synchronization event stream is observed. The observed user interaction is used to infer a user preference with respect to downloaded synchronization set data. Access is provided to synchronization event related data in a subsequent download in a manner determined based at least in part on the inferred user preference.

Claims (36)

1. A method, comprising:

obtaining, by one or more processors associated with a terminal that communicates with a synchronization server, a synchronization event stream, the synchronization event stream being provided by the synchronization server, the synchronization event stream comprising one or more synchronization events that are associated with one or more corresponding event sequence identifiers identifying the one or more synchronization events, and the one or more synchronization events corresponding to changes to file management system objects synchronized across a plurality of endpoints, wherein the synchronization event stream further includes an indication of an event type corresponding to the one or more synchronization events, time associated with the one or more synchronization events, and node change of the one or more synchronization events;

determining, by the one or more processors, to synchronize one or more objects of a synchronization set data based on the event type corresponding to the one or more synchronization events comprised in the synchronization event stream, the one or more corresponding event sequence identifiers, and an inferred user preference with respect to the synchronization set data for the one or more objects that are subject to synchronization between the terminal and the synchronization server; and

providing, by the one or more processors, to a user of the terminal access to subsequently downloaded portions of data associated with the one or more objects determined to be synchronized, wherein a user account associated with the terminal access is associated with the plurality of endpoints and a set of synchronization points.

2. The method of claim 1 , wherein the inferred user preference is determined based on a user interaction with respect to the synchronization set data that has been synchronized between the terminal and the synchronization server.

3. The method of claim 2 , wherein the terminal is configured to report observed interactions to the synchronization server, and the observed interactions are used in connection with determining the inferred user preference.

4. The method of claim 3 , wherein the observed user interaction relates to one or more attributes of synchronization set objects with which a user interacted with subsequent to synchronization.

5. The method of claim 3 , wherein the observed user interaction relates to an amount of time that elapsed between synchronization of an object and a user's first interaction with that object after synchronization.

6. The method of claim 1 , wherein the inferred user preference is stored in a user profile.

7. The method of claim 1 , wherein the access to the subsequently downloaded portions of data associated with the one or more objects determined to be synchronized is provided in a manner determined based on the inferred user preference, including giving greater priority to downloading changes associated with an object in which a user is predicted to have interest based on the inferred user preference.

8. The method of claim 1 , further comprising:

identifying events of interest from the synchronization event stream; and

receiving a request, from a synchronization client, for the identified events of interest.

9. The method of claim 1 , further comprising:

receiving, from one or more synchronization clients of a plurality of synchronization clients of the plurality of endpoints, one or more indications that an object in the synchronization set data has been modified;

in response to receiving the one or more indications that the object in the synchronization set data has been modified, updating the synchronization event stream based on the one or more indications that the object in the synchronization set data has been modified; and

communicating the synchronization event stream to at least one of the plurality of endpoints.

10. The method of claim 1 , wherein the synchronization event stream is associated with a synchronization point and comprises synchronization events associated with a plurality of objects stored based on information provided by a plurality of synchronization clients for which the synchronization point provides synchronization.

11. The method of claim 1 , wherein the synchronization event stream provides notice of changes to the synchronization set data.

12. The method of claim 1 , wherein the one or more objects determined to be synchronized corresponds to a subset of all synchronization events added to the synchronization event stream since the terminal last performed a synchronization with respect to the synchronization event stream.

13. A system, comprising:

a memory or other storage device; and

a processor coupled to the memory or the other storage device, the processor associated with a terminal that communicates with a synchronization server, and the processor configured to:

obtain a synchronization event stream, the synchronization event stream being provided by the synchronization server, the synchronization event stream comprising one or more synchronization events that are associated with one or more corresponding event sequence identifiers identifying the one or more synchronization events, and the one or more synchronization events corresponding to changes to file management system objects synchronized across a plurality of endpoints, wherein the synchronization event stream further includes an indication of an event type corresponding to the one or more synchronization events, time associated with the one or more synchronization events, and node change of the one or more synchronization events;

determine to synchronize one or more objects of a synchronization set data based on the event type corresponding to the one or more synchronization events comprised in the synchronization event stream, the one or more corresponding event sequence identifiers, and an inferred user preference with respect to the synchronization set data for the one or more objects that are subject to synchronization between the terminal and the synchronization server; and

provide to a user of the terminal access to subsequently downloaded portions of data associated with the one or more objects determined to be synchronized, wherein a user account associated with the terminal access is associated with the plurality of endpoints and a set of synchronization points.

14. The system of claim 13 , wherein the inferred user preference is determined based on a user interaction with respect to the synchronization set data that has been synchronized between the terminal and the synchronization server.

15. The system of claim 14 , wherein the terminal is configured to report observed interactions to the synchronization server, and the observed interactions are used in connection with determining the inferred user preference.

16. The system of claim 15 , wherein the observed user interaction relates to one or more attributes of synchronization set objects with which a user interacted with subsequent to synchronization.

17. The system of claim 15 , wherein the observed user interaction relates to an amount of time that elapsed between synchronization of an object and a user's first interaction with that object after synchronization.

18. The system of claim 13 , wherein the inferred user preference is stored in a user profile.

19. The system of claim 13 , wherein the access to the subsequently downloaded portions of data associated with the one or more objects determined to be synchronized is provided in a manner determined based on the inferred user preference, including giving greater priority to downloading changes associated with an object in which a user is predicted to have interest based on the inferred user preference.

20. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

obtaining, by one or more processors associated with a terminal that communicates with a synchronization server, a synchronization event stream, the synchronization event stream being provided by the synchronization server, the synchronization event stream comprising one or more synchronization events that are associated with one or more corresponding event sequence identifiers identifying the one or more synchronization events, and the one or more synchronization events corresponding to changes to file management system objects synchronized across a plurality of endpoints, wherein the synchronization event stream further includes an indication of an event type corresponding to the one or more synchronization events, time associated with the one or more synchronization events, and node change of the one or more synchronization events;

determining, by one or more processors, to synchronize one or more objects of a synchronization set data based on the event type corresponding to the one or more synchronization events comprised in the synchronization event stream, the one or more corresponding event sequence identifiers, and an inferred user preference with respect to the synchronization set data for the one or more objects that are subject to synchronization between the terminal and the synchronization server; and

providing, by one or more processors, to a user of the terminal access to subsequently downloaded portions of data associated with the one or more objects determined to be synchronized, wherein a user account associated with the terminal access is associated with the plurality of endpoints and a set of synchronization points.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: HREBICEK, ONDREJ; KUMAR, SRIN; BASU, HIRONMAY; VERMA, ASHWANI; RONDEAU, ANDREW
To: EMC CORPORATION
Reel/Frame 052780/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052786/0293 →
Continuity (2)
Continuation 14743339 · Jun 18, 2015
Related Publication 20200296161A1 · Sep 17, 2020
Cited By (1)
US 12,237,795