-
Notifications
You must be signed in to change notification settings - Fork 4.1k
storage/concurrency: expose global view of transaction pushes #45654
Description
We currently don't have a way to observe the full state of transaction pushes in the system at a point in time. This is very useful information when trying to debug transaction deadlocks (see #45603 for an example). We should either see a cycle in the graph, in which case we know that distributed deadlock detection has failed or we should see a tree, in which case we know that the txn at the root is clogging up the system.
This analysis is possible through some hacky tricks with net/trace, but we should expose it as a first-class citizen in our debug pages. We should be able to grab the txn push edges from the TxnWaitQueue on each node in the cluster and output the edges in a .dot format. Users can then pass this to graphviz to generate the full graph of txn pushes in the system.
Jira issue: CRDB-5140