Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform
First Claim
1. A system, comprising:
- an action log table for storing entries, each entry corresponding to one of a plurality of events, and each entry including an identifier, a local timestamp, and a remote timestamp for the one of the plurality of events, wherein the local timestamp indicates the occurrence of the event as logged by a local server and the remote timestamp indicates the occurrence of the same event as logged by a remote server, wherein the entries are written by one or more user applications of a cloud-based collaboration environment;
a dispatcher coupled to the action log table to selectively issue the entries to a plurality of processor modules based on a type or an identity of a user associated with a respective processor module;
a data repository coupled to the processor modules for storing the entries that are issued to the plurality of processor modules after processing in a queue to be read by a remote client of the cloud-based collaboration environment, wherein the data repository comprises a distributed database structure,wherein the dispatcher includes a controller to determine whether the entries are occurring faster than a speed at which the dispatcher and the plurality of processor modules can handle them based on a response time of the plurality of processor modules.
4 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for implementing repository redundancy in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform. In one embodiment, a method comprises comparing a local timestamp of an event with a remote timestamp of the event. The event is to be stored in a queue in a repository cluster to be read by a remote client. The method further comprises updating the local timestamp of the event if the comparing indicates that the remote timestamp is more recent than the local timestamp. Among other advantages, embodiments disclosed herein ensure that no event in an action log is missed or skipped by any of remote clients in a distributed action log framework system during a switchover from an active but failed server to a backup server, and require zero or minimal down time during the switchover, thereby providing robustness and serviceability to such system.
-
Citations
42 Claims
-
1. A system, comprising:
-
an action log table for storing entries, each entry corresponding to one of a plurality of events, and each entry including an identifier, a local timestamp, and a remote timestamp for the one of the plurality of events, wherein the local timestamp indicates the occurrence of the event as logged by a local server and the remote timestamp indicates the occurrence of the same event as logged by a remote server, wherein the entries are written by one or more user applications of a cloud-based collaboration environment; a dispatcher coupled to the action log table to selectively issue the entries to a plurality of processor modules based on a type or an identity of a user associated with a respective processor module; a data repository coupled to the processor modules for storing the entries that are issued to the plurality of processor modules after processing in a queue to be read by a remote client of the cloud-based collaboration environment, wherein the data repository comprises a distributed database structure, wherein the dispatcher includes a controller to determine whether the entries are occurring faster than a speed at which the dispatcher and the plurality of processor modules can handle them based on a response time of the plurality of processor modules.
-
-
2. A method for repository redundancy in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform, each remote client being associated with a collaborator, the method comprising:
-
before storing an event in a queue in a repository cluster to be read by a remote client, comparing a local timestamp of the event with a remote timestamp of the event; wherein the local timestamp indicates the occurrence of the event as logged by a local server and the remote timestamp indicates the occurrence of the same event as logged by a remote server; and updating the local timestamp of the event if the comparing indicates that the remote timestamp is more recent than the local timestamp. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for repository redundancy in a system which incrementally updates remote clients with events that occurred in a cloud-enabled platform, each remote client being associated with a collaborator, the method comprising:
-
before storing a first event in a queue in a data repository to be read by a remote client, comparing a first local timestamp of the first event in an action log with a first remote timestamp of the first event; wherein the action log includes log entries in the data repository for the events that occurred in the cloud-enabled platform; wherein the first local timestamp indicates the occurrence of the first event as logged by a local server and the first remote timestamp indicates the occurrence of the same event as logged by a remote server; and if the comparing indicates that the first remote timestamp is more recent than the first local timestamp, generating a second event in the action log, wherein the second event includes a second local timestamp that is updated based on a current time of the system. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
-
29. A system for incrementally updating remote clients with events 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; process events from an action log, the action log having log entries in a data repository for the events that occurred in the cloud-based environment, each log entry including an identifier, a local timestamp, and a remote timestamp for an event; before storing the event in a queue in a repository cluster to be read by a remote client, compare the local timestamp of the event with the remote timestamp of the event wherein the local timestamp indicates the occurrence of the event as logged by the system, and wherein the remote timestamp indicates the occurrence of the same event as logged by a remote system; and update the local timestamp of the event based on a current time of the system if the comparison indicates that the remote timestamp is more recent than the local timestamp. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37)
-
-
38. A system for incrementally updating remote clients with events 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; dispatch events from an action log, the action log having log entries in a data repository for the events that occurred in the cloud-based environment, each log entry including an identifier, a local timestamp, and a remote timestamp for an event; wherein the local timestamp indicates the occurrence of the event as logged by the system and the remote timestamp indicates the occurrence of the same event as logged by a remote system; when the system is operating in an active mode; (i) before storing an event in a queue in a repository cluster to be read by a remote client, compare the local timestamp of the event with the remote timestamp of the event, and (ii) update the local timestamp of the event based on a current time of the system if the comparison indicates that the remote timestamp is more recent than the local timestamp; and when the system is operating in a passive mode; (i) copy the remote timestamp into the local timestamp.
-
-
39. A system having a plurality of data centers for incrementally updating remote clients with events that occurred in a cloud-based environment, the system comprising:
-
a first data center having a first repository to store a plurality of log entries, wherein the log entries represent the events that occurred in the cloud-based environment, and wherein each log entry includes an identifier, a local timestamp, and a remote timestamps for an event; a second data center having a second repository to store the plurality of events; wherein the local timestamp indicates the occurrence of the event as logged by first data center and the remote timestamp indicates the occurrence of the same event as logged by the second data center; and a control module coupled to the data centers to select one data center to act as an active data center upon detecting failure of one or more of the data centers; wherein the first data center, when operating as the active center, is to; (i) before storing the event in a queue in a repository cluster to be read by a remote client, compare the local timestamp of the event with the remote timestamp of the event, and (ii) update the local timestamp of the event based on a current time of the first data center if the comparison indicates that the remote timestamp is more recent than the local timestamp; and wherein the first data center, when operating as a passive center, is to; (i) copy the remote timestamp into the local timestamp. - View Dependent Claims (40)
-
-
41. A non-transitory machine-readable medium having stored thereon instructions which, when executed by a processor, causes the processor to:
-
before storing an event in a queue in a repository cluster to be read by a remote client, compare a local timestamp of the event with a remote timestamp of the event; wherein the local timestamp indicates the occurrence of the event as logged by a local server and the remote timestamp indicates the occurrence of the same event as logged by a remote sewer; and update the local timestamp of the event if the comparing indicates that the remote timestamp is more recent than the local timestamp. - View Dependent Claims (42)
-
Specification