Skip to content

storage/concurrency: expose global view of transaction pushes #45654

@nvb

Description

@nvb

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

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions