Distributed consistency group at splitter
One example method includes intercepting an IO that is directed to a volume, writing the IO to a grid-CG that is one of a plurality of grid-CGs that collectively form a distributed CG, adding the IO to a stream journal associated with the grid-CG, receiving a bookmark request, in response to the bookmark request, inserting a bookmark in the stream journal, incrementing a splitter counter and broadcasting a splitter counter value to the grid-CGs in the distributed CG, and inserting the bookmark in respective stream journals of the grid-CGs in the distributed CG.
1. A method, comprising: intercepting an input/output operation (IO) that is directed to a volume;
writing the IO to a grid-consistency group (grid-CG) of a plurality of grid-CGs that collectively form a distributed CG;
adding the IO to a stream journal of the grid-CG of the plurality of CG grid-CGs;
receiving a bookmark request;
in response to the bookmark request, generating a bookmark and inserting the bookmark in the stream journal;
incrementing a splitter counter value and broadcasting the incremented splitter counter value to grid-CGs in the distributed CG other than the grid-CG;
inserting the bookmark in respective stream journals of the grid-CGs in the distributed CG other than the grid-CG; and
in a case where the bookmark cannot be inserted in the respective stream journals to maintain write order fidelity, rearranging one or more writes in one or more stream journals and then inserting the bookmark in the one or more stream journals such that the write order fidelity is maintained across the distributed CG.
2. The method as recited in claim 1 , wherein the IO is intercepted by a splitter, and written to the grid-CG by the splitter.
3. The method as recited in claim 1 , wherein the IO is issued by an application at a VM.
4. The method as recited in claim 1 , wherein the bookmark is inserted in the respective stream journals such that write order fidelity is maintained across the distributed CG.
5. The method as recited in claim 1 , wherein the IO is one of a plurality of Ios received by a splitter and distributed by the splitter amongst the plurality of grid-CGs.
6. The method as recited in claim 1 , wherein the IO is one of a plurality of Ios received by a group of splitters, and the group of splitters distributes the plurality of Ios among the plurality of grid-CGs such that write order fidelity is maintained across the distributed CG.
7. The method as recited in claim 1 , further comprising writing the IO to the volume after the IO is acknowledged by the grid-CG.
8. The method as recited in claim 1 , wherein one or more of the grid-CGs comprises a data protection appliance (DPA).
9. The method as recited in claim 1 , wherein the plurality of grid-CGs use the splitter counter value to determine where, in their respective stream journals, the bookmark should be inserted.
10. A non-transitory storage medium having stored therein instructions that are executable by one or more hardware processors to perform operations comprising:
intercepting an input/output operation (IO) that is directed to a volume;
writing the IO to a grid-consistency group (grid-CG) a plurality of grid-CGs that collectively form a distributed CG;
adding the IO to a stream journal of the grid-CG of the plurality of Cg grid-CGs;
receiving a bookmark request;
in response to the bookmark request, generating a bookmark and inserting the bookmark in the stream journal;
incrementing a splitter counter value and broadcasting the incremented splitter counter value to the plurality of grid-CGs in the distributed CG other than the grid-CG;
inserting the bookmark in respective stream journals of grid-CGs in the distributed CG other than the grid-CG; and
in a case where the bookmark cannot be inserted in the respective stream journals to maintain write order fidelity, rearranging one or more writes in one or more stream journals and then inserting the bookmark in the one or more stream journals such that the write order fidelity is maintained across the distributed CG.
11. The non-transitory storage medium as recited in claim 10 , wherein the IO is intercepted by a splitter, and written to the grid-CG by the splitter.
12. The non-transitory storage medium as recited in claim 10 , wherein the IO is issued by an application at a VM.
13. The non-transitory storage medium as recited in claim 10 , wherein the bookmark is inserted in the respective stream journals such that write order fidelity is maintained across the distributed CG.
14. The non-transitory storage medium as recited in claim 10 , wherein the IO is one of a plurality of Ios received by a splitter and distributed by the splitter amongst the plurality of grid-CGs.
15. The non-transitory storage medium as recited in claim 10 , wherein the IO is one of a plurality of IOs received by a group of splitters, and the group of splitters distributes the plurality of IOs among the plurality of grid-CGs such that write order fidelity is maintained across the distributed CG.
16. The non-transitory storage medium as recited in claim 10 , wherein the operations further comprise writing the IO to the volume after the IO is acknowledged by the grid-CG.
17. The non-transitory storage medium as recited in claim 10 , wherein one or more of the grid-CGs comprises a data protection appliance (DPA).
18. The non-transitory storage medium as recited in claim 10 , wherein the plurality of grid-CGs use the incremented splitter counter value to determine where, in their respective stream journals, the bookmark should be inserted.