Re: POSIX regex performance bug in 7.3 Vs. 7.2

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: wade <wade(at)wavefire(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: POSIX regex performance bug in 7.3 Vs. 7.2
Date: 2003-02-04 01:07:03
Message-ID: 29872.1044320823@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Sigh. It seems that somebody broke caching of compiled regexes,
so that your regex is recompiled each time it's used. I haven't
dug into the logic yet, but I think it must have been a mistake
in Thomas' change to make the regex cache be searched circularly:

2002-06-14 22:49 thomas

* src/backend/utils/adt/regexp.c: Search the existing regular
expression cache as a ring buffer. Will optimize the case for
repeated calls for the same expression, which seems to be the most
common case. Formerly, always searched from the first entry. May
want to look at the least-recently-used algorithm to make sure it
is identifying the right slots to reclaim. Seems silly to do math
when it seems that we could simply use an incrementing counter...

Considering that we now know that this is a factor-of-150 performance
hit, I wonder if this is a "must fix" for 7.3.2? We already wrapped
the tarball, but ...

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message wade 2003-02-04 01:10:45 Re: POSIX regex performance bug in 7.3 Vs. 7.2
Previous Message wade 2003-02-04 00:37:28 Re: POSIX regex performance bug in 7.3 Vs. 7.2