Re: block-level incremental backup - Mailing list pgsql-hackers

From Ibrar Ahmed
Subject Re: block-level incremental backup
Date
Msg-id CALtqXTfmYNBmKc2bx0v4ubaWG0OwfZ46A6XQgj_PVDddWKUNNw@mail.gmail.com
Whole thread Raw
In response to Re: block-level incremental backup  (Jeevan Chalke <jeevan.chalke@enterprisedb.com>)
List pgsql-hackers


On Mon, Aug 12, 2019 at 4:57 PM Jeevan Chalke <jeevan.chalke@enterprisedb.com> wrote:


On Fri, Aug 9, 2019 at 6:36 PM Robert Haas <robertmhaas@gmail.com> wrote:
On Wed, Aug 7, 2019 at 5:46 AM Jeevan Chalke
<jeevan.chalke@enterprisedb.com> wrote:
> So, do you mean we should just do fread() and fwrite() for the whole file?
>
> I thought it is better if it was done by the OS itself instead of reading 1GB
> into the memory and writing the same to the file.

Well, 'cp' is just a C program.  If they can write code to copy a
file, so can we, and then we're not dependent on 'cp' being installed,
working properly, being in the user's path or at the hard-coded
pathname we expect, etc.  There's an existing copy_file() function in
src/backed/storage/file/copydir.c which I'd probably look into
adapting for frontend use.  I'm not sure whether it would be important
to adapt the data-flushing code that's present in that routine or
whether we could get by with just the loop to read() and write() data.

Agree that we can certainly use open(), read(), write(), and close() here, but
given that pg_basebackup.c and basbackup.c are using file operations, I think
using fopen(), fread(), fwrite(), and fclose() will be better here, at-least
for consistetncy.
 
+1 for using  fopen(), fread(), fwrite(), and fclose()


Let me know if we still want to go with native OS calls.
 

-1 for OS call
 

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Jeevan Chalke
Technical Architect, Product Development
EnterpriseDB Corporation
The Enterprise PostgreSQL Company



--
Ibrar Ahmed

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Improve search for missing parent downlinks in amcheck
Next
From: "Jonathan S. Katz"
Date:
Subject: Re: Add "password_protocol" connection parameter to libpq