# US 2014/0195482 A1 · Data synchronization in a storage network

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

- Number: US 2014/0195482 A1
- Document ID: US20140195482A1
- Status: Published application
- Kind: A1
- Application number: 14/137,691
- Filed: 2013-12-20
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Applicants: Lyve Minds, Inc.
- Inventors: Christian M. Kaiser; Julie A. Pitt; Rick Pasetto; Stephen Sewerynek
- Web page: https://patentgrep.com/patent/US20140195482A1

## CPC

- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/064: {Management of blocks}
- G06F 3/0649: {Lifecycle management}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- G06F 12/023: {Free address space management}
- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 16/275: {Synchronous replication}
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method of synchronizing data may include receiving, by a first storage agent, a recent second-agent synchronization point. The recent second-agent synchronization point may be associated with a recent second-agent synchronization time of a second-agent synchronization between a second storage agent and a third storage agent. The method may further include determining, based on the recent second-agent synchronization point, a first-agent baseline synchronization point. The first-agent baseline synchronization point may be associated with a first-agent baseline synchronization time of a first-agent synchronization between the first storage agent and the third storage agent that occurred before the second-agent synchronization time. Additionally, the method may include establishing a first-agent baseline of synchronization of data between the first storage agent and the second storage agent based on the first-agent baseline synchronization point.

## Claims

### Claim 1

A method of synchronizing data, the method comprising:
receiving, by a first storage agent, a recent second-agent synchronization point associated with a recent second-agent synchronization time of a second-agent synchronization between a second storage agent and a third storage agent;
determining, based on the recent second-agent synchronization point, a first-agent baseline synchronization point associated with a first-agent baseline synchronization time of a first-agent synchronization between the first storage agent and the third storage agent that occurred before the second-agent synchronization time; and
establishing a first-agent baseline of synchronization of data between the first storage agent and the second storage agent based on the first-agent baseline synchronization point.

### Claim 2 (depends on 1)

The method of claim 1, further comprising determining data that was updated by the first storage agent after the first-agent baseline synchronization time based on the first-agent baseline.

### Claim 3 (depends on 2)

The method of claim 2, further comprising communicating, to the second storage agent, the data that was updated by the first storage agent after the first-agent baseline synchronization time.

### Claim 4 (depends on 1)

The method of claim 1, wherein the recent second-agent synchronization point is associated with a most recent second-agent synchronization between the second storage agent and the third storage agent.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first-agent baseline synchronization point is associated with a latest first-agent synchronization between the first storage agent and the third storage agent that occurred before the recent second-agent synchronization time.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
transmitting, by the first storage agent to the second storage agent, a recent first-agent synchronization point associated with a recent first-agent synchronization time of a recent first-agent synchronization between the first storage agent and the third storage agent;
receiving, by the first storage agent from the second storage agent, data that was updated by the second storage agent after the recent first-agent synchronization time as determined based on a second-agent baseline related to a second-agent baseline synchronization point associated with a second-agent baseline synchronization time of the second storage agent with the third storage agent that occurred before the recent first-agent synchronization time; and
reconciling the data received from the second storage agent with corresponding data stored on the first storage agent.

### Claim 7 (depends on 6)

The method of claim 6, wherein the reconciling comprises:
determining whether the received data is older than the corresponding data stored on the first storage agent;
when the received data is older than the corresponding data, ignoring the received data; and
when the received data is newer than the corresponding data, replacing the corresponding data with the received data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the recent second-agent synchronization point includes one or more of: version numbers of the second storage agents and the third storage agent, identifiers of the second storage agent and the third storage agent, and locally-assigned version numbers of the data involved in the second-agent synchronization between the second storage agent and the third storage agent.

### Claim 9

