Skip site navigation (1) Skip section navigation (2)

Snapshot Reuse

From: Simon Riggs <simon(at)2ndquadrant(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Snapshot Reuse
Date: 2008-02-27 22:45:38
Message-ID: (view raw or whole thread)
Lists: pgsql-hackers
In Read Committed transactions we take snapshots much more frequently
than transactions begin and commit. It would be help scalability if we
didn't need to re-take a snapshot. That's only helpful if the chances of
seeing the snapshot is relatively high.

Now that we have virtual transactions we may more frequently find
ourselves taking identical snapshots.

If we had a counter that incremented each time the main snapshot altered
in a meaningful way we could set that atomically. We could then read
this when we take a snapshot to see if it matches our existing snapshot;
if so then drop the lock quickly and continue with what we already have.

I can see some downsides to this as well as potential benefits:

* we ping the counter across CPUs - yes, we will, but that's probably
better than pinging the whole procarray

* this relies upon the rate of change of snapshots - need to do the math
to see how often this might apply

Not sure yet myself, but it seems worth recording in case it spurs an
idea from someone else.

  Simon Riggs


pgsql-hackers by date

Next:From: Tom LaneDate: 2008-02-27 22:48:53
Subject: Re: Idea for minor tstore optimization
Previous:From: Tom LaneDate: 2008-02-27 22:42:18
Subject: Re: new warning message

Privacy Policy | About PostgreSQL
Copyright © 1996-2015 The PostgreSQL Global Development Group