IP Library Granted Patent US 11,537,312
Granted Patent B2
US 11,537,312 · App. 17/308,520 · Granted Dec 27, 2022

Maintaining replication consistency during distribution instance changes

Inventors: Adi Bar Shalom (Haifa, IL); Zeev Shusterman (Haifa, IL); Lior Zilpa (Holon, IL); German Goft (Pardess Hanna Karkur, IL); Oren Ashkenazi (Haifa, IL)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/067G06F3/0619
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,537,312
App. No.
17/308,520
Granted
Dec 27, 2022
Kind
B2
Abstract

An apparatus comprises a source system comprising a distribution layer, a management component and a plurality of replication components. The distribution layer is configured to obtain an input-output operation corresponding to an address and to identify a given replication component that corresponds to the address based at least in part on a distribution instance. The distribution layer is configured to assign a first distribution identifier corresponding to the distribution instance to the input-output operation and to provide the input-output operation to the given replication component with the first distribution identifier. The given replication component is configured to obtain a second distribution identifier from the management component and to determine whether or not the first distribution identifier is equal to the second distribution identifier. The given replication component is further configured to perform at least one action on the obtained input-output operation based at least in part on the determination.

Claims (114)

1. An apparatus comprising a source system comprising at least one processing device coupled to memory, the at least one processing device implementing a distribution layer, a management component and a plurality of distributed replication components,

the distribution layer being configured:

to obtain an input-output operation corresponding to an address;

to identify a given replication component of the plurality of distributed replication components that corresponds to the address based at least in part on a distribution instance obtained from the management component;

to assign a first distribution identifier corresponding to the distribution instance to the input-output operation; and

to provide the obtained input-output operation to the given replication component with the first distribution identifier; and

the given replication component being configured:

to obtain a second distribution identifier from the management component;

to determine whether or not the first distribution identifier is equal to the second distribution identifier; and

to perform at least one action on the obtained input-output operation based at least in part on the determination of whether or not the first distribution identifier is equal to the second distribution identifier.

2. The apparatus of claim 1 wherein:

the management component is further configured to perform a distribution change from the distribution instance to a new distribution instance;

the second distribution identifier corresponds to the new distribution instance;

determining whether or not the first distribution identifier is equal to the second distribution identifier comprises determining that the first distribution identifier is not equal to the second distribution identifier; and

performing the at least one action on the obtained input-output operation based at least in part on the determination of whether or not the first distribution identifier is equal to the second distribution identifier comprises failing the input-output operation.

3. The apparatus of claim 1 wherein:

the management component is further configured:

to perform a distribution change from the distribution instance to a new distribution instance; and

to instruct the replication components to close a current open journal barrier;

the given replication component is further configured:

to transmit a portion of the closed journal barrier that is under ownership of the given replication component to a destination system; and

in response to a completion of the transmission of the portion, to provide an indication to the management component that the transmission of the portion is complete.

4. The apparatus of claim 3 wherein the given replication component is further configured:

to determine a transmission distribution identifier for the portion of the closed journal barrier, the transmission distribution identifier corresponding to one or more distribution instances that were utilized while the journal barrier was open; and

to provide an indication of the transmission distribution identifier to the management component.

5. The apparatus of claim 4 wherein the transmission distribution identifier corresponding to one or more distribution instances that were utilized while the journal barrier was open comprises one of:

an indication that a single distribution instance was in use for the journal barrier; and

an indication a mix of distribution instances were in use for the journal barrier.

6. The apparatus of claim 5 wherein the management component is further configured:

to determine that each replication component has indicated that a transmission of the journal barrier is complete;

to determine whether or not any of the replication components provided an indication that a mix of distribution instances were in use for the journal barrier;

responsive to determining that any of the replication components provided an indication that a mix of distribution instances were in use, to generate a full transmission distribution identifier for the closed journal barrier that indicates that a mix of distribution instances were used;

responsive to determining that none of the replication components provided an indication that a mix of distribution instances were in use, to generate a full transmission distribution identifier for the closed journal barrier that indicates that only one distribution instance was used; and

to provide the full transmission distribution identifier and an indication that the closed journal barrier is fully transmitted to the destination system.

7. The apparatus of claim 6 wherein the destination system is configured:

