Re: Synchrnonized Scan test

Lists: pgsql-hackers
From: Jeff Davis <pgsql(at)j-davis(dot)com>
To: Luke Lonergan <llonergan(at)greenplum(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Synchrnonized Scan test
Date: 2006-12-10 22:36:21
Message-ID: 457C8BE5.30309@j-davis.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Luke Lonergan wrote:
> I've attached the results of a test with the first patch and the test. It
> uses five simultaneous scans as before, but this time the table is 120GB on
> a machine with 8GB of RAM. The data is stored on one non-raid disk, so a
> single scan should take about 33 minutes.
>
> The scans are started 5 minutes apart, so the last scan would end in about 3
> hours if they were independent (they're not). 8.2 unmodified runs the test
> in about 4 hours and 20 minutes. With the first patch, it runs in about 5
> hours and 30 minutes.
>
> The results show that the first patch actually slowed things down quite a
> bit. I'll test the last patch you sent and see what we get.
>
> I think this is worthwhile, you can definitely see a slowdown by having the
> competing scans. The OS (Linux 2.6.18) is doing a pretty good job of
> keeping the scans scheduled well, but we could still speed things up by
> about 30% if we got syncscan working.
>

Thanks for running the tests.

I don't know exactly what's happening in your case, but it may have to
do with some unbalanced scheduling. What if we actually throttled each
"follower" to read no more than N pages before it task-switched? Might
that keep the scans closer together?

If you have any way of tracing what is actually happening, that would be
very helpful.

It would be nice to know:
(1) Are the scans diverging because some processes are running forward
with fast shared_buffers page hits, and maybe other processes
task-switch when they need to read() (even if it's in the OS buffer cache)?
(2) How much difference is there really between a shared_buffer cache
hit and an OS buffer cache hit?
(3) Does an OS buffer cache hit always cause a context switch? How often?
(4) Is read-ahead per-process (like Tom suggested), or is it system wide?

Regards,
Jeff Davis


From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Jeff Davis <pgsql(at)j-davis(dot)com>
Cc: Luke Lonergan <llonergan(at)greenplum(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Synchrnonized Scan test
Date: 2006-12-10 22:39:50
Message-ID: 457C8CB6.30203@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers

Jeff,

BTW, based on both Teradata and Jim Grey I think that it's worth trying
to debug synch scans; everyone else in the large database world seems to
think they have merit.

So thanks for working on this!

--Josh