Re: shared_buffers, wal_buffers, WAL files, data files
От | Alvaro Herrera |
---|---|
Тема | Re: shared_buffers, wal_buffers, WAL files, data files |
Дата | |
Msg-id | 20071206192921.GK8451@alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: shared_buffers, wal_buffers, WAL files, data files (Guillaume Lelarge <guillaume@lelarge.info>) |
Ответы |
Re: shared_buffers, wal_buffers, WAL files, data files
|
Список | pgsql-hackers |
Guillaume Lelarge wrote: > Tom Lane a écrit : > > Guillaume Lelarge <guillaume@lelarge.info> writes: > >> I try to answer a simple question : what happens when I do a simple > >> "INSERT" on a just started PostgreSQL server. > > > >> From what I understand with the INSERT statement, here is what happens : > >> * backend loads first (and only) block from footable file into a shared > >> buffer > >> * it modifies this block on the shared buffer, and sets it as dirty > > > > Right, and it also makes a WAL log entry about this action. > > > > The WAL log entry is made on the wal buffers (in memory). As soon as > this statement is commited (in my example, it's right now, but in a > BEGIN ... COMMIT statement, at COMMIT time), the wal buffer is flushed > on WAL files. It can be flushed before if wal buffer is not big enough > to contain all the current transactions. Am I right ? That's correct. WAL buffers are obviously shared; when one transaction commits it will flush not only its own entries, but also those that any other transaction could have written. -- Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J "Endurecerse, pero jamás perder la ternura" (E. Guevara)
В списке pgsql-hackers по дате отправления: