# US 11,907,167 B2 · Multi-cluster database management services

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

- Number: US 11,907,167 B2
- Document ID: US11907167B2
- Status: Granted
- Kind: B2
- Application number: 17/337,197
- Filed: 2021-06-02
- Published: 2022-03-03
- Granted: 2024-02-20
- Earliest claimed: 2020-08-28
- Assignees: Nutanix, Inc.
- Applicants: Nutanix, Inc.
- Inventors: Kamaldeep Khanuja; Yashesh Mankad; Sagar Sontakke; Bakul Banthia; Balasubrahmanyam Kuchibhotla; Anil Madan; Manish Pratap Singh
- Web page: https://patentgrep.com/patent/US11907167B2

## CPC

- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/2097: {maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups)}
- G06F 16/11: File system administration, e.g. details of archiving or snapshots (error detection or correction of the data by redundancy in operations G06F11/14)
- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 16/184: {implemented as replicated file system}
- G06F 16/1865: {Transactional file systems}
- G06F 16/188: Virtual file systems
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/25: Integrating or interfacing systems involving database management systems
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 2201/80: Database-specific techniques
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A multi-cluster configuration of a database management system in a virtual computing system includes a server that defines a first policy for a source database on a first cluster of a plurality of clusters. Each of the plurality of clusters is registered with the server and the first policy defines capture of snapshots and/or transactional logs from the source database on the first cluster. The server defines a second policy for the source database to replicate at least some of the snapshots and/or transactional logs from the first cluster to a second cluster of the plurality of clusters, captures a first snapshot and/or a first transactional log from the source database in accordance with the first policy, and replicates the first snapshot and/or the first transactional log to the second cluster in accordance with the second policy.

## Claims

### Claim 1

A system comprising:
a memory having computer-readable instructions thereon; and
a processor of a server executing the computer-readable instructions to:
capture one or more transactional logs from a source database stored on a first cluster of a plurality of clusters;
determine which of the one or more transactional logs to replicate from the first cluster to a second cluster of the plurality of clusters; and
replicate, to the second cluster, the one or more transactional logs to be replicated to the second cluster, wherein to replicate the one or more transactional logs to the second cluster, the processor further executes computer-readable instructions to:
store the one or more transactional logs into a stage drive on the first cluster;
capture a staging snapshot of the stage drive on the first cluster;
replicate the staging snapshot from the stage drive on the first cluster to a stage drive on the second cluster; and
move the staging snapshot from the stage drive on the second cluster to a log drive on the second cluster.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first cluster and the second cluster are part of a same datacenter.

### Claim 3 (depends on 1)

The system of claim 1, wherein the first cluster and the second cluster are part of different datacenters.

### Claim 4 (depends on 1)

The system of claim 1, wherein the first cluster is part of an on-premise environment and the second cluster is part of a cloud environment.

### Claim 5 (depends on 1)

The system of claim 1, wherein the one or more transactional logs to replicate from the first cluster to the second cluster are determined based on a policy, and wherein to define the policy, the processor further executes computer-readable instructions to:
receive a first user selection of the second cluster;
receive a second user selection of a data access management policy to define a duration for which the one or more transactional logs being replicated to the second cluster are to be retained on the second cluster; and
apply the data access management policy to the second cluster.

### Claim 6 (depends on 1)

The system of claim 1, wherein the processor further executes computer-readable instructions to:
capture one or more snapshots from the source database;
determine which of the one or more snapshots to replicate from the first cluster to the second cluster; and
replicate the one or more snapshots to be replicated to the second cluster.

### Claim 7 (depends on 6)

The system of claim 6, wherein the processor further executes computer-readable instructions to apply a sanitization policy to the one or more snapshots to be replicated, wherein the sanitization policy is created based on a masking script, and wherein the masking script is received as a user selection in response to an indication that the one or more snapshots to be replicated are to be sanitized before replication.

### Claim 8 (depends on 7)

The system of claim 7, wherein to apply the sanitization policy, the processor further executes computer-readable instructions to:
create a clone of the one or more snapshots to be replicated;
apply the masking script to the clone;
capture one or more sanitized snapshots from the clone; and
delete the clone upon capture of the one or more sanitized snapshots.

