# US 2021/0240730 A1 · Selective synchronization of database objects

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

- Number: US 2021/0240730 A1
- Document ID: US20210240730A1
- Status: Published application
- Kind: A1
- Application number: 17/167,014
- Filed: 2021-02-03
- Published: 2021-08-05
- Earliest claimed: 2020-02-04
- Assignees: Grav1Ty Inc.
- Applicants: Grav1Ty Inc.
- Inventors: Ravindra V. POLISETTY
- Web page: https://patentgrep.com/patent/US20210240730A1

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 16/214: {Database migration support}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Implementations described herein relate to methods, systems, and computer-readable media to selectively synchronize database objects. In some implementations, a method includes receiving a request to synchronize records that include a corresponding root record and one or more connected records from a first database instance to a second database instance, wherein the request includes a specified graph configuration and an object boundary identifier; collecting the one or more records by traversing a corresponding graph configuration associated with each of the one or more root records; generating a snapshot that includes the one or more records into one or more object record sets based on a corresponding object boundary identifier associated with each of the one or more root records and the one or more connected records; publishing the snapshot to the second database instance; and updating the second database instance.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving a request to synchronize one or more records that include a corresponding root record and one or more connected records from a first database instance to a second database instance, wherein the request includes a specified graph configuration and an object boundary identifier associated with each of the one or more root records and the one or more connected records;
collecting the one or more records by traversing a corresponding graph configuration associated with each of the one or more root records;
generating a snapshot that includes the one or more records, wherein generating the snapshot includes assembling the one or more records into one or more object record sets based on a corresponding object boundary identifier associated with each of the one or more root records and the one or more connected records;
publishing the snapshot to the second database instance; and
updating the second database instance with at least one of the one or more object record sets included in the snapshot.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
prior to updating the second database instance, comparing the snapshot to a previously stored snapshot associated with the second database instance to determine at least one modified object record set; and
updating the second database instance with the at least one modified object record set.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein comparing the snapshot to the previously stored snapshot comprises:
calculating a first checksum associated with each of the object record sets included in the snapshot;
calculating a second checksum associated with each of the object record sets included in the previously stored snapshot; and
identifying the at least one modified object record set based on a determination that the first checksum is different from the second checksum.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2, wherein comparing the snapshot to the previously stored snapshot comprises comparing tokens for each object record set included in the snapshot with tokens for a corresponding object record set included in the previously stored snapshot.

### Claim 5 (depends on 2)

The computer-implemented method of claim 2, further comprising storing the snapshot and a timestamp associated with the snapshot in a storage device associated with the first database instance.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising assigning a version identifier to each object record set included in the snapshot based on a hierarchy of a record that was modified in the at least one modified object record set.

### Claim 7 (depends on 2)

The computer-implemented method of claim 2, wherein comparing the snapshot to the previously stored snapshot comprises:
receiving a user input indicative of one or more object boundary identifiers of interest for comparison; and
comparing object record sets associated with the one or more object boundary identifiers of interest included in the snapshot with corresponding object record sets included in the previously stored snapshot.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, further comprising:
prior to updating the second database instance, generating a temporal snapshot based on the corresponding root record and one or more connected records from the second database instance;
comparing the snapshot to the temporal snapshot to determine one or more modified object record sets;
displaying, via a user interface, identifiers corresponding to the one or more modified object record sets and corresponding boundary identifiers associated with the one or more modified object record sets;
receiving a user input indictive of at least one modified object record set to be updated in the second database instance; and
updating the second database instance with the at least one modified object record set.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the publishing the snapshot to the second database instance comprises:
comparing the snapshot with a previously generated snapshot associated with the first database instance to determine one or more modified object record sets;
displaying, via a user interface, the one or more modified object record sets;
receiving a selection of a subset of the one or more modified object record sets; and
transmitting the subset of the one or more modified object record sets to the second database instance.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein transmitting the modified object record sets to the second database instance comprises transmitting only destructively modified object record sets, wherein a destructively modified object record set comprises a modified object record set that includes at least one deleted record when compared to a corresponding object record set included in the previously generated snapshot.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, wherein the object boundary identifiers comprise a primary object boundary identifier and a secondary object boundary identifier, and wherein a root record associated with a primary object boundary identifier and included in a first object record set is not included in a second object record set of the record set.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, wherein each root record is associated with at least a primary object boundary identifier and a secondary object boundary identifier, wherein the primary object boundary identifier is different from the secondary object boundary identifier.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1, further comprising storing the snapshot and a timestamp associated with the snapshot in a storage device associated with the second database instance.

### Claim 14

A computer-implemented method, comprising:
receiving a request, at a database instance, to revert a root record from a current state of an application datastore to a previous state of the application datastore;
selecting a snapshot that includes the root record;
displaying, via a user interface, one or more object boundary identifiers associated with the root record;
receiving, via the interface, user input indicating a subset of the object boundary identifiers to be utilized to revert the root record;
obtaining a plurality of object record sets associated with the subset of the object boundary identifiers; and
deploying the plurality of object record sets in the database instance.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, wherein selecting a snapshot that includes the root record comprises selecting the snapshot from one or more versions of the snapshot stored in one of: a storage device associated with the database instance and a storage device associated with a version data storage system.

### Claim 16 (depends on 14)

The computer-implemented method of claim 14, further comprising prior to receiving the request to revert the root record, receiving a request to revert a snapshot that was previously deployed in the database instance, wherein the snapshot includes the root record.

### Claim 17

A non-transitory computer-readable medium comprising instructions that, responsive to execution by a processing device, causes the processing device to perform operations comprising:
receiving a request to generate a snapshot of one or more records that include a corresponding root record and one or more connected records associated with a database instance, wherein the request includes a specified graph configuration and an object boundary identifier associated with each of the one or more root records and the one or more connected records;
collecting the one or more records by traversing a corresponding graph configuration associated with each of the one or more root records; and
generating the snapshot that includes the one or more records, wherein generating the snapshot includes assembling the one or more records into one or more object record sets based on a corresponding object boundary identifier associated with each of the one or more root records and the one or more connected records.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17, further comprising storing the snapshot and a timestamp associated with the snapshot in a storage device associated with the database instance.

### Claim 19 (depends on 17)

The non-transitory computer-readable medium of claim 17, wherein storing the snapshot comprises:
obtaining a previous version of the snapshot;
comparing the object record sets in the snapshot with corresponding object record sets in the previous version of the snapshot to determine one or more modified object record sets; and
storing the one or more modified object record sets as the snapshot.

### Claim 20 (depends on 19)

The non-transitory computer-readable medium of claim 19, wherein comparing the object record sets in the snapshot with corresponding object record sets in the previous version of the snapshot comprises comparing tokens for each object record set included in the snapshot with tokens for a corresponding object record set included in the previous version of the snapshot.
