# US RE49,042 E1 · Data replication between databases with heterogenious data platforms

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

- Number: US RE49,042 E1
- Document ID: USRE49042E1
- Status: Granted
- Kind: E1
- Application number: 17/083,137
- Filed: 2020-10-28
- Granted: 2022-04-19
- Earliest claimed: 2015-08-31
- Assignees: Paypal, Inc.
- Applicants: Paypal, Inc.
- Inventors: Steve Clare; Liana Sanoyan; Jian Huang; Suresh Appavu; Sandip Das; Paul Kazakov; Prabhagaran Subramaniam; Mutharasan Nainar; Chirag Todarka
- Web page: https://patentgrep.com/patent/USRE49042E1

## CPC

- G06F 11/1451: {by selection of backup contents}
- G06F 3/065: {Replication mechanisms}
- 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 system and method for data replication for databases using an intermediary server, the intermediary server choosing the order in which databases are replicated, the utilities used for each of the steps in the data replication process, the timing of the replication, and/or the timing each step of the data replication process is performed.

## Claims

### Claim 1

A system for data replication between databases with heterogeneous data platforms comprising:
a non-transitory memory; and
one or more hardware processors coupled to the non-transitory memory and configured to read instructions from the non-transitory memory to cause the system to perform operations comprising:
determining available extraction utilities for extracting an incremental from a source database;
determining a first extraction utility from the available extraction utilities;
using the first extraction utility to extract the incremental from the source database and load the incremental onto a first server;
determining available loading utilities for a target database;
determining a first loading utility from the available loading utilities;
loading the incremental from the first server to the target database; and
causing the target database to update a data table in the target database with the incremental, the updating comprising repeatedly attempting to update the data table with the incremental using an unattempted application utility from a plurality of application utilities until the data table is updated or there are no more unattempted application utilities, wherein the unattempted application utility is chosen based on a cost of using the unattempted application utility.

### Claim 2 (depends on 1)

The system of claim 1, wherein the unattempted application utility is chosen from the plurality of application utilities that have not been attempted based on a preprogrammed order.

### Claim 3 (depends on 1)

The system of claim 1, further comprising selecting the target database from a plurality of databases based on a cost of using the target database.

### Claim 4 (depends on 1)

The system of claim 1, further comprising selecting the target database from a plurality of databases based on a processor usage of the target database.

### Claim 5

A computer implemented method of data replication, the method comprising:
selecting a first extraction utility from a plurality of extraction utilities based on a data format used on a source database, wherein selecting the first extraction utility is based at least in part on a second extraction utility being unavailable, and wherein the second extraction utility is unavailable because there are no available slots on the source database for the second extraction utility;
extracting an incremental from the source database and loading the incremental onto a server using the first extraction utility;
selecting a first loading utility from a plurality of loading utilities based on a data format used on a target database;
loading the incremental from the server to the target database using the first loading utility; and
causing the target database to update a data table on the target database with the incremental, the updating comprising repeatedly attempting to update the data table with the incremental using an unattempted application utility from a plurality of application utilities until the data table is updated or there are no more unattempted application utilities, wherein the unattempted application utility is chosen based on a cost of using the unattempted application utility.

### Claim 6 (depends on 5)

The computer implemented method of claim 5, wherein selecting the first extraction utility is based on an efficiency of the first extraction utility.

### Claim 7 (depends on 5)

The computer implemented method of claim 5, wherein selecting the first loading utility is based at least in part on a third loading utility failing to load the incremental.

### Claim 8 (depends on 5)

The computer implemented method of claim 5, the method further comprising transforming the extracted incremental from a first data format used on the source database to a second data format used on the target database before loading the incremental on target database.

### Claim 9

A system for data replication comprising:
a source database storing a first data table having first information received prior to a time point and second information received after the time point, the source database configured to create an incremental based on the second information;
a target database storing a second data table having the first information, the target database configured to update the second data table with the incremental when the incremental is loaded in the target database such that the second data table contains both the first and second information, the updating including repeatedly attempting to update the second data table with the incremental using an unattempted application utility from a plurality of application utilities until the second data table is updated or there are no more unattempted application utilities; and
a server including one or more hardware processors configured to execute instructions to cause the server to perform operations comprising:
extracting the incremental from the source database and loading the incremental onto a non-transitory memory;
selecting the target database from a plurality of databases based on a cost of using the target database; and
loading the incremental from the non-transitory memory onto the target database.

### Claim 10 (depends on 9)

The system of claim 9, wherein the source database is configured by the server to create the incremental.

### Claim 11 (depends on 9)

The system of claim 9, wherein the target database is configured by the server to update the second data table with the incremental.

### Claim 12 (depends on 9)

The system of claim 9, wherein the source database further comprises a first cache that the incremental is stored in when created.

### Claim 13 (depends on 12)

The system of claim 12, wherein the target database further comprises a second cache that the incremental is stored in when loaded onto the target database.

### Claim 14 (depends on 9)

The system of claim 9, wherein the incremental is stored on a Hadoop® cluster when extracted from the source database.

### Claim 15 (depends on 9)

The system of claim 9, wherein the operations further comprise transforming the incremental from a first data format to a second data format.

### Claim 16

The system of 15, wherein the first data format is a data format of the source database and the second data format is a Hadoop Distributed File System (HDFS) format.

### Claim 17

The system of 9, wherein the unattempted application utility is chosen from the plurality of application utilities based on a preprogrammed order.

### Claim 18

The system of 9, wherein the unattempted application utility is chosen based on a cost of using the unattempted application utility.

### Claim 19

The system of 9, wherein the cost of using the target database is based on a processor usage of the target database.

### Claim 20

The system of 9, wherein the extracting of the incremental from the source database includes selecting a first extraction utility from a plurality of extraction utilities based on a data format used on the source database.
