Re: pgsql: Speedup pgstat_report_activity by moving mb-aware truncation to

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: pgsql-committers(at)postgresql(dot)org
Subject: Re: pgsql: Speedup pgstat_report_activity by moving mb-aware truncation to
Date: 2017-09-19 20:53:09
Message-ID: 1506.1505854389@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Andres Freund <andres(at)anarazel(dot)de> writes:
> On 2017-09-19 16:25:31 -0400, Tom Lane wrote:
>> Looks like you're going to need to not depend on strnlen().

> Yup noticed - we have pg_strnlen as a static function in
> src/port/snprintf. I'm tempted to just make that public, rather than
> open code the equivalent?

No, we should not tie this to whether we're using port/snprintf.c.

Personally, I don't see why this isn't coded more like

int rawlen = strlen(activity);

rawlen = Min(rawlen, pgstat_track_activity_query_size - 1);

It seems likely to me that strlen() is going to be optimized a lot
harder than strnlen() on most platforms, so that this way would win
not only for strings up to pgstat_track_activity_query_size but for
strings some way beyond that. Yes, for really really long queries
the strnlen way would win, but that's optimizing for the wrong case IMO.

If you really insist on strnlen() then we're going to have to move
it to its own src/port/ file with a configure test.

regards, tom lane

In response to

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Andres Freund 2017-09-19 20:53:18 Re: pgsql: Make new crash restart test a bit more robust.
Previous Message Tom Lane 2017-09-19 20:46:58 Re: pgsql: Make new crash restart test a bit more robust.