On Wed, 18 Dec 2019 at 23:13, Matthew Phillips <mphillip...@gmail.com> wrote:
> With the current READ UNCOMMITTED discussion happening on pgsql-hackers > [1], It did raise a question/use-case I recently encountered and could not > find a satisfactory solution for. If someone is attempting to poll for new > records on a high insert volume table that has a monotonically increasing > id, what is the best way to do it? As is, with a nave implementation, rows > are not guaranteed to appear in monotonic order; so if you were to keep a > $MAX_ID, and SELECT WHERE p_id > $MAX_ID, you would hit gaps. Is there a > clean way to do this? I've seen READ UNCOMMITTED used for this with DB2. > Not sure it helps much. The new records aren't truly there until commit. Using max_id alone is not an effective technique. It's just an optimization. Just be careful to not advance max_id too quickly, and remember which ones you've already checked. Or wait for the next monontonic value each time, accepting the lag. -- Simon Riggs http://www.2ndQuadrant.com/ <http://www.2ndquadrant.com/> PostgreSQL Solutions for the Enterprise