Patent ID: 11860891
Assignee: FIVETRAN INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G | IPC G

Claim 8:
9. A computing system comprising:
a processor; and
a non-transitory computer-readable storage medium storing instructions for database synchronization, the instructions when executed by the processor cause the processor to perform steps including:
retrieving a first snapshot of a source data table, the first snapshot including information of the source data table captured at a first point in time;
retrieving a second snapshot of the source data table, the second snapshot including information of the source data table at a second point in time later than the first point in time;

determining a size for both a first invertible bloom filter and a second invertible bloom filter based on an estimated number of changes to the source data table over an interval of time between the first point in time and the second point in time,
wherein determining the size for both the first invertible bloom filter and the second invertible bloom filter comprises:
determining the size as a constant that is larger than a threshold; and
decreasing the size responsive to a number of changes to the source data table being smaller than the constant;

obtaining the first invertible bloom filter for the source data table based on the first snapshot of the source data table, the first invertible bloom filter having the determined size;
obtaining the second invertible bloom filter for the source data table based on the second snapshot of the source data table, the second invertible bloom filter having the determined size;
determining that a destination data table has outdated information relative to that of the first point in time by:
generating a third invertible bloom filter by subtracting the second invertible bloom filter from the first invertible bloom filter, the third invertible bloom filter comprising information associated with a change between the first snapshot and the second snapshot;

identifying the change by decoding the third invertible bloom filter; and
transmitting information associated with the identified change to the destination data table to synchronize the destination data table with the source data table based on the identified change.