# US 12,602,401 B2 · Non-disruptive transition to synchronous replication state

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

- Number: US 12,602,401 B2
- Document ID: US12602401B2
- Status: Granted
- Kind: B2
- Application number: 17/472,723
- Filed: 2021-09-13
- Published: 2021-12-30
- Granted: 2026-04-14
- Earliest claimed: 2019-03-06
- Assignees: NetApp, Inc.
- Applicants: NetApp Inc.
- Inventors: Akhil Kaushik; Anoop Chakkalakkal Vijayan; Preetham Kudgi Shenoy
- Web page: https://patentgrep.com/patent/US12602401B2

## CPC

- G06F 16/275: {Synchronous replication}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques are provided for transitioning a first storage object and a second storage object from an asynchronous replication state to a synchronous replication state. Metadata operations are logged into a metadata log. Dirty data, modified by data operations executed upon the first storage object, are tracked using a dirty region log. Metadata operations are replicated from the metadata log to the second storage object during a metadata drain phase. During the metadata drain phase, incoming operations are logged into the metadata log when the metadata log has a non-zero size, otherwise, the metadata operations are replicated to the second storage object. After the metadata drain phase, a data drain phase is performed using the dirty region log.

## Claims

### Claim 1

A method comprising:
logging metadata operations, executed upon a first storage object, into a metadata log;
tracking dirty data, modified by data operations executed upon the first storage object, into a dirty region log;
replicating the metadata operations from the metadata log to a second storage object during a metadata drain phase, wherein incoming metadata operations are logged into the metadata log during the metadata drain phase;
replicating the dirty data from the first storage object, as indicated by the dirty region log, to the second storage object during a data drain phase triggered in response to completion of the metadata drain phase; and
in response to completion of the metadata drain phase triggering a state transition from the metadata drain phase to the data drain phase where the dirty data is replicated after completion of the metadata drain phase from the metadata log being empty, triggering a transition from logging the incoming metadata operations into the metadata log to replicating the incoming metadata operations to the second storage object.

### Claim 2 (depends on 1)

The method of claim 1, comprising the replicating the metadata operations comprises:
determining whether to log incoming metadata operations into the metadata log or replicate the incoming metadata operations to the second storage object during the metadata drain phase based upon a size of the metadata log.

### Claim 3 (depends on 1)

The method of claim 1, comprising:
perform asynchronous incremental transfers of data of the first storage object from a first computing environment to the second storage object at a second computing environment.

### Claim 4 (depends on 1)

The method of claim 1, comprising:
logging an incoming metadata operation into the metadata log based upon the metadata log having a first size; and
replicating the incoming metadata operation, without logging the incoming metadata operation into the metadata log, based upon the metadata log having a second size.

### Claim 5 (depends on 1)

The method of claim 1, comprising:
serializing replication of the dirty data and the incoming metadata operations using a volume barrier.

### Claim 6 (depends on 1)

The method of claim 1, comprising:
transitioning the first storage object and the second storage object from an asynchronous replication relationship to a synchronous replication relationship based upon the metadata drain phase and the data drain phase completing.

### Claim 7 (depends on 1)

The method of claim 1, comprising:
serializing replication of an incoming metadata operation, being replicated, with metadata operations replicated from the metadata log using a volume barrier.

### Claim 8 (depends on 7)

The method of claim 7, wherein the volume barrier is used to make the second incoming metadata operation and the metadata operations mutually exclusive for acquiring the volume barrier.

### Claim 9 (depends on 1)

The method of claim 1, comprising:
replicating incoming metadata operations to the second storage object based upon a state indicating a transition from the metadata drain phase to the data drain phase where the dirty data is replicated to the second storage object.

### Claim 10

A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to:
log metadata operations, executed upon a first storage object, into a metadata log;
track dirty data, modified by data operations executed upon the first storage object, into a dirty region log;
replicate the metadata operations from the metadata log to a second storage object during a metadata drain phase, wherein incoming metadata operations are logged into the metadata log during the metadata drain phase;
replicate the dirty data from the first storage object, as indicated by the dirty region log, to the second storage object during a data drain phase triggered in response to completion of the metadata drain phase; and
in response to completion of the metadata drain phase triggering a state transition from the metadata drain phase to the data drain phase where the dirty data is replicated after completion of the metadata drain phase from the metadata log being empty, trigger a transition from logging the incoming metadata operations into the metadata log to replicate the incoming metadata operations to the second storage object.

### Claim 11 (depends on 10)

The non-transitory machine readable medium of claim 10, wherein the instructions cause the machine to:
log an incoming metadata operation into the metadata log based upon the metadata log having a first size; and
replicate the incoming metadata operation, without logging the incoming metadata operation into the metadata log, based upon the metadata log having a second size.

### Claim 12 (depends on 11)

The non-transitory machine readable medium of claim 11, wherein the instructions cause the machine to:
serialize replication of the dirty data and the incoming metadata operations using a volume barrier.

### Claim 13 (depends on 10)

The non-transitory machine readable medium of claim 10, wherein the instructions cause the machine to:
transition the first storage object and the second storage object from an asynchronous replication relationship to a synchronous replication relationship based upon the metadata drain phase and the data drain phase completing.

### Claim 14 (depends on 10)

The non-transitory machine readable medium of claim 10, wherein the instructions cause the machine to:
serialize replication of an incoming metadata operation, being replicated, with metadata operations replicated from the metadata log using a volume barrier.

### Claim 15 (depends on 14)

The method of claim 14, wherein the volume barrier is used to make the second incoming metadata operation and the metadata operations mutually exclusive for acquiring the volume barrier.

### Claim 16

A computing device comprising:
a memory comprising machine executable code for performing a method; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
log metadata operations, executed upon a first storage object, into a metadata log;
track dirty data, modified by data operations executed upon the first storage object, into a dirty region log;
replicate the metadata operations from the metadata log to a second storage object during a metadata drain phase, wherein incoming metadata operations are logged into the metadata log during the metadata drain phase;
replicate the dirty data from the first storage object, as indicated by the dirty region log, to the second storage object during a data drain phase triggered in response to completion of the metadata drain phase; and
in response to completion of the metadata drain phase triggering a state transition from the metadata drain phase to the data drain phase where the dirty data is replicated after completion of the metadata drain phase from the metadata log being empty, trigger a transition from logging the incoming metadata operations into the metadata log to replicate the incoming metadata operations to the second storage object.

### Claim 17 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
log an incoming metadata operation into the metadata log based upon the metadata log having a first size; and
replicate the incoming metadata operation, without logging the incoming metadata operation into the metadata log, based upon the metadata log having a second size.

### Claim 18 (depends on 17)

The computing device of claim 17, wherein the machine executable code causes the processor to:
serialize replication of the dirty data and the incoming metadata operations using a volume barrier.

### Claim 19 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
transition the first storage object and the second storage object from an asynchronous replication relationship to a synchronous replication relationship based upon the metadata drain phase and the data drain phase completing.

### Claim 20 (depends on 16)

The computing device of claim 16, wherein the machine executable code causes the processor to:
serialize replication of an incoming metadata operation, being replicated, with metadata operations replicated from the metadata log using a volume barrier.
