Thread: Reading and writing at the same time

Reading and writing at the same time

From
"G. Anthony Reina"
Date:
I know that Postgres has table-level locking so that once a write is
being performed on a table, no other reads or writes can be performed
until that write finishes.

I have a C program that performs several updates and inserts to a table.
I found that I am able, despite any table locking, to use the front-end
psql program at the same time to select data from the same table that is
being written to. So in essence, I am able to have one program that is
writing while at the same time another program reads (without running
into aborted backends).

So with table-level locking, does the postmaster completely abort any
backends that make a request while a write is being done; or, does the
postmaster simply tell the other backends to hold for a few seconds
until the write is completed and then let the new backend process?

-Tony Reina