public inbox for [email protected]
help / color / mirror / Atom feedHas gen_random_uuid() gotten much slower in v17?
8+ messages / 4 participants
[nested] [flat]
* Has gen_random_uuid() gotten much slower in v17?
@ 2024-09-10 13:58 David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: David Mullineux @ 2024-09-10 13:58 UTC (permalink / raw)
To: [email protected]
I'm getting a bit concerned by the slow performance of generating uidds on
latest dev code versus older versions. Here I compare the time to generate
50k random uuids. Both son the same machine.
I must be missing something.
Any clues please ?
Attachments:
[image/jpeg] IMG_20240910_145406_edit_500420330349988.jpg (798.0K, ../../CAGsyd8XBE7Ksq2Z75CTStrjSswOjVUE8S+i7qq1hGvYRj+_bcA@mail.gmail.com/3-IMG_20240910_145406_edit_500420330349988.jpg)
download | view image
[image/jpeg] IMG_20240910_145411_edit_500446221549093.jpg (742.9K, ../../CAGsyd8XBE7Ksq2Z75CTStrjSswOjVUE8S+i7qq1hGvYRj+_bcA@mail.gmail.com/4-IMG_20240910_145411_edit_500446221549093.jpg)
download | view image
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
@ 2024-09-11 09:40 ` Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: Peter Eisentraut @ 2024-09-11 09:40 UTC (permalink / raw)
To: David Mullineux <[email protected]>; [email protected]
On 10.09.24 15:58, David Mullineux wrote:
> I'm getting a bit concerned by the slow performance of generating uidds
> on latest dev code versus older versions. Here I compare the time to
> generate 50k random uuids. Both son the same machine.
> I must be missing something.
Are you sure that the 18devel installation isn't compiled with
assertions enabled?
The underlying code for gen_random_uuid() is virtually unchanged between
PG14 and current.
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
@ 2024-09-11 10:47 ` David Mullineux <[email protected]>
2024-11-20 10:35 ` Re: Has gen_random_uuid() gotten much slower in v17? Frédéric Yhuel <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: David Mullineux @ 2024-09-11 10:47 UTC (permalink / raw)
To: Peter Eisentraut <[email protected]>; +Cc: [email protected]
Good idea. Thanks. I did check. It's not enabled by default but just in
case I did another build. This time explicitly defining --disable-debug and
--disable-cassert. And I tested. Still slower than old versions.
This feels like a build configuration problem. Just can't put my finger on
it yet.
On Wed, 11 Sept 2024, 10:40 Peter Eisentraut, <[email protected]> wrote:
> On 10.09.24 15:58, David Mullineux wrote:
> > I'm getting a bit concerned by the slow performance of generating uidds
> > on latest dev code versus older versions. Here I compare the time to
> > generate 50k random uuids. Both son the same machine.
> > I must be missing something.
>
> Are you sure that the 18devel installation isn't compiled with
> assertions enabled?
>
> The underlying code for gen_random_uuid() is virtually unchanged between
> PG14 and current.
>
>
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
@ 2024-11-20 10:35 ` Frédéric Yhuel <[email protected]>
2024-11-20 15:46 ` Re: Has gen_random_uuid() gotten much slower in v17? Tom Lane <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: Frédéric Yhuel @ 2024-11-20 10:35 UTC (permalink / raw)
To: David Mullineux <[email protected]>; Peter Eisentraut <[email protected]>; +Cc: [email protected]
On 9/11/24 12:47, David Mullineux wrote:
> Good idea. Thanks. I did check. It's not enabled by default but just
> in case I did another build. This time explicitly defining --disable-
> debug and --disable-cassert. And I tested. Still slower than old versions.
>
4.5 seconds is very surprising.
on my machine:
postgres=# explain (analyze, costs off) select gen_random_uuid() from
generate_series(1, 50000);
QUERY PLAN
----------------------------------------------------------------------------------
Function Scan on generate_series (actual time=3.507..123.492
rows=50000 loops=1)
Planning Time: 0.031 ms
Execution Time: 125.481 ms
(3 rows)
postgres=# select version();
version
----------------------------------------------------------------------------------------------
PostgreSQL 18devel on x86_64-pc-linux-gnu, compiled by gcc (Debian
12.2.0-14) 12.2.0, 64-bit
pg_config | grep CONFIGURE
CONFIGURE = '--enable-cassert' '--enable-debug' '--with-python'
'CFLAGS=-ggdb -Og -g3 -fno-omit-frame-pointer' '--prefix'
'/postgres/pgenv/master'
> This feels like a build configuration problem. Just can't put my finger
> on it yet.
Why not using a profiler to see what's going on?
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-11-20 10:35 ` Re: Has gen_random_uuid() gotten much slower in v17? Frédéric Yhuel <[email protected]>
@ 2024-11-20 15:46 ` Tom Lane <[email protected]>
2024-11-20 22:11 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: Tom Lane @ 2024-11-20 15:46 UTC (permalink / raw)
To: Frédéric Yhuel <[email protected]>; +Cc: David Mullineux <[email protected]>; Peter Eisentraut <[email protected]>; [email protected]
=?UTF-8?Q?Fr=C3=A9d=C3=A9ric_Yhuel?= <[email protected]> writes:
> On 9/11/24 12:47, David Mullineux wrote:
>> This feels like a build configuration problem. Just can't put my finger
>> on it yet.
> Why not using a profiler to see what's going on?
Yeah. Also, are you building with openssl, or not?
regards, tom lane
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-11-20 10:35 ` Re: Has gen_random_uuid() gotten much slower in v17? Frédéric Yhuel <[email protected]>
2024-11-20 15:46 ` Re: Has gen_random_uuid() gotten much slower in v17? Tom Lane <[email protected]>
@ 2024-11-20 22:11 ` David Mullineux <[email protected]>
2024-11-20 22:26 ` Re: Has gen_random_uuid() gotten much slower in v17? Tom Lane <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: David Mullineux @ 2024-11-20 22:11 UTC (permalink / raw)
To: Tom Lane <[email protected]>; +Cc: Frédéric Yhuel <[email protected]>; Peter Eisentraut <[email protected]>; [email protected]
No, not at all!
On Wed, 20 Nov 2024, 15:46 Tom Lane, <[email protected]> wrote:
> =?UTF-8?Q?Fr=C3=A9d=C3=A9ric_Yhuel?= <[email protected]> writes:
> > On 9/11/24 12:47, David Mullineux wrote:
> >> This feels like a build configuration problem. Just can't put my finger
> >> on it yet.
>
> > Why not using a profiler to see what's going on?
>
> Yeah. Also, are you building with openssl, or not?
>
> regards, tom lane
>
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-11-20 10:35 ` Re: Has gen_random_uuid() gotten much slower in v17? Frédéric Yhuel <[email protected]>
2024-11-20 15:46 ` Re: Has gen_random_uuid() gotten much slower in v17? Tom Lane <[email protected]>
2024-11-20 22:11 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
@ 2024-11-20 22:26 ` Tom Lane <[email protected]>
2024-11-26 15:23 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
0 siblings, 1 reply; 8+ messages in thread
From: Tom Lane @ 2024-11-20 22:26 UTC (permalink / raw)
To: David Mullineux <[email protected]>; +Cc: Frédéric Yhuel <[email protected]>; Peter Eisentraut <[email protected]>; [email protected]
[ please don't top-quote, it makes the conversation hard to follow ]
David Mullineux <[email protected]> writes:
> On Wed, 20 Nov 2024, 15:46 Tom Lane, <[email protected]> wrote:
>> Yeah. Also, are you building with openssl, or not?
> No, not at all!
If you're not using openssl, then gen_random_uuid basically devolves
to a read of /dev/urandom. Maybe you're using a different kernel
than before, and it has different properties around that?
regards, tom lane
^ permalink raw reply [nested|flat] 8+ messages in thread
* Re: Has gen_random_uuid() gotten much slower in v17?
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Re: Has gen_random_uuid() gotten much slower in v17? Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-11-20 10:35 ` Re: Has gen_random_uuid() gotten much slower in v17? Frédéric Yhuel <[email protected]>
2024-11-20 15:46 ` Re: Has gen_random_uuid() gotten much slower in v17? Tom Lane <[email protected]>
2024-11-20 22:11 ` Re: Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-11-20 22:26 ` Re: Has gen_random_uuid() gotten much slower in v17? Tom Lane <[email protected]>
@ 2024-11-26 15:23 ` David Mullineux <[email protected]>
0 siblings, 0 replies; 8+ messages in thread
From: David Mullineux @ 2024-11-26 15:23 UTC (permalink / raw)
To: Tom Lane <[email protected]>; +Cc: Frédéric Yhuel <[email protected]>; Peter Eisentraut <[email protected]>; [email protected]
On Wed, 20 Nov 2024, 22:26 Tom Lane, <[email protected]> wrote:
> [ please don't top-quote, it makes the conversation hard to follow ]
>
> David Mullineux <[email protected]> writes:
> > On Wed, 20 Nov 2024, 15:46 Tom Lane, <[email protected]> wrote:
> >> Yeah. Also, are you building with openssl, or not?
>
> > No, not at all!
>
> If you're not using openssl, then gen_random_uuid basically devolves
> to a read of /dev/urandom. Maybe you're using a different kernel
> than before, and it has different properties around that?
>
> regards, tom lane
>
Just to say, thanks Tom. You were dead right. From the code in
pg_strong_random.c
it looks like each call will do an open("/dev/urandom")
And that cannot be fast.
Not sure why,but I guess there are good reasons to not keep a file
descriptor to that device open across calls ?
Thanks anyway
^ permalink raw reply [nested|flat] 8+ messages in thread
end of thread, other threads:[~2024-11-26 15:23 UTC | newest]
Thread overview: 8+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-09-10 13:58 Has gen_random_uuid() gotten much slower in v17? David Mullineux <[email protected]>
2024-09-11 09:40 ` Peter Eisentraut <[email protected]>
2024-09-11 10:47 ` David Mullineux <[email protected]>
2024-11-20 10:35 ` Frédéric Yhuel <[email protected]>
2024-11-20 15:46 ` Tom Lane <[email protected]>
2024-11-20 22:11 ` David Mullineux <[email protected]>
2024-11-20 22:26 ` Tom Lane <[email protected]>
2024-11-26 15:23 ` David Mullineux <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox