Re: GIN improvements part2: fast scan

From: Tomas Vondra <tv(at)fuzzy(dot)cz>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: GIN improvements part2: fast scan
Date: 2014-02-15 16:59:24
Message-ID: 52FF9CEC.90809@fuzzy.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 9.2.2014 11:11, Alexander Korotkov wrote:
> On Fri, Feb 7, 2014 at 5:33 PM, Heikki Linnakangas
> <hlinnakangas(at)vmware(dot)com <mailto:hlinnakangas(at)vmware(dot)com>> wrote:
>
> On 02/06/2014 01:22 PM, Alexander Korotkov wrote:
>
> Difference is very small. For me, it looks ready for commit.
>
>
> Great, committed!
>
> Now, to review the catalog changes...
>
>
> I've rebased catalog changes with last master. Patch is attached. I've
> rerun my test suite with both last master ('committed') and attached
> patch ('ternary-consistent').
>
> method | sum
> ------------------------+------------------
> committed | 143491.715000001
> fast-scan-11 | 126916.111999999
> fast-scan-light | 137321.211
> fast-scan-light-heikki | 138168.028000001
> master | 446976.288
> ternary-consistent | 125923.514
>

Hi,

I've repeated the benchmarks - it took a few days to process that, but
here are the results. And IMHO it looks 100% fine.

I've tested all the patches since 25/01/2014, mostly because of
curiosity but also for comparison with current patches. So these are the
patches (name + date of the message with the patch):

heikki-20140125 0001 + 0002 + 0003 + 0004
heikki-20140126 load-all-entries-before-consistent-check-1
alexander-20140127-1 0001 + 0002 + 0003 + 0004 + 0005
alexander-20140127-2 0001 + 0002 + 0003 + 0004 + 0005 + 0006
heikki-20140202 ternary-logic + binary-heap
+ preconsistent-only-on-new-page
alexander-20140203 fast-scan-10
alexander-20140204 fast-scan-11
alexander-20140205 fast-scan-light
heikki-20140206 fast-scan-light-heikki1 (comitted 07/02)
alexander-20140209 ternary-consistent

I've tested both 9.3 and master for comparison. Package with all the
patches is available here: http://www.fuzzy.cz/tmp/gin/patches.tgz

The results are available on http://www.fuzzy.cz/tmp/gin/ as before.

I've tested these datasets:

3-words-common
3-words-common + ORDER BY
3-words-medium
3-words-medium + ORDER BY
3-words-rare
3-words-rare + ORDER BY
6-words-common
6-words-common + ORDER BY
6-words-medium
6-words-medium
6-words-rare
6-words-rare + ORDER BY
postgres-queries
postgres-queries + ORDER BY

I.e. basically the same queries as before, except that I've added a
version without "ORDER BY" clause. The main difference is that I added a
"postgres-queries" dataset with 33k real-world queries collected from
search at postgresql.org.

Another improvement is that instead of a single measurement, I've ran
the tests 10x, then threw away the first run and computed average,
median, min, max and stddev. You can choose the value to plot under the
chart.

The files with results for the 'postgres-queries' are ~70MB, which makes
viewing the dataset on the web a major PITA (first it takes very long to
download it, then it hogs the browser). So don't do that unless you want
to punish yourself for something bad you've done.

An alternative way to view the data is using a simple gnuplot charts. In
that case get http://www.fuzzy.cz/tmp/gin/plots.tgz. There's always a
.plot and .data file for each dataset/value combination. The dataset is
always "speedup vs. master"

Looking ad the postgres-queries results (attached), I see almost no
differences between these patches:

alexander-20140204 fast-scan-11
alexander-20140205 fast-scan-light
heikki-20140206 fast-scan-light-heikki1 (comitted 07/02)
alexander-20140209 ternary-consistent

And the same is true for the other tests - see the attached gnuplot
charts for a few of the tests.

So IMHO this looks quite great, no need for worries. Let me know if you
have any questions / would like to see another chart.

regards
Tomas

Attachment Content-Type Size
postgres-queries.sql.median.png image/png 116.7 KB
image/png 21.1 KB
image/png 46.1 KB
image/png 26.4 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2014-02-15 17:16:58 Re: narwhal and PGDLLIMPORT
Previous Message Andres Freund 2014-02-15 16:17:12 Re: Memory ordering issue in LWLockRelease, WakeupWaiters, WALInsertSlotRelease