### Claim 9 (depends on 1)

The system of claim 1, wherein the one or more transactional logs are captured from the source database based on a policy that comprises a Service Level Agreement defining a protection level for protecting the source database and a protection schedule for defining a frequency of capturing the one or more transactional logs.

### Claim 10 (depends on 1)

The system of claim 1, wherein each of the plurality of clusters comprises an agent that performs operations on a respective one of the plurality of clusters on which the agent is located under control of the server.

### Claim 11 (depends on 1)

The system of claim 1, wherein the processor further executes computer-readable instructions to:
capture one or more snapshots from the source database stored on the first cluster; and
replicate the one or more snapshots to the second cluster by:
creating a metadata entry on the first cluster for a replicated snapshot for each of the one or more snapshots;
sending the one or more snapshots to the second cluster; and
updating the metadata entry upon receiving an indication from the second cluster that the one or more snapshots are successfully replicated to the second cluster.

### Claim 12

A method comprising:
capturing, by a processor of a server executing computer-readable instructions, one or more transactional logs from a source database stored on a first cluster of a plurality of clusters;
determining, by the processor, which of the one or more transactional logs to replicate from the first cluster to a second cluster of the plurality of clusters; and
replicating, by the processor, the one or more transactional logs to be replicated to the second cluster by:
storing, by the processor, the one or more transactional logs into a stage drive on the first cluster;
capturing, by the processor, a staging snapshot of the stage drive on the first cluster;
replicating, by the processor, the staging snapshot from the stage drive on the first cluster to a stage drive on the second cluster; and
moving, by the processor, the staging snapshot from the stage drive on the second cluster to a log drive on the second cluster.

### Claim 13 (depends on 12)

The method of claim 12, wherein the one or more transactional logs to replicate from the first cluster to the second cluster are determined based on a policy, and wherein to define the policy, the method further comprises:
receiving, by the processor, a first user selection of the second cluster;
receiving, by the processor, a second user selection of a data access management policy for defining a duration for which the one or more transactional logs being replicated to the second cluster are to be retained on the second cluster; and
applying, by the processor, the data access management policy to the second cluster.

### Claim 14 (depends on 12)

The method of claim 12, further comprising:
capturing, by the processor, one or more snapshots from the source database stored on the first cluster; and
replicating, by the processor, the one or more snapshots to the second cluster by:
creating, by the processor, a metadata entry on the first cluster for a replicated snapshot for each of the one or more snapshots;
sending, by the processor, the one or more snapshots to the second cluster; and
updating, by the processor, the metadata entry upon receiving an indication from the second cluster that the one or more snapshots are successfully replicated to the second cluster.

### Claim 15 (depends on 12)

The method of claim 12, wherein the first cluster and the second cluster are part of a same datacenter.

### Claim 16 (depends on 12)

The method of claim 12, wherein the first cluster and the second cluster are part of different datacenters.

### Claim 17 (depends on 12)

The method of claim 12, wherein the first cluster is part of an on-premise environment and the second cluster is part of a cloud environment.

### Claim 18 (depends on 12)

The method of claim 12, further comprising:
capturing, by the processor, one or more snapshots from the source database;
determining, by the processor, which of the one or more snapshots to replicate from the first cluster to the second cluster; and
replicating, by the processor, the one or more snapshots to be replicated to the second cluster.

### Claim 19 (depends on 18)

The method of claim 18, further comprising applying, by the processor, a sanitization policy to the one or more snapshots to be replicated, wherein the sanitization policy is created based on a masking script, and wherein the masking script is received as a user selection in response to an indication that the one or more snapshots to be replicated are to be sanitized before replication.

### Claim 20 (depends on 19)

The method of claim 19, wherein to apply the sanitization policy to the one or more snapshots, the method further comprises:
creating, by the processor, a clone of the one or more snapshots identified in the first user selection;
applying, by the processor, the masking script to the clone;
capturing, by the processor, one or more sanitized snapshots from the clone; and
deleting, by the processor, the clone upon capturing the one or more sanitized snapshots.

