> [!TwoPhaseState]
> <table><tr><td rowspan="4" width="25%"><img src="assets/wl_lw_twophasestate.png"></td><td><b>Wait Category</b></td><td>LWLock</td></tr><tr><td><b>Mechanism</b></td><td><code>TwoPhaseStateLock</code></td></tr><tr><td><b>Operations</b></td><td><a href="Operations/Tuple/ModifyTable">ModifyTable</a>, <a href="Operations/Distributed/Redistribute">Redistribute</a></td></tr><tr><td><b>Resources</b></td><td><a href="Resources/RAM">Memory</a>, <a href="Resources/CPU">CPU</a></td></tr><tr><td colspan="3">Contention on the <b>Distributed Transaction Registry</b>. When an application uses <code>PREPARE TRANSACTION</code>, Postgres must store the transaction state (including its locks and XID) in a durable, globally accessible way so that it can be later <code>COMMIT PREPARED</code> or <code>ROLLBACK PREPARED</code>.</td></tr></table>