Scott Ribe <scott_ribe@killerbytes.com> writes:
>> So it works right now, except it doesn't have (yet) the infrastructure to
>> keep the scans synchronized
> Perhaps you only got one read of the table because the process is
> essentially self-synchronizing.
Right. Multiple seqscans that are anywhere near reading the same block
of a table will tend to self-synchronize. There is a patch under
consideration for 8.3 that helps this along by making seqscans run
"circularly" --- that is, not always from block 0 to block N, but from
block M to N and then 0 to M-1, where the start point M can be chosen
by looking to see where any other concurrent seqscan is presently
reading. Once you've got a reasonable start point, you don't have to do
anything else.
regards, tom lane