# US 12,222,947 B1 · Partial database update based on lightweight join

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

- Number: US 12,222,947 B1
- Document ID: US12222947B1
- Status: Granted
- Kind: B1
- Application number: 18/587,388
- Filed: 2024-02-26
- Granted: 2025-02-11
- Earliest claimed: 2024-02-26
- Assignees: Twilio Inc.
- Applicants: Twilio Inc.
- Inventors: Gil Omer
- Web page: https://patentgrep.com/patent/US12222947B1

## CPC

- G06F 16/2456: {Join operations}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/25: Integrating or interfacing systems involving database management systems
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A machine is configured to access an authoritative database of data fields, where each data field has a corresponding authoritative value and a corresponding update time. The machine accesses a propagation time that was last updated in response to a most recent propagation of updated authoritative values from the authoritative database to a recipient database. The machine performs a database join that joins only any unpropagated authoritative values having update times that exceed the propagation time to corresponding reference checksums of corresponding data fields. The machine generates candidate checksums of only the corresponding data fields whose unpropagated authoritative values have update times that exceed the propagation time. The machine propagates, from the authoritative database to the recipient database, the unpropagated authoritative values, and the machine replaces the reference checksums with the generated candidate checksums.

## Claims

### Claim 1

A method comprising:
accessing, by one or more processors, an authoritative database of data fields, each data field having a corresponding authoritative value and a corresponding update time;
accessing, by the one or more processors, a propagation time that was last updated in response to a most recent propagation of one or more updated authoritative values from the authoritative database to a recipient database;
performing, by the one or more processors, a database join that joins only unpropagated authoritative values having update times that exceed the propagation time to corresponding reference checksums of their corresponding data fields;
generating, by the one or more processors, candidate checksums of only the corresponding data fields with unpropagated authoritative values having update times that exceed the propagation time;
propagating, by the one or more processors and from the authoritative database to the recipient database, the unpropagated authoritative values having update times that exceed the propagation time; and
replacing, by the one or more processors, the reference checksums with the generated candidate checksums for only the corresponding data fields with propagated authoritative values having update times that exceed the propagation time.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
updating the propagation time in response to the replacing of the reference checksums with the generated candidate checksums for only the corresponding data fields with propagated authoritative values having update times that exceed the propagation time.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the database join that joins only the unpropagated authoritative values to their corresponding reference checksums omits joining any authoritative values having update times that fail to exceed the propagation time.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the database join that joins only the unpropagated authoritative values to their corresponding reference checksums is less computationally intensive than joining all authoritative values in the authoritative database to their corresponding reference checksums of their corresponding data fields.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
detecting that a first authoritative value of a first data field in the authoritative database is updated after the propagation time that was last updated in response to the most recent propagation of the one or more updated authoritative values from the authoritative database to the recipient database; and wherein:
the propagating of the unpropagated authoritative values comprises propagating the updated first authoritative value of the first data field to the recipient database in real-time.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
detecting that a first authoritative value of a first data field in the authoritative database is updated after the propagation time that was last updated in response to the most recent propagation of the one or more updated authoritative values from the authoritative database to the recipient database; and wherein:
the replacing of the reference checksums with the generated candidate checksums comprises replacing a first reference checksum of the first data field with a generated first candidate checksum of the first data field in real-time.

### Claim 7 (depends on 1)

The method of claim 1, wherein:
the recipient database is stored by a device configured to receive information in accordance with a reverse extract-transform-load (reverse-ETL) streaming protocol; and
the propagating of the unpropagated authoritative values having update times that exceed the propagation time to the recipient database causes the device to update the recipient database with the propagated authoritative values of their corresponding data fields in accordance with the reverse-ETL streaming protocol.

### Claim 8

A non-transitory machine-readable medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
accessing an authoritative database of data fields, each data field having a corresponding authoritative value and a corresponding update time;
accessing a propagation time that was last updated in response to a most recent propagation of one or more updated authoritative values from the authoritative database to a recipient database;
performing a database join that joins only unpropagated authoritative values having update times that exceed the propagation time to corresponding reference checksums of their corresponding data fields;
generating candidate checksums of only the corresponding data fields with unpropagated authoritative values having update times that exceed the propagation time;
propagating, from the authoritative database to the recipient database, the unpropagated authoritative values having update times that exceed the propagation time; and
replacing the reference checksums with the generated candidate checksums for only the corresponding data fields with propagated authoritative values having update times that exceed the propagation time.

### Claim 9 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein the operations further comprise:
updating the propagation time in response to the replacing of the reference checksums with the generated candidate checksums for only the corresponding data fields with propagated authoritative values having update times that exceed the propagation time.

### Claim 10 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein:
the database join that joins only the unpropagated authoritative values to their corresponding reference checksums omits joining any authoritative values having update times that fail to exceed the propagation time.

### Claim 11 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein:
the database join that joins only the unpropagated authoritative values to their corresponding reference checksums is less computationally intensive than joining all authoritative values in the authoritative database to their corresponding reference checksums of their corresponding data fields.

### Claim 12 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein the operations further comprise:
detecting that a first authoritative value of a first data field in the authoritative database is updated after the propagation time that was last updated in response to the most recent propagation of the one or more updated authoritative values from the authoritative database to the recipient database; and wherein:
the propagating of the unpropagated authoritative values comprises propagating the updated first authoritative value of the first data field to the recipient database in real-time.

### Claim 13 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein the operations further comprise:
detecting that a first authoritative value of a first data field in the authoritative database is updated after the propagation time that was last updated in response to the most recent propagation of the one or more updated authoritative values from the authoritative database to the recipient database; and wherein:
the replacing of the reference checksums with the generated candidate checksums comprises replacing a first reference checksum of the first data field with a generated first candidate checksum of the first data field in real-time.

### Claim 14 (depends on 8)

The non-transitory machine-readable medium of claim 8, wherein:
the recipient database is stored by a device; and
the propagating of the unpropagated authoritative values having update times that exceed the propagation time to the recipient database caused the device to update the recipient database with the propagated authoritative values of their corresponding data fields.

### Claim 15

A system comprising:
one or more processors; and
a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform operations comprising:
accessing an authoritative database of data fields, each data field having a corresponding authoritative value and a corresponding update time;
accessing a propagation time that was last updated in response to a most recent propagation of one or more updated authoritative values from the authoritative database to a recipient database;
performing a database join that joins only unpropagated authoritative values having update times that exceed the propagation time to corresponding reference checksums of their corresponding data fields;
generating candidate checksums of only the corresponding data fields with unpropagated authoritative values having update times that exceed the propagation time;
propagating, from the authoritative database to the recipient database, the unpropagated authoritative values having update times that exceed the propagation time; and
replacing the reference checksums with the generated candidate checksums for only the corresponding data fields with propagated authoritative values having update times that exceed the propagation time.

### Claim 16 (depends on 15)

The system of claim 15, wherein the operations further comprise:
updating the propagation time in response to the replacing of the reference checksums with the generated candidate checksums for only the corresponding data fields with propagated authoritative values having update times that exceed the propagation time.

### Claim 17 (depends on 15)

The system of claim 15, wherein:
the database join that joins only the unpropagated authoritative values to their corresponding reference checksums omits joining any authoritative values having update times that fail to exceed the propagation time.

### Claim 18 (depends on 15)

The system of claim 15, wherein:
the database join that joins only the unpropagated authoritative values to their corresponding reference checksums is less computationally intensive than joining all authoritative values in the authoritative database to their corresponding reference checksums of their corresponding data fields.

### Claim 19 (depends on 15)

The system of claim 15, wherein the operations further comprise:
detecting that a first authoritative value of a first data field in the authoritative database is updated after the propagation time that was last updated in response to the most recent propagation of the one or more updated authoritative values from the authoritative database to the recipient database; and wherein:
the propagating of the unpropagated authoritative values comprises propagating the updated first authoritative value of the first data field to the recipient database in real-time.

### Claim 20 (depends on 15)

The system of claim 15, wherein the operations further comprise:
detecting that a first authoritative value of a first data field in the authoritative database is updated after the propagation time that was last updated in response to the most recent propagation of the one or more updated authoritative values from the authoritative database to the recipient database; and wherein:
the replacing of the reference checksums with the generated candidate checksums comprises replacing a first reference checksum of the first data field with a generated first candidate checksum of the first data field in real-time.
