# US 2021/0240348 A1 · Method and system for bitmap-based synchronous replication

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

- Number: US 2021/0240348 A1
- Document ID: US20210240348A1
- Status: Published application
- Kind: A1
- Application number: 16/778,022
- Filed: 2020-01-31
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Tianfang Xiong; Wai Yim; Yifeng Lu; Young Yang
- Web page: https://patentgrep.com/patent/US20210240348A1

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/0673: {Single storage device}
- G06F 16/2237: {Vectors, bitmaps or matrices}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method is used for bitmap-based synchronous replication in a data protection system. The method includes, upon re-establishing communication with a first storage node, requesting, by a second storage node, a first bitmap from the first storage node. The method includes determining, by the second storage node, a set of data blocks to change on the first storage node based on the first bitmap and a second bitmap on the second storage node. The method also includes sending, by the second storage node to the first storage node, the set of data blocks.

## Claims

### Claim 1

A method for bitmap-based synchronous replication in a data storage system, the method comprising:
upon re-establishing communication with a first storage node, requesting, by a second storage node, a first bitmap from the first storage node;
determining, by the second storage node, a set of data blocks to change on the first storage node based on the first bitmap and a second bitmap on the second storage node; and
sending, by the second storage node to the first storage node, the set of data blocks.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the set of data blocks to change on the first storage node comprises:
identifying data blocks corresponding to set bits in the first bitmap and set bits in the second bitmap.

### Claim 3 (depends on 1)

The method of claim 1, wherein determining the set of data blocks to change on the first storage node comprises:
merging, by the second storage node, the first bitmap and the second bitmap; and
identifying, by the second storage node, the set of data blocks based on set bits in the merged bitmap.

### Claim 4 (depends on 3)

The method of claim 3, wherein merging the first bitmap and the second bitmap comprises:
setting bits in the second bitmap based on the bits that are set in the first bitmap.

### Claim 5 (depends on 1)

The method of claim 1, wherein set bits in the first bitmap correspond to a first set of data blocks that are inconsistent between the first and second storage nodes.

### Claim 6 (depends on 1)

The method of claim 1, wherein set bits in the second bitmap correspond to a second set of data blocks that are inconsistent between the first and second storage nodes.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving, by the second storage node, confirmation from the first storage node that a data block in the set of data blocks has been stored on the first storage node; and
clearing, by the second storage node, the bit in the second bitmap corresponding to the data block whose storage has been confirmed.

### Claim 8

A system for use in bitmap-based synchronous replication in a data storage system, the system comprising a processor configured to:
upon re-establishing communication with a first storage node, request a first bitmap from the first storage node;
determine a set of data blocks to change on the first storage node based on the first bitmap and a second bitmap on a second storage node; and
send the set of data blocks from the second storage node to the first storage node.

### Claim 9 (depends on 8)

The system of claim 8, wherein the processor is further configured to:
identify data blocks corresponding to set bits in the first bitmap and set bits in the second bitmap.

### Claim 10 (depends on 8)

The system of claim 8, wherein the processor is further configured to:
merge the first bitmap and the second bitmap; and
identify the set of data blocks based on set bits in the merged bitmap.

### Claim 11 (depends on 10)

The system of claim 10, wherein the processor is further configured to:
set bits in the second bitmap based on the bits that are set in the first bitmap.

### Claim 12 (depends on 8)

The system of claim 8, wherein set bits in the first bitmap correspond to a first set of data blocks that are inconsistent between the first and second storage nodes.

### Claim 13 (depends on 8)

The system of claim 8, wherein set bits in the second bitmap correspond to a second set of data blocks that are inconsistent between the first and second storage nodes.

### Claim 14 (depends on 8)

The system of claim 8, wherein the processor is further configured to:
receive confirmation from the first storage node that a data block in the set of data blocks has been stored on the first storage node; and
clear the bit in the second bitmap corresponding to the data block whose storage has been confirmed.
