IP Library Granted Patent US 9,892,181
Granted Patent B1
US 9,892,181 · App. 14/886,538 · Granted Feb 13, 2018

Data replicating systems and data replicating methods

Inventors: Matthew R. Kiefer (Seaford, NY); Daniel P. Martin (Williamsville, NY); Edmond Baydian (Massapequa, NY)
Assignee: Nectar Services Corp.
G06F17/30575H04L67/1095
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 9,892,181
App. No.
14/886,538
Granted
Feb 13, 2018
Kind
B1
Abstract

Methods and systems for synchronizing data may enable a computer to synchronize data by connecting to a peer computer via a network connection. The computer may receive a remote table from the peer computer, wherein the remote table comprises an object comprising a vector. The computer may determine whether the object is present in a local table. When the object is present in the local table, the computer may determine whether the vector in the remote table and the vector in the local table match. When the vectors do not match, the computer may determine whether a record of a change to the object is present in a local transaction log. The computer may receive data from the peer computer indicating whether a record of a change to the object is present in a remote transaction log when the vectors do not match. The computer may replace the vector in the local table with the vector in the remote table and record a change to the object in the local transaction log when the record of the change to the object in the local transaction log is less recent than the record of the change to the object in the remote transaction log.

Claims (31)

1. An apparatus for synchronizing data comprising:

a processor;

memory elements readable and writable by the processor;

a storage device readable and writable by the processor; and

program instructions, stored on the storage device for execution by the processor via the memory elements, the program instructions comprising:

routines to connect to a peer computer via a network connection;

routines to receive a remote table from the peer computer, wherein the remote table comprises an object comprising a vector, said object further comprising a conflict flag;

routines to determine whether the object is present in a local table;

routines to determine whether the vector in the remote table and the vector in the local table match when the object is present in the local table;

routines to determine whether a record of a change to the object is present in a local transaction log when the vectors do not match;

routines to receive data from the peer computer indicating whether a record of a change to the object is present in a remote transaction log when the vectors do not match;

routines to replace the vector in the local table with the vector in the remote table and recording a change to the object in the local transaction log when the record of the change to the object in the local transaction log is less recent than the record of the change to the object in the remote transaction log;

routines to flag the conflict flag in the local table to indicate a conflict when the vectors do not match;

routines to change the vector in the local table; and to record the change to the vector in the local transaction log;

routines to record the record of the change to the object in the remote transaction log into the local transaction log when the vectors do not match, wherein the record of the change to the object in the remote transaction log comprises peer conflict data indicating a conflict when a change to the vector in the remote table has been made and a different change to the vector in a table associated with a third computer has been made;

routines to record object data from the local table in the local transaction log when the vectors do not match;

routines to determine a plurality of peer computers with which to synchronize; and selecting one of the plurality of peer computers to which to connect; and

routines to set a mutex flag when the connection to the peer computer is made.

2. The apparatus of claim 1 , wherein the program instructions further comprise:

routines to generate an alarm when the vectors do not match.

3. The apparatus of claim 1 , wherein the program instructions further comprise:

routines to receive a ready message from the peer computer.

4. The apparatus of claim 1 , wherein the program instructions further comprise:

routines to add the object, comprising a key and a delete flag, to the local table when the object is not present in the local table; and routines to replace a delete flag in the local table with a delete flag in the list.

5. The apparatus of claim 1 , wherein the program instructions further comprise:

routines to add the object to the local table when the object is not present in the local table.

6. The apparatus of claim 1 , wherein the routines to replace the vector in the local table with the vector in the remote table further comprise:

writing the vector in the remote table into a temporary write buffer;

setting a write mutex;

writing the vector in the remote table from the temporary write buffer into memory on the storage device; and

releasing the write mutex.

Assignments (2)
SECURITY INTEREST Recorded Apr 27, 2018
From: NECTAR SERVICES CORP.; NECTAR HOLDINGS, INC.
To: INGWE CAPITAL NECTAR LLC
Reel/Frame 045652/0605 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2018
From: NECTAR SERVICES CORP.
To: NECTAR HOLDINGS, INC.
Reel/Frame 045566/0032 →
Continuity (5)
Continuation 14696764 · Apr 27, 2015
Continuation 13844320 · Mar 15, 2013
Provisional Application 61620243 · Apr 4, 2012
Provisional Application 61620231 · Apr 4, 2012
Provisional Application 61620238 · Apr 4, 2012