Re: Temporary file access API

From: John Morris <john(at)precision-gps(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>, Antonin Houska <ah(at)cybertec(dot)at>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>
Subject: Re: Temporary file access API
Date: 2022-09-22 15:42:13
Message-ID: BYAPR19MB2871A12E49A436D42094B77AA84E9@BYAPR19MB2871.namprd19.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I’m a latecomer to the discussion, but as a word of introduction, I’m working with Stephen, and I have started looking over the temp file proposal with the idea of helping it move along.

I’ll start by summarizing the temp file proposal and its goals.

From a high level, the proposed code:

* Creates an fread/fwrite replacement (BufFileStream) for buffering data to a single file.
* Updates BufFile, which reads/writes a set of files, to use BufFileStream internally.
* Does not impact the normal (page cached) database I/O.
* Updates all the other places where fread/fwrite and read/write are used.
* Creates and removes transient files.
I see the following goals:

* Unify all the “other” file accesses into a single, consistent API.
* Integrate with VFDs.
* Integrate transient files with transactions and tablespaces.
* Create a consolidated framework where features like encryption and compression can be more easily added.
* Maintain good streaming performance.
Is this a fair description of the proposal?

For myself, I’d like to map out how features like compression and encryption would fit into the framework, more as a sanity check than anything else, and I’d like to look closer at some of the implementation details. But at the moment, I want to make sure I have the proper high-level view of the temp file proposal.

From: Robert Haas <robertmhaas(at)gmail(dot)com>
Date: Wednesday, September 21, 2022 at 11:54 AM
To: Antonin Houska <ah(at)cybertec(dot)at>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Stephen Frost <sfrost(at)snowman(dot)net>
Subject: Re: Temporary file access API
On Mon, Aug 8, 2022 at 2:26 PM Antonin Houska <ah(at)cybertec(dot)at> wrote:
> > I don't think that (3) is a separate advantage from (1) and (2), so I
> > don't have anything separate to say about it.
>
> I thought that the uncontrollable buffer size is one of the things you
> complaint about in
>
> https://www.postgresql.org/message-id/CA+TgmoYGjN_f=FCErX49bzjhNG+GoctY+a+XhNRWCVvDY8U74w@mail.gmail.com

Well, I think that email is mostly complaining about there being no
buffering at all in a situation where it would be advantageous to do
some buffering. But that particular code I believe is gone now because
of the shared-memory stats collector, and when looking through the
patch set, I didn't see that any of the cases that it touched were
similar to that one.

--
Robert Haas
EDB: http://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2022-09-22 15:42:25 Re: libpq error message refactoring
Previous Message Martin Kalcher 2022-09-22 15:40:17 Re: [PATCH] Introduce array_shuffle() and array_sample()