# US 11,030,045 B2 · Apparatus and method for utilizing different data storage types to store primary and replicated database directories

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

- Number: US 11,030,045 B2
- Document ID: US11030045B2
- Status: Granted
- Kind: B2
- Application number: 14/811,739
- Filed: 2015-07-28
- Published: 2017-02-02
- Granted: 2021-06-08
- Earliest claimed: 2015-07-28
- Assignees: Futurewei Technologies, Inc.
- Applicants: Futurewei Technologies, Inc.
- Inventors: Bai Yang; Guogen Zhang
- Web page: https://patentgrep.com/patent/US11030045B2

## CPC

- G06F 11/1435: {using file system or storage system metadata}
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 11/1469: {Backup restoration techniques}
- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- G06F 11/201: {between storage system components}
- G06F 11/2023: {Failover techniques}
- G06F 11/2035: {without idle spare hardware}
- G06F 11/2046: {where the redundant components share persistent storage (G06F11/2043 takes precedence)}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 2201/80: Database-specific techniques
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2201/85: Active fault masking without idle spares
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An apparatus and method are provided for utilizing different data storage types to store primary and replicated database directories. Included is a first data storage of a first data storage type including a direct-access storage type. The first data storage is configured to store a primary database directory. Also included is a second data storage of a second data storage type including a share type. The second data storage is configured to store a replicated database directory that replicates at least a portion of the primary database directory.

## Claims

### Claim 1

A method, comprising:
configuring each first data storage of a plurality of first data storages to store a primary database directory, the plurality of first data storages comprising a direct-access storage type, a first data storage of the plurality of first data storages being in communication with a corresponding node of the plurality of nodes, the first data storage being configured to store the primary database directory for access by only the corresponding node and is not shared with other nodes;
detecting a failure in connection with at least one node of the plurality of nodes; and
in response to detection of the failure, accessing a shared storage apparatus via a network interface coupled to the plurality of nodes, the shared storage apparatus including a plurality of second data storages, each second data storage of the plurality of second data storages configured to store a replicated database directory that replicates at least a portion of the primary database directory.

### Claim 2 (depends on 1)

The method of claim 1, wherein after detecting the failure in connection with the at least one of the plurality of nodes, the method further comprising:
determining whether a spare node exists.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
in response to the determination that the spare node exists, starting a database instance on the spare node for accessing the replicated database directory.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
in response to the determination that the spare node exists, mounting the replicated database directory in connection with the started database instance.

### Claim 5 (depends on 2)

The method of claim 2, further comprising:
in response to the determination that the spare node does not exist, starting a database instance on an available node for accessing the replicated database directory.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
in response to the determination that the spare node does not exist, mounting the replicated database directory in connection with the started database instance.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
initiating a rebuild operation; and
starting a read-only lock in response to an instance accessing the replicated database directory.

### Claim 8 (depends on 7)

The method of claim 7, the rebuild operation further comprising:
copying at least a portion of the replicated database directory to a new data storage of the direct-access storage type.

### Claim 9 (depends on 8)

The method of claim 8, the rebuild operation further comprising:
starting a database instance on the node.

### Claim 10 (depends on 9)

The method of claim 9, the rebuild operation further comprising:
mounting at least the portion of the replicated database directory in connection with the started database instance.

### Claim 11 (depends on 10)

The method of claim 10, the rebuild operation further comprising:
removing the read-only lock and stopping the database instance.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
performing a data operation by determining whether the replicated database directory exists.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
in response to determining that the replicated database directory exists, starting at least two threads including a first thread for performing the data operation on the primary database directory and a second thread for performing the data operation on the replicated database directory.

### Claim 14 (depends on 13)

The method of claim 13, wherein the at least two threads operate simultaneously to write data to the primary database directory and the replicated database directory respectively.

### Claim 15

A system, comprising:
at least one network interface;
a plurality of nodes in communication with the at least one network interface;
a plurality of first data storages of a direct-access storage type, a first data storage of the plurality of first data storages being in communication with a corresponding node of the plurality of nodes, the first data storage being configured to store a primary database directory for access by only the corresponding node and is not shared with other nodes; and
a shared storage apparatus in communication with the at least one network interface and including a plurality of second data storages, each second data storage of the plurality of second data storages configured to store a replicated database directory that replicates at least a portion of the primary database directory, and at least one corresponding second data storage being accessed in response to a failure detected in connection with at least one node of the plurality of nodes.

