From: | Simon Riggs <simon(at)2ndQuadrant(dot)com> |
---|---|
To: | Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com> |
Cc: | Joachim Wieland <joe(at)mcknight(dot)de>, Fujii Masao <masao(dot)fujii(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Hot Standby: too many KnownAssignedXids |
Date: | 2010-11-24 15:19:47 |
Message-ID: | 1290611987.5412.22474.camel@ebony |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, 2010-11-24 at 12:48 +0200, Heikki Linnakangas wrote:
> When recovery starts, we fetch the oldestActiveXid from the checkpoint
> record. Let's say that it's 100. We then start replaying WAL records
> from the Redo pointer, and the first record (heap insert in your case)
> contains an Xid that's much larger than 100, say 10000. We call
> RecordKnownAssignedXids() to make note that all xids between that
> range are in-progress, but there isn't enough room in the array for
> that.
Agreed.
> Hmm. I'm not sure off the top of my head how to fix that. Perhaps
stash
> the xids we see during WAL replay in private memory instead of
> putting
> them in the KnownAssignedXids array until we see the running-xacts
> record.
Moving LogStandbySnapshot() earlier will help but won't solve it fully.
Will think.
--
Simon Riggs http://www.2ndQuadrant.com/books/
PostgreSQL Development, 24x7 Support, Training and Services
From | Date | Subject | |
---|---|---|---|
Next Message | Joachim Wieland | 2010-11-24 15:19:48 | Re: Suggested "easy" TODO: pg_dump --from-list |
Previous Message | Robert Haas | 2010-11-24 15:19:30 | Re: Suggested "easy" TODO: pg_dump --from-list |