# US 9,436,750 B2 · Frame based data replication in a cloud computing environment

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

- Number: US 9,436,750 B2
- Document ID: US9436750B2
- Status: Granted
- Kind: B2
- Application number: 14/072,988
- Filed: 2013-11-06
- Published: 2015-05-07
- Granted: 2016-09-06
- Earliest claimed: 2013-11-06
- Assignees: Verizon Patent and Licensing Inc.
- Applicants: Verizon Patent and Licensing Inc.
- Inventors: Alex Iannicelli; Kishore Chitrapu; Jeffrey M. Bloom; Paul M. Curtis
- Web page: https://patentgrep.com/patent/US9436750B2

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 16/10: File systems; File servers
- G06F 16/20: of structured data, e.g. relational data
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/93: Document management systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A device may receive information associated with a write operation to be performed on a storage volume included in a cloud computing environment, and may divide the information into a group of write frames. Each write frame may include a respective portion of the information. The device may determine information that identifies members of a replication set associated with the storage volume. The device may provide each write frame to each member. The device may receive a reply frame, associated with a write frame, from a member. The device may determine that the reply frame is a last reply frame associated with the write frame and may modify source information to form a modified reply frame. The device may provide the modified reply frame. The modified reply frame may be provided to indicate that the portion of the write operation, associated with the write frame, has been successfully performed.

## Claims

### Claim 1

A device, comprising:
one or more processors to:
receive information associated with a write operation to be performed on a storage volume included in a cloud computing environment;
divide the information associated with the write operation into a plurality of write frames,
each write frame, of the plurality of write frames, including a respective portion of the information associated with the write operation;
determine information that identifies members of a replication set associated with the storage volume;
provide each write frame to each member of the replication set;
receive a first reply frame, associated with a write frame of the plurality of write frames, from a first member of the replication set;
determine that the first reply frame is not a last reply frame associated with the write frame of the plurality of write frames;
drop the first reply frame based on determining that the first reply frame is not the last reply frame associated with the write frame of the plurality of write frames,
the first reply frame being dropped such that the first reply frame is deleted by the storage volume, and
the first reply frame being dropped to indicate that the write operation, associated with the write frame, is incomplete;
receive a second reply frame, associated with the write frame of the plurality of write frames, from a second member of the replication set,
the second member of the replication set being different from the first member of the replication set;
determine that the second reply frame is the last reply frame associated with the write frame of the plurality of write frames;
modify source information, included in the last reply frame, to form a modified reply frame,
the modified reply frame identifying the storage volume as a source of the modified reply frame rather than the second member of the replication set as the source of the modified reply frame; and
provide the modified reply frame,
the modified reply frame being provided to indicate that a portion of the write operation, corresponding to the write frame, has been successfully performed, and
the modified reply frame being provided to permit a determination that that write operation has been successfully performed.

### Claim 2 (depends on 1)

The device of claim 1, where the one or more processors are further to:
receive information associated with an agreement between a user and a service provider of the cloud computing environment;
store the information associated with agreement; and
where the one or more processors, when determining the information that identifies the members of the replication set, are to:
determine the information that identifies the members of the replication set based on the stored information.

### Claim 3 (depends on 1)

The device of claim 1, where the one or more processors are further to:
create a first copy of each write frame of the plurality of write frames;
modify the first copy of each write frame to include information that identifies the first member of the replication set;
create a second copy of each write frame of the plurality of write frames;
modify the second copy of each write frame to include information that identifies the second member of the replication set; and
where the one or more processors when providing each write frame to each member of the replication set, are to:
provide the modified first copy of each write frame to the first member of the replication set; and
provide the modified second copy of each write frame to the second member of the replication set.

### Claim 4 (depends on 1)

The device of claim 1, where the one or more processors are further to:
store reply count information associated with each write frame based on providing each write frame to each member of the replication set,
the reply count information including a quantity of reply counts equal to a quantity of the plurality of write frames,
each reply count being based on a quantity of members of the replication set.