### Claim 16 (depends on 15)

The system of claim 15, wherein the system is configured for, in response to the detection of the failure in connection with the at least one node, determining whether a spare node exists.

### Claim 17 (depends on 16)

The system of claim 16, wherein the system is configured for, in response to the determination that the spare node exists, starting a database instance on the spare node for accessing the replicated database directory.

### Claim 18 (depends on 17)

The system of claim 17, wherein the system is configured for, in response to the determination that the spare node exists, mounting the replicated database directory in connection with the started database instance.

### Claim 19 (depends on 16)

The system of claim 16, wherein the system is configured for, in response to the determination that the spare node does not exist, starting a database instance on an available node for accessing the replicated database directory.

### Claim 20 (depends on 19)

The system of claim 19, wherein the system is configured for, in response to the determination that the spare node does not exist, mounting the replicated database directory in connection with the started database instance.

### Claim 21 (depends on 15)

The system of claim 15, wherein the system is configured for initiating a rebuild operation.

### Claim 22 (depends on 21)

The system of claim 21, wherein the system is configured such that the rebuild operation includes starting a read-only lock in response to an instance accessing the replicated database directory.

### Claim 23 (depends on 22)

The system of claim 22, wherein the system is configured such that the rebuild operation further includes copying at least a portion of the replicated database directory to a new data storage of the direct-access storage type.

### Claim 24 (depends on 23)

The system of claim 23, wherein the system is configured such that the rebuild operation further includes starting a database instance on the at least one node.

### Claim 25 (depends on 24)

The system of claim 24, wherein the system is configured such that the rebuild operation further includes mounting at least the portion of the replicated database directory in connection with the started database instance.

### Claim 26 (depends on 25)

The system of claim 25, wherein the system is configured such that the rebuild operation further includes removing the read-only lock and stopping the database instance.

### Claim 27 (depends on 15)

The system of claim 15, wherein the system is configured for performing a data operation by determining whether the replicated database directory exists.

### Claim 28 (depends on 27)

The system of claim 27, wherein the system is configured for, in response to determining that the replicated database directory exists, starting at least two threads including a first thread for performing the data operation on the primary database directory and a second thread for performing the data operation on the replicated database directory.

### Claim 29 (depends on 28)

The system of claim 28, wherein the system is configured for, in response to determining that the replicated database directory does not exist, starting only a single thread for performing the data operation on the primary database directory.

### Claim 30 (depends on 15)

The system of claim 15, wherein the system is configured for massive parallel processing.

### Claim 31

A computer program product comprising computer executable instructions stored on a non-transitory computer readable medium that when executed by a processor instruct the processor to:
configure each first data storage of a plurality of first data storages to store a primary database directory, the plurality of first data storages comprising a direct-access storage type, a first data storage of the plurality of first data storages being in communication with a corresponding node of the plurality of nodes, the first data storage being configured to store the primary database directory for access by only the corresponding node and is not shared with other nodes;
detecting a failure in connection with at least one node of the plurality of nodes; and
in response to detection of the failure, accessing a shared storage apparatus via a network interface coupled to the plurality of nodes, the shared storage apparatus including a plurality of second data storages, each second data storage of the plurality of second data storages configured to store a replicated database directory that replicates at least a portion of the primary database directory.

### Claim 32 (depends on 31)

The computer program product of claim 31, computer executable instructions further instruct the processor to:
determine a spare node exists; and
start a database instance on the spare node for accessing the replicated database directory.

### Claim 33 (depends on 32)

The computer program product of claim 32, computer executable instructions further instruct the processor to:
mount the replicated database directory in connection with the started database instance.

### Claim 34 (depends on 31)

The computer program product of claim 31, computer executable instructions further instruct the processor to:
determine a spare node does not exist; and
start a database instance on an available node for accessing the replicated database directory.

### Claim 35 (depends on 34)

The computer program product of claim 34, computer executable instructions further instruct the processor to:
mount the replicated database directory in connection with the started database instance.

### Claim 36 (depends on 31)

The computer program product of claim 31, computer executable instructions further instruct the processor to:
perform a data operation by determining whether the replicated database directory exists; and
in response to determining that the replicated database directory exists, start at least two threads including a first thread for performing the data operation on the primary database directory and a second thread for performing the data operation on the replicated database directory.

### Claim 37 (depends on 36)

The computer program product of claim 36, wherein the at least two threads operate simultaneously to write data to the primary database directory and the replicated database directory respectively.
