17.08.2018 08:55, Michael Paquier пишет:
On Fri, Aug 17, 2018 at 08:47:15AM +0500, Andrey Lepikhov wrote:
Previously, in all cases of using WAL this was not a problem. However if you
plan to perform some decoding operations before returning the WAL record to
the caller (this is my case), this can lead to bugs that are difficult to
catch.

What kind of cases with logical decoding are you referring to?  If
any of them can be reproduced with upstream, could you send a
reproducer, or a way to see it?
--
Michael


I'm working on the problem of a WAL-record size reducing. One of the PostgreSQL experimental extensions uses a 64-bit xid, and the XLogRecord size is increased to 32 bytes. Representing a 64-bit xid in WAL Segment as a pair (16-bit base, 8-bit offset) reduces the size of the WAL record header and its body. So, I encode a WAL-record in XLogInsertRecord() (decreasing the size) just before writing to a shared memory pages and performs the decoding just before processing DecodeXLogRecord() operation. It looks like a layer in the xlog subsystem for additional WAL compression. However, this is a long story ...

--
Andrey Lepikhov
Postgres Professional
https://postgrespro.com
The Russian Postgres Company

Reply via email to