# US 2021/0278971 A1 · Sub-cluster recovery using a partition group index

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

- Number: US 2021/0278971 A1
- Document ID: US20210278971A1
- Status: Published application
- Kind: A1
- Application number: 17/077,245
- Filed: 2020-10-22
- Published: 2021-09-09
- Earliest claimed: 2016-02-25
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Rohit Shekhar; Hyo Jun Kim; Prasenjit Sarkar; Maohua Lu; Ajaykrishna Raghavan; Pin Zhou
- Web page: https://patentgrep.com/patent/US20210278971A1

## CPC

- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0641: {De-duplication techniques}
- G06F 11/1469: {Backup restoration techniques}
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- G06F 11/1456: {Hardware arrangements for backup}
- G06F 2201/80: Database-specific techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments disclosed herein provide systems, methods, and computer readable media for sub-cluster recovery in a data storage environment having a plurality of storage nodes. In a particular embodiment, the method provides scanning data items in the plurality of nodes. While scanning, the method further provides indexing the data items into an index of a plurality of partition groups. Each partition group includes data items owned by a particular one of the plurality of storage nodes. The method then provides storing the index.

## Claims

### Claim 1

A method for sub-cluster recovery in a data storage environment having a plurality of nodes, the method comprising:
scanning data items stored in the first plurality of nodes of a first cluster;
while scanning, creating a partition group index indexing the data items into a plurality of partition groups, wherein each partition group corresponds to a node of the first plurality of nodes and comprises a subset of data items stored in the node;
storing the index; and
instantiating a second cluster mirroring the first cluster using a second plurality of nodes different from the first plurality of nodes by:
identifying the data items included in the partition groups according to the partition group index, and
loading the data items included in the partition groups onto the second plurality of nodes.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
recovering each of the first plurality of nodes by:
identifying the data items stored in the node based on the mappings between the partition groups and the first plurality of nodes, and
loading the identified data items onto the node.

### Claim 3 (depends on 1)

The method of claim 1, wherein instantiating the second cluster mirroring the first cluster comprises:
for each node of the second plurality of nodes: generating per node data based on the mappings between the partition groups and the first plurality of nodes of the cluster.

### Claim 4 (depends on 1)

The method of claim 1, wherein the second plurality of nodes include less nodes than the first plurality of nodes and wherein instantiating the second cluster comprises further:
generating a partition group to node mapping for the second cluster from the partition group index.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
while scanning the data items, identifying duplicate data items in the cluster;
deduplicating the duplicate data items;
repackaging each of the duplicate data items into respective deduplicated data units; and
storing the deduplicated data units to a secondary data repository.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
determining a degree of duplicates of the data items in the cluster; and
comparing the degree of duplicates to a predetermined level of consistency,
wherein the deduplication is performed responsive to determining the degree of duplicates is greater than the predetermined level of consistency.

### Claim 7 (depends on 5)

The method of claim 5, wherein the partition groups include deduplicated data items.

### Claim 8 (depends on 5)

The method of claim 5, wherein storing the deduplicated data units comprises storing a data version of the data items, further comprising:
compiling the deduplicated data units into the data version of the data items.

### Claim 9 (depends on 1)

The method of claim 1, wherein the data items are stored in a NoSQL data store.

### Claim 10

A system for sub-cluster recovery in a data storage environment having a plurality of nodes, the system comprising:
one or more non-transitory computer readable storage media;
a processing system operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media that, when read and executed by the processing system, direct the processing system to:
scan data items stored in the first plurality of nodes of a first cluster;
while scanning, creating a partition group index indexing the data items into a plurality of partition groups, wherein each partition group corresponds to a node of the first plurality of nodes and comprises a subset of data items stored in the node;
store the index; and
instantiate a second cluster mirroring the first cluster using a second plurality of nodes different from the first plurality of nodes by:
identifying the data items included in the partition groups according to the partition group index, and
load the data items included in the partition groups onto the second plurality of nodes.

### Claim 11 (depends on 10)

The system of claim 10, wherein the program instructions further direct the processing system to:
recover each of the plurality of nodes by:
identifying the data items stored in the node based on the mappings between the partition groups and the first plurality of nodes, and
loading the identified data items onto the node per node.

### Claim 12 (depends on 10)

The system of claim 10, wherein the program instructions configured to direct the processing system to instantiate the second cluster mirroring the first cluster further direct the processing system to:
for each node of the second plurality of nodes: generate per node data based on the mappings between the partition groups and the first plurality of nodes of the cluster.

### Claim 13 (depends on 10)

The system of claim 10, wherein the second plurality of nodes include less nodes than the first plurality of nodes and wherein the program instructions configured to direct the processing system to instantiate the second cluster directs the processing system to:
generate a partition group to node mapping for the second cluster from the partition group index.

### Claim 14 (depends on 10)

The system of claim 10, wherein the program instructions further direct the processing system to:
while scanning the data items, identify duplicate data items in the cluster;
deduplicate the duplicate data items;
repackage each of the duplicate data items into respective deduplicated data units; and
store the deduplicated data units to a secondary data repository.

### Claim 15 (depends on 14)

The system of claim 14, wherein the program instructions further direct the processing system to:
determine a degree of duplicates of the data items in the cluster; and
compare the degree of duplicates to a predetermined level of consistency,
wherein the deduplication is performed responsive to determining the degree of duplicates is greater than the predetermined level of consistency.

### Claim 16 (depends on 14)

The system of claim 14, wherein the partition groups include deduplicated data items.

### Claim 17 (depends on 14)

The system of claim 14, wherein storing the deduplicated data units comprises storing a data version of the data items, and wherein the program instructions further direct the processing system to:
compile the deduplicated data units into the data version of the data items.

### Claim 18 (depends on 10)

The system of claim 10, wherein the data items are stored in a NoSQL data store.
