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
Satoshi Nagayasu
Date:
Hi,

2013/04/21 0:01, Mike Levine wrote:
> According
> tohttp://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.

See mdextend() in src/backend/storage/smgr/md.c.

That's the code which deals with segment files on extending a table,
and RELSEG_SIZE defines the segment size, 1GB by default.

Regards,
--
Satoshi Nagayasu <snaga@uptime.jp>
Uptime Technologies, LLC. http://www.uptime.jp