# US 2014/0156595 A1 · Synchronisation system and method

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

- Number: US 2014/0156595 A1
- Document ID: US20140156595A1
- Status: Published application
- Kind: A1
- Application number: 14/093,141
- Filed: 2013-11-29
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: Metaswitch Networks Ltd.
- Applicants: Metaswitch Networks Ltd.
- Inventors: Andrew ROSE; Martin HARE-ROBERTSON
- Web page: https://patentgrep.com/patent/US20140156595A1

## CPC

- 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

A synchronisation system and corresponding method for synchronising a set of records in a first database with a second database which comprises a copy of the set of records. The first database has a transaction log with entries indicating changes made to records in the first database. The second database stores a global version. The synchronisation system comprises at least one processor which is configured to process entries in the transaction log relating to the set of records to record changes from the first database in the second database; and associate the global version with any records written to the second database.

## Claims

### Claim 1

A synchronization system for synchronizing records, comprising:
a memory configured to store a first database comprising a set of records, and a second database comprising a copy of the set of records, wherein the first database includes a transaction log with entries indicating changes made to records in the first database, and wherein the second database includes a global version;
at least one processor configured to:
process entries in the transaction log relating to the set of records in the first database to record changes from the first database in the second database; and
associate the global version with any records written to the second database.

### Claim 2 (depends on 1)

The synchronization system of claim 1, wherein the global version is independent of the first database.

### Claim 3 (depends on 1)

The synchronization system of claim 1, wherein, when a resynchronization of the second database with the first database is required, the at least one processor is further configured to:
update the global version to give an updated global version;
copy all records in the set of records from the first database to the second database and associate the updated global version with each record copied to the second database; and
continue to process entries in the transaction log relating to the set of records to record changes from the first database in the second database and associate the updated global version with any changed records in the second database during the copying all records in the set of records.

### Claim 4 (depends on 3)

The synchronization system of claim 3, wherein the at least one processor is further configured to delete any records in the second database which are associated with a global version other than the updated global version when all records in the set of records have been copied from the first database to the second database.

### Claim 5 (depends on 4)

The synchronization system of claim 4, wherein the at least one processor is further configured to copy all records in the set of records from the first database to the second database at a lower priority than the processing entries in the transaction log.

### Claim 6 (depends on 4)

The synchronization system of claim 4, wherein the at least one processor is further configured to copy all records in the set of records from the first database to the second database when there are no entries in the transaction log awaiting processing.

### Claim 7 (depends on 5)

The synchronization system of claim 5, wherein the at least one processor is further configured to pause the copying of all records in the set of records from the first database to the second database during processing of entries in the transaction log.

### Claim 8 (depends on 1)

The synchronization system of claim 1, wherein the second database comprises a flag indicative of a resynchronization in progress, and wherein the at least one processor is further configured to:
set the flag before updating the global version; and
clear the flag after deleting any records associated with a version other than the updated version.

### Claim 9 (depends on 8)

The synchronization system of claim 8, wherein the at least one processor is further configured to, in response to the flag being set and a failure in the second database during synchronization, restart a resynchronization of the second database with the first database.

### Claim 10 (depends on 3)

The synchronization system according to claim 3, wherein the processor is further configured to overwrite any copies of records already in the second database when copying all records in the set of records from the first database to the second database.

### Claim 11

A method of resynchronizing a set of records in a first database with a second database which contains a copy of the set of records, the first database having a transaction log with entries indicating changes made to records in the first database, the second database storing a global version, the method comprising:
updating the global version to give an updated global version;
copying all records in the set of records from the first database to the second database and associating the updated global version number with all copied records in the second database; and
processing entries in the transaction log relating to the set of records to record changes from the first database in the second database and associating the updated global version number with any changed records in the second database during the copying all records.

### Claim 12 (depends on 11)

The method of claim 11, further comprising deleting any records in the second database associated with a global version other than the updated global version when all the records in the set of records have been copied from the first database to the second database.

### Claim 13 (depends on 11)

The method of claim 11, wherein the copying all records in the set of records takes place at a lower priority than the processing any unprocessed entries in the transaction log.

### Claim 14 (depends on 13)

The method of claim 13, wherein the copying all records in the set of records takes place when there are no entries in the transaction log relating to the set of records awaiting processing.

### Claim 15 (depends on 13)

The method of claim 13, wherein the copying all records in the set of records is paused during processing entries in the transaction log.

### Claim 16 (depends on 11)

The method of claim 11, wherein the copying all records in the set of records from the first database to the second database overwrites any copies of records already in the second database.

### Claim 17 (depends on 11)

The method of claim 11, further comprising:
setting a flag indicating that a resynchronization is in progress prior to updating the global version; and
clearing the flag indicating that a resynchronization is in progress after processing the entries in the transaction log.

### Claim 18 (depends on 17)

A method of claim 17, further comprising:
detecting the flag indicating that a resynchronization is in progress being set at the time the second database is started;
in response to the flag being detected:
updating the global version to give a second updated global version;
copying all records in the set of records from the first database to the second database and associating the second updated global version number with all copied records in the second database;
processing entries in the transaction log relating to the set of records to record changes from the first database in the second database and associating the second updated global version number with any changed records in the second database during the copying all records; and
deleting any records in the second database associated with a global version other than the second updated global version when all the records in the set of records have been copied from the first database to the second database,
wherein clearing the flag indicating that a resynchronization is in progress after processing the entries in the transaction log comprises clearing the flag after deleting the records.

### Claim 19

A non-transitory computer readable medium having computer readable instructions embodied thereon, wherein the computer readable instructions, when executed by a processor, instruct the processor to perform a method of resynchronizing a set of records in a first database with a second database which contains a copy of the set of records, the first database having a transaction log with entries indicating changes made to records in the first database, the second database storing a global version, the method comprising:
updating the global version to give an updated global version;
copying all records in the set of records from the first database to the second database and associating the updated global version number with all copied records in the second database; and
processing entries in the transaction log relating to the set of records to record changes from the first database in the second database and associating the updated global version number with any changed records in the second database during the copying all records.
