Re: Teach pg_receivewal to use lz4 compression - Mailing list pgsql-hackers

From Jeevan Ladhe
Subject Re: Teach pg_receivewal to use lz4 compression
Date
Msg-id CAOgcT0NiSy5gyAErXOR=do8mC0mB7hEbCx0ri6HPUG7XjHntjA@mail.gmail.com
Whole thread Raw
In response to Re: Teach pg_receivewal to use lz4 compression  (Michael Paquier <michael@paquier.xyz>)
Responses Re: Teach pg_receivewal to use lz4 compression
List pgsql-hackers


On Fri, Nov 19, 2021 at 7:37 AM Michael Paquier <michael@paquier.xyz> wrote:
On Thu, Nov 18, 2021 at 07:54:37PM +0530, Jeevan Ladhe wrote:
> In dir_open_for_write() I observe that we are writing the header
> and then calling LZ4F_compressEnd() in case there is an error
> while writing the buffer to the file, and the output buffer of
> LZ4F_compressEnd() is not written anywhere. Why should this be
> necessary? To flush the contents of the internal buffer? But, then we
> are calling LZ4F_freeCompressionContext() immediately after the
> LZ4F_compressEnd() call. I might be missing something, will be
> happy to get more insights.

My concern here was symmetry, where IMO it makes sense to have a
compressEnd call each time there is a successful compressBegin call
done for the LZ4 state data, as there is no way to know if in the
future LZ4 won't change some of its internals to do more than just an
internal flush.

Fair enough. But, still I have a doubt in mind what benefit would that
really bring to us here, because we are immediately also freeing the
lz4buf without using it anywhere.

Regards,
Jeevan

pgsql-hackers by date:

Previous
From: Bharath Rupireddy
Date:
Subject: Re: Shouldn't postgres_fdw report warning when it gives up getting result from foreign server?
Next
From: Amul Sul
Date:
Subject: Re: xlog.c: removing ReadRecPtr and EndRecPtr