> [!SerializablePredicateList]
> <table><tr><td rowspan="4" width="25%"><img src="assets/wl_lw_serializablepredicatelist.png"></td><td><b>Wait Category</b></td><td>LWLock</td></tr><tr><td><b>Mechanism</b></td><td><code>SerializablePredicateListLock</code></td></tr><tr><td><b>Operations</b></td><td><a href="Operations/Table/SeqScan">SeqScan</a>, <a href="Operations/Index/IndexScan">IndexScan</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"><b>SSI Session Metadata Access Barrier</b>. Every <code>SERIALIZABLE</code> transaction maintains a private (but in shared memory) list of all the gaps and rows it has touched, which must be scanned during conflict detection.</td></tr></table>