Skip to content
This repository has been archived by the owner on Mar 21, 2019. It is now read-only.

Roll-back strategy and snapshot for each propagation changes. #56

Open
jeannieyeliu opened this issue Dec 31, 2018 · 4 comments
Open

Roll-back strategy and snapshot for each propagation changes. #56

jeannieyeliu opened this issue Dec 31, 2018 · 4 comments
Labels
research Something that neeeds to be researched

Comments

@jeannieyeliu
Copy link
Contributor

jeannieyeliu commented Dec 31, 2018

Snapshot

The Graph Systems needs to record the changes during each Propagation recomputation procedure.
This is mainly for the following purpose:

  1. user wants to roll-back to a certain stage
  2. recomputation gets a ridiculous value
  3. users wants to use certain configuration under different circumstances
@CMCDragonkai
Copy link
Member

This is related to tree versioning. But the main idea is that one may make a change to the graph through an operator change to the Architect expressions. We need to talk about the difference between commands and expressions though, as commands is what performs side effects. Anyway, one a command is made, a rollback can be initiated to go back to any point in version from prior commands.

@jeannieyeliu
Copy link
Contributor Author

tree versioning

Something similar to git version management?

@nzhang-zh
Copy link
Contributor

nzhang-zh commented Dec 31, 2018

  1. recomputation gets a ridiculous value

Invalid computation results should ideally not become a snapshot?

Maybe during graph computation, instead of mutating existing nodes, create new nodes and link to previous version of the same node. So that we have a trail of change history, and for multi layer/step computations, if a later layer/step fails, earlier computation results can simply be discarded.

@nzhang-zh
Copy link
Contributor

Adding on to the purpose of snapshot, apart from user specifying different snapshots, Adaptation/Emergence could keep track of several snapshots as profiles and switch between them based on different metrics such as request per min, time of day, geographical location of request sources etc.

@jeannieyeliu jeannieyeliu added the research Something that neeeds to be researched label Dec 31, 2018
@CMCDragonkai
Copy link
Member

CMCDragonkai commented Jan 1, 2019

I mean similar to MVCC, see persistent data structures.

@jeannieyeliu
Copy link
Contributor Author

@jeannieyeliu
Copy link
Contributor Author

Several ways of tree versioning:

  1. MVCC
  2. Historical entries
  3. purely functional data structure
    such as:
    fat node strategy
    iterator
    snapshot

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
research Something that neeeds to be researched
Development

No branches or pull requests

3 participants