Re:How Postgres Makes Transactions Atomic
by skyde on Wednesday August 16, 2017 @04:54PM
(#15031291)
I think what your looking for is called range lock.
When a query sort or filter rows using a range predicate. If using repeatable read isolation. A range lock is created to detect conflict with another transaction inserting new matching row.
[ Parent
| on HN ]
Re:How Postgres Makes Transactions Atomic
by petergeoghegan on Wednesday August 16, 2017 @08:16PM
(#15032565)
That's not how postgres works. You're talking about 2PL. Serializable isolation level in postgres does have something called predicate locks, but those are actually quite a different thing.
No I was talking exactly about Predicate Locking.
They detect writes which conflict with earlier reads I dont think this could be called 2PL because it's only used to detect conflict.
Correctness requires that any insert into an index generate a rw-conflict with a concurrent serializable transaction if, after that insert, re-execution of any index scan of the other transaction would access the heap for a row not accessed during the previous execution.