Hi fellows !
I would only want to ask some questions concerning table-locking levels
and isolation levels:
* First of all: should I assume that AccessXXXXXXX modes imply locking
the complete table and RowXXXX imply locking only the rows which have
been accessed ? Will then the conflicts be solved according the
hierarchy between modes ?
* Second:
- What does exactly mean that a mode 'CONFLICTS' with another
?
- Does it mean that another concurrent transactions having
these modes will have to wait until the first transaction
have finished (commit or roll back) ?
- Can we determine (when accessing a row in a table) wether we
will have a conflict or not according to the criteria
explained in the previous question (Access-> complete table,
Row -> rows accessed) ?
*Third:
If all the previous assumptions are true:
- When there is a conflict, will the only consequence be
that all concurrent transactions will be processed in a
FIFO serie and not in parallel ?
- What about all the others concurrent transactions which
haven't conflicted ? How can you avoid falling into
contradiction with the isolation level (and assure the
protection against non-repeteable reads or phantom
reads ?
- I feel those two levels (transactions and isolation
levels) are two layers so the transactions will be
processed according to a FIFO serie when exist any
problem concerning the isolation level or the
table-locking. Is this a good way to describe the way
PostgreSQL manages the things ?
Thank you very much for your help. By the way, is the first time i'm
subscribed to a mailing list so if I do anything inappropiate or strange
please tell me.
Best regards
Gabi :-)