Repository synchronization in a ranked repository cluster
AssigneeSap SE
InventorGert F. Rusch
Life of this patent
Estimating the term…
Abstract
Methods and apparatuses enable synchronization of shared data in a cluster of ranked repositories. A publisher repository issues a change message indicating a change in shared data. A subscriber repository receives the change message and determines whether the change message is previously known to the subscriber repository. If the message is previously known, the subscriber repository terminates the change message. If the message is not previously known, the subscriber repository republishes or sends a change message in response to receiving the change message. The republished message can be republished in a variety of ways based on the characteristics of the change message and characteristics of the subscriber repository.
Claims19
A method for synchronizing data in a cluster of repositories, comprising:
- receiving a change message at a first repository from a second repository in a cluster of ranked repositories, the change message indicating a change to a state of an object in the cluster, the change message having a unique identifier that uniquely identifies the change message in a change log of changes occurring within the cluster, wherein the unique identifier of the change message includes an indication of rank, the rank being equal to the rank of a repository that originated the change message, where higher ranking is favored if the change message indicates an object state conflict;
- determining with a processor of the first repository whether the change message has previously been received at the first repository by reading a value identifying the change message;
- and
- terminating the change message at the first repository in response to determining the change message has previously been received at the first repository;
- otherwise
- republishing the change message from the first repository to another repository in the cluster.
An article of manufacture comprising a non-transitory machine readable medium having content stored thereon to provide instructions to cause a device to perform operations including:
- polling, from a first repository to a second repository, for a change message published by the second repository, the first and second repositories to participate in a cluster of ranked repositories, where higher ranking is favored if the change message indicates an object state conflict;
- reading the change message from the second repository to receive the change message;
- determining at the first repository whether the change message has previously been received at the first repository by reading a value identifying the change message;
- and
- terminating the change message at the first repository in response to determining the change message is previously known to the first repository;
- otherwise
- sending a change message from the first repository to another repository in the cluster in response to receiving the change message.
A data repository comprising:
- a communication interface to receive a change message from a publisher repository, the data repository and the publisher repositories having a ranking in a cluster or repositories, the change message indicating a change to shared data, where higher ranking is favored if the change message indicates an object state conflict;
- a change message processor coupled to the communication interface, the change message processor comprising circuitry executing with a memory to determine whether the change message is previously known to the data repository including reading a value identifying the change message, and terminate the change message in response to determining the change message is previously known;
- and
- a publishing module coupled to the change message processor to republish the change message to another data repository in the cluster if the change message is not previously known.
A system of repositories comprising:
- a publisher repository having a first rank, and including
- a communication interface to send a first change message indicating a change to virtual data of the system, and to receive a second change message,
- a change message processor comprising circuitry executing with a memory to determine whether the second change message is previously known to the publisher repository including reading a value identifying the change message, and terminate the change message in response to determining the change message is previously known, and
- a publishing module to republish the second change message if the second change message is not previously known;
- and
- a subscriber repository being a subscriber of the publisher repository having a second rank, and including
- a communication interface to receive the first change message,
- a change message processor to determine whether the first change message is previously known to the subscriber repository including reading a value identifying the change message, and terminate the change message in response to determining the change message is previously known, and
- a publishing module to republish the first change message if the first change message is not previously known
- wherein the first and second rank may be the same or different, and wherein higher ranking is favored if a change message indicates an object state conflict.
Dependencies are inferred from the claim text.