On Mon, Aug 22, 2011 at 7:07 PM, Alvaro Herrera <alvhe...@commandprompt.com> wrote: > Excerpts from Simon Riggs's message of dom ago 21 16:23:39 -0300 2011: >> In common cases of snapshot use we run GetSnapshotData() into a >> statically allocated snapshot, then immediately copy the static struct >> into a dynamically allocated copy. >> >> The static allocation was designed to remove the overhead of dynamic >> allocation, but then we do it anyway. >> >> The snapmgr code does this explicitly, but the reason isn't >> documented, it just says we must do this. > > IIRC the active snapshot is scribbled onto by some operations, which is > why the copy is mandatory. Maybe there's some way to optimize things so > that the copy is done only when necessary. IIRC the copying of the > ActiveSnapshot was only introduced because some subtle bugs were > detected in the code without copy. When I introduced the mandatory > copy, I don't remember thinking about the statically allocated struct.
"Some operations", "subtle bugs". Do you have any further information on those? -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers