# US 2019/0243733 A1 · System and method for efficient comparison of mirrored storage devices

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

- Number: US 2019/0243733 A1
- Document ID: US20190243733A1
- Status: Published application
- Kind: A1
- Application number: 16/270,017
- Filed: 2019-02-07
- Published: 2019-08-08
- Earliest claimed: 2018-02-07
- Assignees: Excelero Storage Ltd.
- Applicants: Excelero Storage Ltd.
- Inventors: Yaniv ROMEM; Omri MANN; Ofer OSHRI; Kirill SHOIKHET; Daniel HERMAN SHMULYAN
- Web page: https://patentgrep.com/patent/US20190243733A1

## CPC

- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/2064: {while ensuring consistency}
- G06F 11/2069: {Management of state, configuration or failover}
- G06F 11/2082: {Data synchronisation}
- G06F 11/2056: {by mirroring}
- G06F 2201/805: Real-time
- G06F 2201/82: Solving problems relating to consistency
- G06F 2201/835: Timestamp
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method for comparing mirrored storage devices. The method includes: selecting, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure; comparing the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and performing a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

## Claims

### Claim 1

A method for comparing mirrored storage devices, comprising:
selecting, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure;
comparing the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and
performing a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
marking all blocks of the slice as trimmed blocks when it is determined that the slice contains any blocks that are trimmed.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
trimming a block in the at least a second storage device when a corresponding block of a first storage device is determined to be trimmed.

### Claim 4 (depends on 1)

The method of claim 1, wherein the determination if a block is trimmed is based on metadata describing the contents of the block.

### Claim 5 (depends on 1)

The method of claim 1, wherein comparing the non-trimmed blocks of the first storage to the non-trimmed blocks of the second storage comprises comparing metadata of the first block and metadata of the second block.

### Claim 6 (depends on 5)

The method of claim 5, wherein the metadata is a hash value of the contents of the non-trimmed block.

### Claim 7 (depends on 5)

The method of claim 5, wherein the metadata a timestamp value indicating when the contents of the non-trimmed block were written, and wherein it is determined that the more recent of the blocks is a mirrored block.

### Claim 8 (depends on 1)

The method of claim 1, the recovery operation is performed in response to detecting one or more of the storage devices are recovering from a failure.

### Claim 9 (depends on 1)

The method of claim 1, wherein the number of blocks determined to be trimmed blocks is configurable.

### Claim 10

A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to perform a process, the process comprising:
selecting, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure;
comparing the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and
performing a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

### Claim 11

A system for comparing mirrored storage devices, comprising:
a processing circuitry; and
a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:
select, from a storage slice of a first storage device and at least a second storage device, corresponding storage blocks that are not trimmed blocks, wherein trimmed blocks are blocks within a storage device marked for erasure;
compare the corresponding storage blocks such that a non-trimmed block of the first storage device is compared to a corresponding non-trimmed block of the second storage device to determine which storage blocks do not match; and
perform a recovery operation between the non-trimmed block of the first storage device and a non-matching corresponding first non-trimmed block of the second storage device.

### Claim 12 (depends on 11)

The system of claim 11, wherein the system is further configured to:
mark all blocks of the slice as trimmed blocks when it is determined that the slice contains any blocks that are trimmed.

### Claim 13 (depends on 11)

The system of claim 11, wherein the system is further configured to:
trim a block in the at least a second storage device when a corresponding block of a first storage device is determined to be trimmed.

### Claim 14 (depends on 11)

The system of claim 11, wherein the determination if a block is trimmed is based on metadata describing the contents of the block.

### Claim 15 (depends on 11)

The system of claim 11, wherein comparing the non-trimmed blocks of the first storage to the non-trimmed blocks of the second storage comprises comparing metadata of the first block and metadata of the second block.

### Claim 16 (depends on 15)

The system of claim 15, wherein the metadata a hash value of the contents of the non-trimmed block.

### Claim 17 (depends on 15)

The system of claim 15, wherein the metadata a timestamp value indicating when the contents of the non-trimmed block were written, and wherein it is determined that the more recent of the blocks is a mirrored block.

### Claim 18 (depends on 11)

The system of claim 11, the recovery operation is performed in response to detecting one or more of the storage devices are recovering from a failure.

### Claim 19 (depends on 11)

The system of claim 11, wherein the number of blocks determined to be trimmed blocks is configurable.
