Обсуждение: 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?

От
Merlin Moncure
Дата:
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