### Claim 21 (depends on 12)

The method of claim 12, wherein the one or more transactional logs are captured from the source database based on a policy that comprises a Service Level Agreement defining a protection level for protecting the source database and a protection schedule for defining a frequency of capturing the one or more transactional logs.

### Claim 22 (depends on 12)

The method of claim 12, wherein each of the plurality of clusters comprises an agent that performs operations on a respective one of the plurality of clusters on which the agent is located under control of the server.

### Claim 23

A non-transitory computer readable media comprising computer-readable instructions stored thereon that when executed by a processor of a server causes the processor to:
capture one or more transactional logs from a source database stored on a first cluster of a plurality of clusters;
determine which of the one or more transactional logs to replicate from the first cluster to a second cluster of the plurality of clusters; and
replicate, to the second cluster, the one or more transactional logs to be replicated to the second cluster, wherein to replicate the one or more transactional logs to the second cluster, the processor further executes computer-readable instructions to:
store the one or more transactional logs into a stage drive on the first cluster;
capture a staging snapshot of the stage drive on the first cluster;
replicate the staging snapshot from the stage drive on the first cluster to a stage drive on the second cluster; and
move the staging snapshot from the stage drive on the second cluster to a log drive on the second cluster.

### Claim 24 (depends on 23)

The non-transitory computer readable media of claim 23, wherein the first cluster and the second cluster are part of a same datacenter.

### Claim 25 (depends on 23)

The non-transitory computer readable media of claim 23, wherein the first cluster and the second cluster are part of different datacenters.

### Claim 26 (depends on 23)

The non-transitory computer readable media of claim 23, wherein the first cluster is part of an on-premise environment and the second cluster is part of a cloud environment.

### Claim 27 (depends on 23)

The non-transitory computer readable media of claim 23, wherein the one or more transactional logs to replicate from the first cluster to the second cluster are determined based on a policy; and wherein to define the policy, the processor further executes computer-readable instructions to:
receive a first user selection of the second cluster;
receive a second user selection of a data access management policy to define a duration for which the one or more transactional logs being replicated to the second cluster are to be retained on the second cluster; and
apply the data access management policy to the second cluster.

### Claim 28 (depends on 23)

The non-transitory computer readable media of claim 23, wherein the processor further executes computer-readable instructions to:
capture one or more snapshots from the source database;
determine which of the one or more snapshots to replicate from the first cluster to the second cluster; and
replicate the one or more snapshots to be replicated to the second cluster.

### Claim 29 (depends on 28)

The non-transitory computer-readable media of claim 28, wherein the processor further executes computer-readable instructions to apply a sanitization policy to the one or more snapshots to be replicated, wherein the sanitization policy is created based on a masking script, and wherein the masking script is received as a user selection in response to an indication that the one or more snapshots to be replicated are to be sanitized before replication.

### Claim 30 (depends on 29)

The non-transitory computer-readable media of claim 29, wherein the processor further executes computer-readable instructions to
create a clone of the one or more snapshots to be replicated;
apply the masking script to the clone;
capture one or more sanitized snapshots from the clone; and
delete the clone upon capture of the one or more sanitized snapshots.

### Claim 31 (depends on 23)

The non-transitory computer readable media of claim 23, wherein the one or more transactional logs are captured from the source database based on a policy that comprises a Service Level Agreement defining a protection level for protecting the source database and a protection schedule for defining a frequency of capturing the one or more transactional logs.

### Claim 32 (depends on 23)

The non-transitory computer readable media of claim 23, wherein each of the plurality of clusters comprises an agent that performs operations on a respective one of the plurality of clusters on which the agent is located under control of the server.

### Claim 33 (depends on 23)

The non-transitory computer-readable media of claim 23, wherein the processor further executes computer-readable instructions to:
capture one or more snapshots from the source database stored on the first cluster; and
replicate the one or more snapshots to the second cluster by:
creating a metadata entry on the first cluster for a replicated snapshot for each of the one or more snapshots;
sending the one or more snapshots to the second cluster; and
updating the metadata entry upon receiving an indication from the second cluster that the one or more snapshots are successfully replicated to the second cluster.