### Claim 5 (depends on 1)

The device of claim 1, where the one or more processors, are further to:
decrement a reply count, associated with the write frame, based on receiving the second reply frame associated with the write frame; and
where the one or more processors, when determining that the second reply frame is the last reply frame associated with the write frame, are to:
determine that the second reply frame is the last reply frame based on the decremented reply count.

### Claim 6 (depends on 1)

The device of claim 1, where the one or more processors are further to:
identify the storage volume as a destination associated with the write operation; and
where the one or more processors, when modifying the source information included in the last reply frame to form the modified reply frame that identifies the storage volume as a source of the modified reply frame, are to:
modify the source information to include the information that identifies the storage volume based on identifying the storage volume as the destination associated with the write operation.

### Claim 7 (depends on 1)

The device of claim 1, where the one or more processors are further to:
determine that the write operation, associated with the storage volume, has been successfully performed; and
provide information that indicates that the write operation has been successfully performed.

### Claim 8

A non-transitory computer-readable medium storing instructions, the instructions comprising:
one or more instructions that, when executed by one or more processors, cause the one or more processors to:
receive information associated with a write operation to be performed on a storage volume included in a cloud computing environment;
divide the information associated with the write operation into a plurality of write frames,
each write frame, of the plurality of write frames, including a respective portion of the information associated with the write operation;
determine information that identifies members of a replication set associated with the storage volume;
provide each write frame to each member of the replication set;
receive a first reply frame, associated with a write frame of the plurality of write frames, from a first member of the replication set;
determine that the first reply frame is not a last reply frame associated with the write frame of the plurality of write frames;
drop the first reply frame based on determining that the first reply frame is not the last reply frame associated with the write frame of the plurality of write frames,
the first reply frame being dropped such that the first reply frame is deleted by the storage volume, and
the first reply frame being dropped to indicate that the write operation, associated with the write frame, is incomplete;
receive a second reply frame, associated with the write frame of the plurality of write frames, from a second member of the replication set;
determine that the second reply frame is the last reply frame associated with the write frame of the plurality of write frames,
the second member of the replication set being different from the first member of the replication set;
modify source information, included in the last reply frame, to form a modified reply frame,
the modified reply frame identifying the storage volume as a source of the modified reply frame rather than the second member of the replication set as the source of the modified reply frame; and
provide the modified reply frame,
the modified reply frame being provided to indicate that a portion of the write operation, corresponding to the write frame, has been successfully performed, and
the modified reply frame being provided to permit a determination that that write operation has been successfully performed.

### Claim 9 (depends on 8)

The non-transitory computer-readable medium of claim 8, where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
receive information associated with an agreement between a user and a service provider of the cloud computing environment;
store the information associated with agreement; and
where the one or more instructions, that cause the one or more processors to determine the information that identifies the members of the replication set, cause the one or more processors to:
determine the information that identifies the members of the replication set based on the stored information.

### Claim 10 (depends on 8)

The non-transitory computer-readable medium of claim 8, where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
create a first copy of each write frame of the plurality of write frames;
modify the first copy of each write frame to include information that identifies the first member of the replication set;
create a second copy of each write frame of the plurality of write frames;
modify the second copy of each write frame to include information that identifies second member of the replication set; and
where the one or more instructions, that cause the one or more processors to provide each write frame to each member of the replication set, cause the one or more processors to:
provide the modified first copy of each write frame to the first member of the replication set; and
provide the modified second copy of each write frame to the second member of the replication set.

### Claim 11 (depends on 8)

The non-transitory computer-readable medium of claim 8, where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
store reply count information associated with each write frame based on providing each write frame to each member of the replication set,
the reply count information including a quantity of reply counts equal to a quantity of the plurality of write frames,
each reply count being based on a quantity of members of the replication set.

### Claim 12 (depends on 8)

