1

I use a postgres database and I see the following error message:

could not serialize access due to read/write dependencies among transactions
DETAIL: Reason code: Canceled on identification as a pivot, during conflict out checking.
HINT: The transaction might succeed if retried.

The issue is that I have two transactions which are executed concurrently and they can influence each other.

This question is about understanding the error message itself, not about fixing the issue. I would love if somebody could walk me through it. Some questions I have:

  • What is the mentioned "identification"?
  • What is a pivot in this case?
  • What is "conflict out checking"?
Martin Thoma
  • 124,992
  • 159
  • 614
  • 958
  • I'm not familiar with all the relevant internals, but I'd take a read through the [releavant source](https://github.com/postgres/postgres/blob/b0c066297bdac901a13a5a900a197697a026b357/src/backend/storage/lmgr/predicate.c#L4136) - it's pretty well-documented. – AdamKG Sep 01 '21 at 14:34
  • You probably need to study Cahill's PhD theses. http://hdl.handle.net/2123/5353 – jjanes Sep 01 '21 at 14:48

0 Answers0