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

Re: Snapshot management, final

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Simon Riggs <simon(at)2ndquadrant(dot)com>
Cc: Pg Patches <pgsql-patches(at)postgresql(dot)org>
Subject: Re: Snapshot management, final
Date: 2008-04-22 21:50:56
Message-ID: 20080422215056.GJ6912@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-patches
Simon Riggs wrote:
> On Tue, 2008-04-22 at 15:49 -0400, Alvaro Herrera wrote:
> 
> > - Three CopySnapshot call sites remain outside snapmgr.c: DoCopy() on
> > copy.c, ExplainOnePlan() on explain.c and _SPI_execute_plan() on spi.c.
> > They are there because they grab the current ActiveSnapshot, modify it,
> > and then use the resulting snapshot.  There is no corresponding
> > FreeSnapshot, because it's not needed.
> 
> Not needed? How can we be certain that the modified snapshot does not
> outlive its original source?

It's not CopySnapshot that's not needed, but FreeSnapshot.  The point
here is that the snapshot will be freed automatically as soon as it is
PopActiveSnapshot'd out of existance.  CopySnapshot creates a new,
separate copy of the passed snapshot, and each of them will be freed
(separately) as soon as their refcounts reach zero.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

pgsql-patches by date

Next:From: Simon RiggsDate: 2008-04-22 21:58:38
Subject: Re: Snapshot management, final
Previous:From: Simon RiggsDate: 2008-04-22 21:45:12
Subject: Re: Snapshot management, final

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