The non-transitory computer-readable medium of claim 8, where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
decrement a reply count, associated with the write frame, based on receiving the second reply frame associated with the write frame; and
where the one or more instructions, that cause the one or more processors to determine that the second reply frame is the last reply frame associated with the write frame, cause the one or more processors to:
determine that second the reply frame is the last reply frame based on the decremented reply count.

### Claim 13 (depends on 8)

The non-transitory computer-readable medium of claim 8, where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
identify the storage volume as a destination associated with the write operation; and
where the one or more instructions, that cause the one or more processors to modify the source information included in the last reply frame to form the modified reply frame that identifies the storage volume as a source of the modified reply frame, cause the one or more processors to:
modify the source information to include the information that identifies the storage volume based on identifying the storage volume as the destination associated with the write operation.

### Claim 14 (depends on 8)

The non-transitory computer-readable medium of claim 8, where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
determine that the write operation, associated with the storage volume, has been successfully performed; and
provide information that indicates that the write operation has been successfully performed.

### Claim 15

A method, comprising:
receiving, by a device, information associated with a write operation to be performed on a storage volume included in a cloud computing environment;
dividing, by the device, the information associated with the write operation into a plurality of write frames,
each write frame, of the plurality of write frames, including a respective portion of the information associated with the write operation;
determining, by the device, information that identifies members of a replication set associated with the storage volume;
providing, by the device, each write frame to each member of the replication set;
receiving, by the device, a first reply frame, associated with a write frame of the plurality of write frames, from a first member of the replication set;
determining, by the device, that the first reply frame is not a last reply frame associated with the write frame of the plurality of write frames;
dropping, by the device, the first reply frame based on determining that the first reply frame is not the last reply frame associated with the write frame of the plurality of write frames,
the first reply frame being dropped such that the first reply frame is deleted by the storage volume, and
the first reply frame being dropped to indicate that the write operation, associated with the write frame, is incomplete;
receiving, by the device, a second reply frame, associated with the write frame of the plurality of write frames, from a second member of the replication set,
the second member of the replication set being different from the first member of the replication set;
determining, by the device, that the second reply frame is the last reply frame associated with the write frame of the plurality of write frames;
modifying, by the device, source information, included in the last reply frame, to form a modified reply frame,
the modified reply frame identifying the storage volume as a source of the modified reply frame rather than the second member of the replication set as the source of the modified reply frame; and
providing, by the device, the modified reply frame,
the modified reply frame being provided to indicate that a portion of the write operation, corresponding to the write frame, has been successfully performed, and
the modified reply frame being provided to permit a determination that that write operation has been successfully performed.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
receiving information associated with an agreement between a user and a service provider of the cloud computing environment;
storing the information associated with agreement; and
where determining the information that identifies the members of the replication set comprises:
determining the information that identifies the members of the replication set based on the stored information.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
creating a first copy of each write frame of the plurality of write frames; modifying the first copy of each write frame to include information that identifies the first member of the replication set;
creating a second copy of each write frame of the plurality of write frames;
modifying the second copy of each write frame to include information that identifies the second member of the replication set; and
where providing each write frame to each member of the replication set comprises:
providing the modified first copy of each write frame to the first member of the replication set; and
providing the modified second copy of each write frame to the second member of the replication set.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
storing reply count information associated with each write frame based on providing each write frame to each member of the replication set,
the reply count information including a quantity of reply counts equal to a quantity of the plurality of write frames,
each reply count being based on a quantity of members of the replication set.

### Claim 19 (depends on 15)

The method of claim 15, further comprising:
decrementing a reply count, associated with the write frame, based on receiving the second reply frame associated with the write frame; and
where determining that the second reply frame is the last reply frame associated with the write frame comprises:
determining that the second reply frame is the last reply frame based on the decremented reply count.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
identifying the storage volume as a destination associated with the write operation; and
where modifying the source information included in the last reply frame to form the modified reply frame that identifies the storage volume as a source of the modified reply frame comprises:
modifying the source information to include the information that identifies the storage volume based on identifying the storage volume as the destination associated with the write operation.
