Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ajdavis/046e4bd3eb86bc3bea734c7fd1cb176b to your computer and use it in GitHub Desktop.
Save ajdavis/046e4bd3eb86bc3bea734c7fd1cb176b to your computer and use it in GitHub Desktop.
digraph gc {
rankdir = LR
label = "ClientSession state transitions. 'insert' stands for any operation.
'error' isn't a permanent state, it just represents throwing an error.
"
labelloc = t
subgraph cluster_autostart {
label = autoStartTransaction
subgraph { as_initial [shape="rectangle"] }
as_in_progress [label="in progress"]
as_initial [label="initial"]
as_none [label="none"]
as_starting [label="starting"]
as_in_progress [label="in_progress"]
as_committed [label="committed"]
as_error [label="error"]
as_initial -> as_none
as_none -> as_starting [label="start"]
as_none -> as_in_progress [label="insert"]
as_none -> as_committed [label="commit"]
as_none -> as_none [label="abort"]
as_starting -> as_error [label="start"]
as_starting -> as_in_progress [label="insert"]
as_starting -> as_committed [label="commit"]
as_starting -> as_none [label="abort"]
as_in_progress -> as_error [label="start"]
as_in_progress -> as_in_progress [label="insert"]
as_in_progress -> as_committed [label="commit"]
as_in_progress -> as_none [label="abort"]
as_committed -> as_starting [label="start"]
as_committed -> as_in_progress [label="insert"]
as_committed -> as_committed [label="commit"]
as_committed -> as_none [label="abort"]
as_error
}
subgraph cluster_no_autostart {
label = "no autoStartTransaction"
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