Re: Add jsonlog log_destination for JSON server logs

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Michael Paquier <michael(at)paquier(dot)xyz>, Sehrope Sarkuni <sehrope(at)jackdb(dot)com>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, david(at)fetter(dot)org
Subject: Re: Add jsonlog log_destination for JSON server logs
Date: 2021-09-08 12:46:44
Message-ID: 42a388fe-419f-1c27-ab66-0689aa4117d8@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On 9/8/21 2:58 AM, Michael Paquier wrote:
> On Wed, Sep 01, 2021 at 04:39:43PM -0400, Sehrope Sarkuni wrote:
>> That makes the elog.c changes in the JSON logging patch minimal as all it's
>> really doing is invoking the new write_jsonlog(...) function.
> Looking at 0001, to do things in order.
>
>> @@ -46,8 +46,8 @@ typedef struct
>> char nuls[2]; /* always \0\0 */
>> uint16 len; /* size of this chunk (counts data only) */
>> int32 pid; /* writer's pid */
>> - char is_last; /* last chunk of message? 't' or 'f' ('T' or
>> - * 'F' for CSV case) */
>> + int32 dest; /* log destination */
>> + char is_last; /* last chunk of message? 't' or 'f'*/
>> char data[FLEXIBLE_ARRAY_MEMBER]; /* data payload starts here */
>> } PipeProtoHeader;
> Making PipeProtoHeader larger is not free, and that could penalize
> workloads with a lot of short messages and many backends as the
> syslogger relies on pipes with sync calls. Why not switching is_last
> to bits8 flags instead? That should be enough for the addition of
> JSON. 3 bits are enough at the end: one to know if it is the last
> chunk of message, one for CSV and one for JSON.

Yeah. A very simple change would be to use two different values for json
(say 'y' and 'n'). A slightly more principled scheme might use the top
bit for the end marker and the bottom 3 bits for the dest type (so up to
8 types possible), with the rest available for future use.

cheers

andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message James Coleman 2021-09-08 12:47:35 Re: Parallelize correlated subqueries that execute within each worker
Previous Message Vik Fearing 2021-09-08 12:44:45 Re: Non-decimal integer literals