based on a receipt of the indication that the transmission of the closed journal barrier is complete, to add the closed journal barrier to a queue of journal barriers that are ready to be committed to storage;

to identify a journal barrier of the queue of journal barriers to which replication components of the destination system will commit asynchronously to storage, the identification of the journal barrier of the queue of journal barriers comprising:

determining an earliest journal barrier in the queue of journal barriers that has a corresponding full transmission distribution identifier that indicates that a mix of distribution instances were used; and

identifying a journal barrier that is prior to the earliest journal barrier that has the corresponding full transmission distribution identifier that indicates that the mix of distribution instances were used as the journal barrier to which the replication components of the destination system will commit asynchronously to storage.

8. A method comprising:

obtaining, by a distribution layer of a source system, an input-output operation corresponding to an address;

identifying, by the distribution layer, a given replication component of a plurality of distributed replication components of the source system that corresponds to the address based at least in part on a distribution instance obtained from a management component of the source system;

assigning, by the distribution layer, a first distribution identifier corresponding to the distribution instance to the input-output operation;

providing, by the distribution layer, the obtained input-output operation to the given replication component with the first distribution identifier;

obtaining, by the given replication component, a second distribution identifier from the management component;

determining, by the given replication component, whether or not the first distribution identifier is equal to the second distribution identifier; and

performing, by the given replication component, at least one action on the obtained input-output operation based at least in part on the determination of whether or not the first distribution identifier is equal to the second distribution identifier;

wherein the source system comprises at least one processing device coupled to memory that implements the distribution layer, management component and plurality of distributed replication components and the method is implemented by the source system.

9. The method of claim 8 wherein:

the method further comprises performing, by the management component, a distribution change from the distribution instance to a new distribution instance;

the second distribution identifier corresponds to the new distribution instance;

determining whether or not the first distribution identifier is equal to the second distribution identifier comprises determining that the first distribution identifier is not equal to the second distribution identifier; and

performing the at least one action on the obtained input-output operation based at least in part on the determination of whether or not the first distribution identifier is equal to the second distribution identifier comprises failing the input-output operation.

10. The method of claim 8 wherein the method further comprises:

performing, by the management component, a distribution change from the distribution instance to a new distribution instance; and

instructing, by the management component, the replication components to close a current open journal barrier;

transmitting, by the given replication component, a portion of the closed journal barrier that is under ownership of the given replication component to a destination system; and

in response to a completion of the transmission of the portion, providing, by the given replication component, an indication to the management component that the transmission of the portion is complete.

11. The method of claim 10 wherein the method further comprises:

determining, by the given replication component, a transmission distribution identifier for the portion of the closed journal barrier, the transmission distribution identifier corresponding to one or more distribution instances that were utilized while the journal barrier was open; and

providing, by given replication component, an indication of the transmission distribution identifier to the management component.

12. The method of claim 11 wherein the transmission distribution identifier corresponding to one or more distribution instances that were utilized while the journal barrier was open comprises one of:

an indication that a single distribution instance was in use for the journal barrier; and

an indication a mix of distribution instances were in use for the journal barrier.

13. The method of claim 12 wherein the method further comprises:

determining, by the management component, that each replication component has indicated that a transmission of the journal barrier is complete;

determining, by the management component, whether or not any of the replication components provided an indication that a mix of distribution instances were in use for the journal barrier;

responsive to determining that any of the replication components provided an indication that a mix of distribution instances were in use, generating, by the management component, a full transmission distribution identifier for the closed journal barrier that indicates that a mix of distribution instances were used;

responsive to determining that none of the replication components provided an indication that a mix of distribution instances were in use, generating, by the management component, a full transmission distribution identifier for the closed journal barrier that indicates that only one distribution instance was used; and

providing, by the management component, the full transmission distribution identifier and an indication that the closed journal barrier is fully transmitted to the destination system.

14. The method of claim 13 wherein the destination system is configured:

based on a receipt of the indication that the transmission of the closed journal barrier is complete, to add the closed journal barrier to a queue of journal barriers that are ready to be committed to storage;

to identify a journal barrier of the queue of journal barriers to which replication components of the destination system will commit asynchronously to storage, the identification of the journal barrier of the queue of journal barriers comprising:

determining an earliest journal barrier in the queue of journal barriers that has a corresponding full transmission distribution identifier that indicates that a mix of distribution instances were used; and

