# US 2020/0401606 A1 · Database replication based on data access scores

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

- Number: US 2020/0401606 A1
- Document ID: US20200401606A1
- Status: Published application
- Kind: A1
- Application number: 17/009,515
- Filed: 2020-09-01
- Published: 2020-12-24
- Earliest claimed: 2018-10-19
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Thomas Mark O'Shaughnessy
- Web page: https://patentgrep.com/patent/US20200401606A1

## CPC

- G06F 16/273: {Asynchronous replication or reconciliation}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/245: Query processing
- 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 method of prioritizing replication of database objects between storage devices includes receiving a request to replicate data from a first to a second storage device; accessing a queries previously executed on the first device; determining database objects associated with the queries; calculating access metrics for the database objects indicating how the database objects were accessed by the queries; determining a subset of database objects for replication based on the access metrics; and initiating a data replication process to replicate the subset of database objects from the first device to the second device that prioritizes the subset of database objects relative to a remainder of the database objects.

## Claims

### Claim 1

A system comprising:
one or more processors; and
one or more memory devices comprising instructions that, when executed by the one or more processors, cause the system to perform operations comprising:
receiving a request to replicate data from a first storage device to a second storage device;
accessing data associated with a plurality of queries previously executed on the first storage device;
determining one or more database objects associated with the plurality of queries;
calculating one or more access metrics for the one or more database objects indicating how the one or more database objects were accessed by the plurality of queries;
determining a subset of the one or more database objects for replication based at least in part on the access metrics for the one or more database objects; and
initiating a data replication process to replicate the subset of the one or more database objects from the first storage device to the second storage device that prioritizes the subset of the one or more database objects relative to a remainder of the one or more database objects.

### Claim 2 (depends on 1)

The system of claim 1, wherein determining one or more database objects associated with the plurality of queries comprises:
for each query in the plurality of queries, determining a set of database objects that was accessed during the execution of the query.

### Claim 3 (depends on 1)

The system of claim 1, wherein determining one or more database objects associated with the plurality of queries comprises:
determining one or more database objects that were potentially accessed but not definitely accessed during the execution of the plurality of queries based at least in part on one or more corresponding query texts.

### Claim 4 (depends on 1)

The system of claim 1, wherein determining one or more database objects associated with the plurality of queries comprises:
determining a first database object that was definitely accessed during execution of the plurality of queries based on one or more corresponding query texts; and
determining a second database object that was potentially accessed but not definitely accessed during the execution of the plurality of queries based on the one or more query texts.

### Claim 5 (depends on 4)

The system of claim 4, wherein calculating the one or more access metrics for the one or more database objects comprises:
assigning different weight values to the first database object and the second database object based on a determination that the first database object was definitely accessed during execution of the plurality of queries and that the second database object was potentially accessed but not definitely accessed during the execution of the plurality of queries.

### Claim 6 (depends on 1)

The system of claim 1, wherein calculating the one or more access metrics for the one or more database objects comprises:
determining query execution times for the plurality of queries; and
assigning weight values to the one or more database objects based at least in part on the plurality of query execution times.

### Claim 7 (depends on 1)

The system of claim 1, wherein determining the subset of the one or more database objects for replication comprises:
identifying database objects that are associated with a highest percentage of the plurality of queries.

### Claim 8

A method of prioritizing replication of database objects between storage devices, the method comprising:
receiving a request to replicate data from a first storage device to a second storage device;
accessing data associated with a plurality of queries previously executed on the first storage device;
determining one or more database objects associated with the plurality of queries;
calculating one or more access metrics for the one or more database objects indicating how the one or more database objects were accessed by the plurality of queries;
determining a subset of the one or more database objects for replication based at least in part on the access metrics for the one or more database objects; and
initiating a data replication process to replicate the subset of the one or more database objects from the first storage device to the second storage device that prioritizes the subset of the one or more database objects relative to a remainder of the one or more database objects.

### Claim 9 (depends on 8)

The method of claim 8, wherein determining the subset of the one or more database objects for replication comprises:
identifying database objects that were executed a greatest number of times during execution of the plurality of queries.

### Claim 10 (depends on 8)

The method of claim 8, wherein the one or more database objects is comprised of one or more of:
database tables;
specific columns within database tables;
user profiles; or
indexes.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
causing a bar graph to be generated in a user interface to reflect the one or more access metrics.

### Claim 12 (depends on 8)

The method of claim 8, wherein determining a subset of the one or more database objects for replication comprises:
identifying a predetermined number of most accessed database objects in the one or more database objects.

### Claim 13 (depends on 8)

The method of claim 8, wherein determining the one or more database objects associated with the plurality of queries comprises:
identifying table names referenced in the plurality of queries.

### Claim 14 (depends on 8)

The method of claim 8, further comprising re-executing a portion of the plurality of queries to identify database tables that were actually accessed.

### Claim 15

A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a request to replicate data from a first storage device to a second storage device;
accessing data associated with a plurality of queries previously executed on the first storage device;
determining one or more database objects associated with the plurality of queries;
calculating one or more access metrics for the one or more database objects indicating how the one or more database objects were accessed by the plurality of queries;
determining a subset of the one or more database objects for replication based at least in part on the access metrics for the one or more database objects; and
initiating a data replication process to replicate the subset of the one or more database objects from the first storage device to the second storage device that prioritizes the subset of the one or more database objects relative to a remainder of the one or more database objects.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more access metrics indicate a percentage of the plurality of queries that accessed the one or more database objects at least once.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more access metrics indicate a percentage of columns in a database table that were accessed at least once.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more access metrics indicate a number of times a database object was modified.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more access metrics indicate a number of times a database object was accessed by a particular user or user group.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the one or more access metrics are calculated using a weighted combination of scores, wherein weights used in the weighted combination favor more recent access.
