Re: Hot Standby on git

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Hot Standby on git
Дата
Msg-id 4AC49281.2040302@enterprisedb.com
обсуждение исходный текст
Ответ на Hot Standby on git  (Simon Riggs <simon@2ndQuadrant.com>)
Ответы Re: Hot Standby on git  (Simon Riggs <simon@2ndQuadrant.com>)
Список pgsql-hackers
+   /*
+    * If our initial RunningXactData had an overflowed snapshot then we
+    * knew we were missing some subxids from our snapshot. We can use
+    * this data as an initial snapshot, but we cannot yet mark it valid.
+    * We know that the missing subxids are equal to or earlier than
+    * LatestRunningXid. After we initialise we continue to apply changes
+    * during recovery, so once the oldestRunningXid is later than the
+    * initLatestRunningXid we can now prove that we no longer have
+    * missing information and can mark the snapshot as valid.
+    */
+   if (initRunningXactData && !recoverySnapshotValid)
+   {
+       if (TransactionIdPrecedes(initLatestRunningXid,
xlrec->oldestRunningXid)
+       {
+           recoverySnapshotValid = true;
+           elog(trace_recovery(DEBUG2),
+                   "running xact data now proven complete");
+           elog(trace_recovery(DEBUG2),
+                   "recovery snapshots are now enabled");
+       }
+       return;
+   }
+

When GetRunningXactData() calculates latestRunningXid in the master,
which is stored in initLatestRunningXid in the standby, it only looks at
xids and subxids present in the procarray. It doesn't take into account
overflowed subxids. I think we could declare a recovery snapshot "proven
complete" too early because of that.

--  Heikki Linnakangas EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: daveg
Дата:
Сообщение: Limit allocated memory per session
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: CommitFest 2009-09, two weeks on