Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ajdavis/e544cbbf66d29d4fc626a254135d8471 to your computer and use it in GitHub Desktop.
Save ajdavis/e544cbbf66d29d4fc626a254135d8471 to your computer and use it in GitHub Desktop.
digraph gc {
rankdir = LR
labelloc = t
label = "ClientSession state transitions. 'insert' stands for any operation.
'error' isn't a permanent state, it just represents throwing an error.
"
subgraph { initial [shape="rectangle"] }
in_progress [label="in progress"]
initial -> none
none -> starting [label="start"]
none -> none [label="insert"]
none -> error [label="commit/abort"]
starting -> in_progress [label="insert"]
starting -> committed [label="commit"]
starting -> aborted [label="abort"]
starting -> error [label="start"]
in_progress -> committed [label="commit"]
in_progress -> aborted [label="abort"]
in_progress -> in_progress [label="insert"]
in_progress -> error [label="start"]
aborted -> none [label="insert"]
aborted -> starting [label="start"]
aborted -> error [label="commit/abort"]
committed -> none [label="insert"]
committed -> starting [label="start"]
committed -> error [label="abort"]
committed -> committed [label="commit"]
error
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment