From: Simon Riggs Date: Fri, 25 Sep 2009 12:51:00 +0000 (+0100) Subject: Updated log message and docs caveat about delayed start of hot standby queries. X-Git-Url: http://waps.l3s.uni-hannover.de/gitweb/?a=commitdiff_plain;h=e4aa8b17e2d4441d43e5757581743562675bcdf6;p=users%2Fsimon%2Fpostgres.git Updated log message and docs caveat about delayed start of hot standby queries. --- diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml index 5a4d030813..b32b74b126 100644 --- a/doc/src/sgml/backup.sgml +++ b/doc/src/sgml/backup.sgml @@ -2348,7 +2348,7 @@ LOG: database system is ready to accept read only connections themselves. Users will be able to write large sort temp files and re-generate relcache info files, so there is no part of the database that is truly read-only during hot standby mode. There is no restriction - on use of set returning functions, or other users of tuplestore/tuplesort + on the use of set returning functions, or other users of tuplestore/tuplesort code. Note also that writes to remote databases will still be possible, even though the transaction is read-only locally. @@ -2564,6 +2564,15 @@ LOG: database system is ready to accept read only connections available for use when running queries during recovery. + + + Full knowledge of running transactions is required before snapshots + may be taken. Transactions that take use large numbers of subtransactions + (currently greater than 64) will delay the start of read only + connections until the completion of the longest running write transaction. + If this situation occurs explanatory messages will be sent to server log. + + diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c index 211588a8a5..61d63d37d8 100644 --- a/src/backend/storage/ipc/procarray.c +++ b/src/backend/storage/ipc/procarray.c @@ -502,8 +502,8 @@ ProcArrayApplyRecoveryInfo(XLogRecPtr lsn, xl_xact_running_xacts *xlrec) if (!xlrec->subxid_overflow) recoverySnapshotValid = true; else - elog(trace_recovery(DEBUG2), - "running xact data has incomplete subtransaction data"); + ereport(LOG, + (errmsg("consistent state delayed because recovery snapshot incomplete"))); xids = palloc(sizeof(TransactionId) * (xlrec->xcnt + xlrec->subxcnt)); nxids = 0;