On Wed, Apr 20, 2022 at 07:11:37PM -0700, Benjamin Tingle wrote: > @ the first point about write locks > I think I had/have a misconception about how inserts work in postgres. It's > my understanding that postgres will never draft a parallel insert plan for > any query (except maybe CREATE TABLE AS?) It's correct that DML (INSERT/UPDATE/DELETE) currently is not run in parallel. https://www.postgresql.org/docs/current/when-can-parallel-query-be-used.html > because the process needs to acquire an exclusive access write lock to the > table it is inserting on. But this is incorrect - DML acquires a relation lock, but not a strong one. Multiple processes can insert into a table at once (because the row-excl lock level is not self-conflicting, to be technical). https://www.postgresql.org/docs/current/explicit-locking.html In fact, that's a design requirement. It's understood that many people would be unhappy if only one client were able to run UPDATEs at once, and that only a toy system would acquire a strong lock for DML. -- Justin