From: | Tian Luo <jackrobin(at)gmail(dot)com> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | "full_page_writes" makes no difference? |
Date: | 2011-05-04 01:46:44 |
Message-ID: | BANLkTimxQg89qKAOn6obuY_9n3U2E=fHiw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi guys,
No matter I turn on or turn off the "full_page_writes", I always
observe 8192-byte writes of log data for simple write operations
(write/update).
But according to the document, when this is off, it could speed up
operations but may cause problems during recovery. So, I guess this is
because it writes less when the option is turned off. However, this
contradicts my observations ....
If I am not missing anything, I find that the writes of log data go
through function "XLogWrite" in source file
"backend/access/transam/xlog.c".
In this file, log data are written with the following code:
from = XLogCtl->pages + startidx * (Size) XLOG_BLCKSZ;
nbytes = npages * (Size) XLOG_BLCKSZ;
if (write(openLogFile, from, nbytes) != nbytes)
{
...
}
So, "nbytes" should always be multiples of XLOG_BLCKSZ, which in the
default case, is 8192.
My question is, if it always writes full pages no matter
"full_page_writes" is on or off, what is the difference?
Thanks!
Regards,
- Tian
From | Date | Subject | |
---|---|---|---|
Next Message | Ian Bailey-Leung | 2011-05-04 01:50:51 | Re: Unlogged vs. In-Memory |
Previous Message | Greg Smith | 2011-05-04 01:37:01 | Re: Predicate locking |