I have a directed graph data structure, where I am trying to implement individual version control for each vertex. This creates some interesting scenarios, and I would much appreciate any ideas that you guys have. Specifically, I am looking to resolve the default behavior of the system when encountering the stated scenarios.
See the following image: Graph versions
Scenario 1: "The Null Pointer Paradox"
Vertex A is rolled back to version 1.0. Since this rollback will cascade down its subgraph, C will no longer be pointing to D. This could create a hazard. Should the behavior be to:
Scenario 2: "Indirect Effects"
Vertex D is updated, so that the following holds:
Vertex A is now rolled back to version 1.2, so that the following holds:
Should the default behavior be to: