[PATCH] Query Jumbling for CALL and SET utility statements

From: "Drouvot, Bertrand" <bdrouvot(at)amazon(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Cc: "Schneider (AWS), Jeremy" <schnjere(at)amazon(dot)com>
Subject: [PATCH] Query Jumbling for CALL and SET utility statements
Date: 2022-08-31 15:33:44
Message-ID: 36e5bffe-e989-194f-85c8-06e7bc88e6f7@amazon.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi hackers,

While query jumbling is provided for function calls that’s currently not
the case for procedures calls.
The reason behind this is that all utility statements are currently
discarded for jumbling.

We’ve recently seen performance impacts (LWLock contention) due to the
lack of jumbling on procedure calls with pg_stat_statements and
pg_stat_statements.track_utility enabled (think an application with a
high rate of procedure calls with unique parameters for each call).

Jeremy has had this conversation on twitter (see
https://twitter.com/jer_s/status/1560003560116342785) and Nikolay
reported that he also had to work on a similar performance issue with
SET being used.

That’s why we think it would make sense to allow jumbling for those 2
utility statements: CALL and SET.

Please find attached a patch proposal for doing so.

With the attached patch we would get things like:

CALL MINUS_TWO(3);
CALL MINUS_TWO(7);
CALL SUM_TWO(3, 8);
CALL SUM_TWO(7, 5);
set enable_seqscan=false;
set enable_seqscan=true;
set seq_page_cost=2.0;
set seq_page_cost=1.0;

postgres=# SELECT query, calls, rows FROM pg_stat_statements;
               query               | calls | rows
-----------------------------------+-------+------
 set seq_page_cost=$1              |     2 |    0
 CALL MINUS_TWO($1)                |     2 |    0
 set enable_seqscan=$1             |     2 |    0
 CALL SUM_TWO($1, $2)              |     2 |    0

Looking forward to your feedback,

Thanks,

Jeremy & Bertrand

--
Bertrand Drouvot
Amazon Web Services:https://aws.amazon.com

Attachment Content-Type Size
v1-0001-JumbleQuery-on-Call-and-Set.patch text/plain 10.8 KB

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andres Freund 2022-08-31 15:49:16 Re: SQL/JSON features for v15
Previous Message Andres Freund 2022-08-31 15:29:31 Re: introduce bufmgr hooks