Thread: Where in the source code does postgres write to disk?

Where in the source code does postgres write to disk?

From
Mike Levine
Date:
According to http://www.postgresql.org/docs/9.2/static/storage-file-layout.html

"When a table or index exceeds 1 GB, it is divided into gigabyte-sized segments. The first segment's file name is the same as the filenode; subsequent segments are named filenode.1, filenode.2, etc."

I was wondering where in the source code this is dealt with. I have been searching for the last few hours but have had no luck


Any help guiding me to the location in the source code where postgres writes the buffer to disk would be greatly appreciated.


Thanks

Re: Where in the source code does postgres write to disk?

From
Merlin Moncure
Date:
On Fri, Apr 19, 2013 at 11:26 PM, Mike Levine <michael.levine@yale.edu> wrote:
> According to
> http://www.postgresql.org/docs/9.2/static/storage-file-layout.html
>
> "When a table or index exceeds 1 GB, it is divided into gigabyte-sized
> segments. The first segment's file name is the same as the filenode;
> subsequent segments are named filenode.1, filenode.2, etc."
>
> I was wondering where in the source code this is dealt with. I have been
> searching for the last few hours but have had no luck
>
>
> Any help guiding me to the location in the source code where postgres writes
> the buffer to disk would be greatly appreciated.

postgres disk writing mostly happens in md.c.  reason why you probably
had trouble finding it is that disk i/o (as with memory allocation) is
hidden behind a function pointer interface.

merlin