identifying a journal barrier that is prior to the earliest journal barrier that has the corresponding full transmission distribution identifier that indicates that the mix of distribution instances were used as the journal barrier to which the replication components of the destination system will commit asynchronously to storage.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device of a source system, the at least one processing device comprising a processor coupled to memory and implementing a distribution layer, a management component and a plurality of distributed replication components:

causes the distribution layer:

to obtain an input-output operation corresponding to an address;

to identify a given replication component of the plurality of distributed replication components that corresponds to the address based at least in part on a distribution instance obtained from the management component;

to assign a first distribution identifier corresponding to the distribution instance to the input-output operation; and

to provide the obtained input-output operation to the given replication component with the first distribution identifier; and

causes the given replication component:

to obtain a second distribution identifier from the management component;

to determine whether or not the first distribution identifier is equal to the second distribution identifier; and

to perform at least one action on the obtained input-output operation based at least in part on the determination of whether or not the first distribution identifier is equal to the second distribution identifier.

16. The computer program product of claim 15 wherein:

the program code further causes the management component to perform a distribution change from the distribution instance to a new distribution instance;

the second distribution identifier corresponds to the new distribution instance;

determining whether or not the first distribution identifier is equal to the second distribution identifier comprises determining that the first distribution identifier is not equal to the second distribution identifier; and

performing the at least one action on the obtained input-output operation based at least in part on the determination of whether or not the first distribution identifier is equal to the second distribution identifier comprises failing the input-output operation.

17. The computer program product of claim 15 wherein:

the program code further causes the management component:

to perform a distribution change from the distribution instance to a new distribution instance; and

to instruct the replication components to close a current open journal barrier;

the program code further causes the given replication component:

to transmit a portion of the closed journal barrier that is under ownership of the given replication component to a destination system; and

in response to a completion of the transmission of the portion, to provide an indication to the management component that the transmission of the portion is complete.

18. The computer program product of claim 17 wherein the program code further causes the given replication component:

to determine a transmission distribution identifier for the portion of the closed journal barrier, the transmission distribution identifier corresponding to one or more distribution instances that were utilized while the journal barrier was open; and

to provide an indication of the transmission distribution identifier to the management component;

wherein the transmission distribution identifier corresponding to one or more distribution instances that were utilized while the journal barrier was open comprises one of:

an indication that a single distribution instance was in use for the journal barrier;

and an indication a mix of distribution instances were in use for the journal barrier.

19. The computer program product of claim 18 wherein the program code further causes the management component:

to determine that each replication component has indicated that a transmission of the journal barrier is complete;

to determine whether or not any of the replication components provided an indication that a mix of distribution instances were in use for the journal barrier;

responsive to determining that any of the replication components provided an indication that a mix of distribution instances were in use, to generate a full transmission distribution identifier for the closed journal barrier that indicates that a mix of distribution instances were used;

responsive to determining that none of the replication components provided an indication that a mix of distribution instances were in use, to generate a full transmission distribution identifier for the closed journal barrier that indicates that only one distribution instance was used; and

to provide the full transmission distribution identifier and an indication that the closed journal barrier is fully transmitted to the destination system.

20. The computer program product of claim 19 wherein the destination system is configured:

based on a receipt of the indication that the transmission of the closed journal barrier is complete, to add the closed journal barrier to a queue of journal barriers that are ready to be committed to storage;

to identify a journal barrier of the queue of journal barriers to which replication components of the destination system will commit asynchronously to storage, the identification of the journal barrier of the queue of journal barriers comprising:

determining an earliest journal barrier in the queue of journal barriers that has a corresponding full transmission distribution identifier that indicates that a mix of distribution instances were used; and

identifying a journal barrier that is prior to the earliest journal barrier that has the corresponding full transmission distribution identifier that indicates that the mix of distribution instances were used as the journal barrier to which the replication components of the destination system will commit asynchronously to storage.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2021
From: BAR SHALOM, ADI; SHUSTERMAN, ZEEV; ZILPA, LIOR; GOFT, GERMAN; ASHKENAZI, OREN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056182/0963 →
Continuity (1)
Related Publication 20220357853A1 · Nov 10, 2022
Cited By (1)
US 12,367,151