Here is the latest version of my patch that's revised according to my
discussions with Heikki and Simon:
Changes:
* uses LWLocks when accessing shared memory
* removes the "sync_seqscan_offset" feature
* uses the relfilenode as a key rather than relation OID
* fixes regression test failure
* uses a simple LRU (that stays in fixed-size shared memory) to track
the locations of other concurrent scans
For the LRU I used a doubly-linked list, which isn't strictly necessary.
However, we may decide to use a hash table for the lookup, in which case
the extra pointers will be useful.
Regards,
Jeff Davis