A method of synchronizing data, the method comprising:
transmitting, by a first storage agent to a second storage agent, a recent first-agent synchronization point associated with a recent first-agent synchronization time of a first-agent synchronization between the first storage agent with a third storage agent;
receiving, by the first storage agent from the second storage agent, data that was updated by the second storage agent as determined based on a second-agent baseline that is established based on a second-agent baseline synchronization point associated with a second-agent baseline synchronization time of a second-agent baseline synchronization of the second storage agent with the third storage agent that occurred before the recent first-agent synchronization time; and
reconciling the data received from the second storage agent with corresponding data stored on the first storage agent.

### Claim 10 (depends on 9)

The method of claim 9, wherein the recent first-agent synchronization point is associated with a most recent first-agent synchronization between the first storage agent and the third storage agent.

### Claim 11 (depends on 9)

The method of claim 9, wherein the second-agent baseline synchronization point is associated with a latest second-agent synchronization between the second storage agent and the third storage agent that occurred before the first-agent synchronization time.

### Claim 12 (depends on 9)

The method of claim 9, wherein the reconciling comprises:
determining whether the received data is older than the corresponding data stored on the first storage agent;
when the received data is older than the corresponding data, ignoring the received data; and
when the received data is newer than the corresponding data, replacing the corresponding data with the received data.

### Claim 13

A computer-readable storage medium including instructions that cause a system to perform operations to allocate data to a storage agent of a storage network, the operations comprising:
receiving, by a first storage agent, a recent second-agent synchronization point associated with a recent second-agent synchronization time of a second-agent synchronization between a second storage agent and a third storage agent;
determining, based on the recent second-agent synchronization point, a first-agent baseline synchronization point associated with a first-agent baseline synchronization time of a first-agent synchronization between the first storage agent and the third storage agent that occurred before the second-agent synchronization time; and
establishing a first-agent baseline of synchronization of data between the first storage agent and the second storage agent based on the first-agent baseline synchronization point.

### Claim 14 (depends on 13)

The computer-readable storage medium of claim 13, wherein the operations further comprise determining data that was updated by the first storage agent after the first-agent baseline synchronization time based on the first-agent baseline.

### Claim 15 (depends on 14)

The computer-readable storage medium of claim 14, wherein the operations further comprise communicating, to the second storage agent, the data that was updated by the first storage agent after the first-agent baseline synchronization time.

### Claim 16 (depends on 13)

The computer-readable storage medium of claim 13, wherein the recent second-agent synchronization point is associated with a most recent second-agent synchronization between the second storage agent and the third storage agent.

### Claim 17 (depends on 13)

The computer-readable storage medium of claim 13, wherein the first-agent baseline synchronization point is associated with a latest first-agent synchronization between the first storage agent and the third storage agent that occurred before the recent second-agent synchronization time.

### Claim 18 (depends on 13)

The computer-readable storage medium of claim 13, wherein the operations further comprise:
transmitting, by the first storage agent to the second storage agent, a recent first-agent synchronization point associated with a recent first-agent synchronization time of a recent first-agent synchronization between the first storage agent and the third storage agent;
receiving, by the first storage agent from the second storage agent, data that was updated by the second storage agent after the recent first-agent synchronization time as determined based on a second-agent baseline related to a second-agent baseline synchronization point associated with a second-agent baseline synchronization time of the second storage agent with the third storage agent that occurred before the recent first-agent synchronization time; and
reconciling the data received from the second storage agent with corresponding data stored on the first storage agent.

### Claim 19 (depends on 18)

The computer-readable storage medium of claim 18, wherein the reconciling comprises:
determining whether the received data is older than the corresponding data stored on the first storage agent;
when the received data is older than the corresponding data, ignoring the received data; and
when the received data is newer than the corresponding data, replacing the corresponding data with the received data.

### Claim 20 (depends on 13)

The computer-readable storage medium of claim 13, wherein the recent second-agent synchronization point includes one or more of: version numbers of the second storage agents and the third storage agent, identifiers of the second storage agent and the third storage agent, and locally-assigned version numbers of the data involved in the second-agent synchronization between the second storage agent and the third storage agent.
