Обсуждение: Where in the source code does postgres write to disk?

Поиск
Список
Период
Сортировка

Where in the source code does postgres write to disk?

От
Mike Levine
Дата:
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?

От
Satoshi Nagayasu
Дата:
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