Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
First Claim
1. A method for updating remote clients with actions that occurred in a cloud-enabled platform, the method comprising:
- in response to an action from a user in the cloud-enabled platform, determining a list of events to update one or more collaborators of the user about the action;
separating the list of events into a plurality of sub-lists of events by decomposing the list of events;
determining based on evaluation of one or more criteria associated with the database, a number of events to include in each sub-list of events from the plurality of sub-lists of events;
writing each sub-list of events into queues that are stored in a database, wherein the writing occurs within a designated time window, wherein the designated time window specifies a time limit for writing each sub-list of events into the queues; and
upon detecting failure to write a sub-list of events into one or more queues, updating the designated time window for the sub-list of events that failed to be written, wherein the sub-list of events that failed to be written is included in the plurality of sub-lists of events.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for improving scalability in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform. In one embodiment, a method comprises, in response to an action from a user in the cloud-enabled platform, determining a list of events to update one or more collaborators of the user about the action. The method further comprises separating the list of events into a plurality of sub-lists of events such that each sub-list of events can be stored in a database within a designated amount of time, and further comprises storing the plurality of sub-lists of events into the database to be read by the one or more collaborators. Among other advantages, embodiments disclosed herein provide enhancement in scalability, robustness and availability for cloud-based collaboration platforms with large numbers of collaborators by incorporating mechanisms to divide-and-conquer the workload of event updates in such platforms.
630 Citations
25 Claims
-
1. A method for updating remote clients with actions that occurred in a cloud-enabled platform, the method comprising:
-
in response to an action from a user in the cloud-enabled platform, determining a list of events to update one or more collaborators of the user about the action; separating the list of events into a plurality of sub-lists of events by decomposing the list of events; determining based on evaluation of one or more criteria associated with the database, a number of events to include in each sub-list of events from the plurality of sub-lists of events; writing each sub-list of events into queues that are stored in a database, wherein the writing occurs within a designated time window, wherein the designated time window specifies a time limit for writing each sub-list of events into the queues; and upon detecting failure to write a sub-list of events into one or more queues, updating the designated time window for the sub-list of events that failed to be written, wherein the sub-list of events that failed to be written is included in the plurality of sub-lists of events. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for incrementally updating remote clients with actions that occurred in a cloud-based environment, the system comprising:
-
a processor; and a memory coupled to the processor and storing a plurality of instructions which, when executed by the processor, cause the processor to; in response to an action from a user in the cloud-enabled platform, determine a list of events to update one or more collaborators of the user about the action; separate the list of events into a plurality of sub-lists of events by decomposing the list of events; determine, based on evaluation of one or more criteria associated with the database, a number of events to include in each sub-list of events from the plurality of sub-lists of events; write each sub-list of events into queues that are stored in a database, wherein the write occurs within a designated time window, wherein the designated time window specifies a time limit for writing each sub-list of events into the queues; and upon detecting failure to write a sub-list of events into one or more queues, update the designated time window for the sub-list of events that failed to be written, wherein the sub-list of events that failed to be written is included in the plurality of sub-lists of events. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory machine-readable storage medium having stored thereon instructions which, when executed by a processor, cause the processor to:
-
in response to an action from a user in a cloud-enabled platform, determine a list of events to update one or more collaborators of the user about the action; separate the list of events into a plurality of sub-lists of events by decomposing the list of events; determine, based on evaluation of one or more criteria associated with the database, a number of events to include in each sub-list of events from the plurality of sub-lists of events; write each sub-list of events into queues that are stored in a database, wherein the write occurs within a designated time window, wherein the designated time window specifies a time limit for writing each sub-list of events into the queues; and upon detecting failure to write a sub-list of events into one or more queues, update the designated time window for the sub-list of events that failed to be written, wherein the sub-list of events that failed to be written is included in the plurality of sub-list of events. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A system, comprising a processor, wherein the processor is configured for:
-
in response to an action from a user in a cloud-enabled platform, determining a list of events to update one or more collaborators of the user about the action; separating the list of events into a plurality of sub-lists of events by decomposing the list of events; determining, based on evaluation of one or more criteria associated with the database, a number of events to include in each sub-list of events from the plurality of sub-lists of events; writing each writing each sub-list of events into queues that are stored in a database, wherein the writing occurs within a designated time window, wherein the designated time window specifies a time limit for writing each sub-list of events into the queues; and upon detecting failure to write a sub-list of events into one or more queues, updating the designated time window for the sub-list of events that failed to be written, wherein the sub-list of events that failed to be written is included in the plurality of sub-list of events.
-
Specification