aboutsummaryrefslogtreecommitdiff
path: root/src/backend/replication
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/replication')
-rw-r--r--src/backend/replication/libpqwalreceiver/libpqwalreceiver.c42
-rw-r--r--src/backend/replication/walreceiver.c3
-rw-r--r--src/backend/replication/walreceiverfuncs.c4
-rw-r--r--src/backend/replication/walsender.c67
4 files changed, 59 insertions, 57 deletions
diff --git a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
index b62f48be825..e7581160cc9 100644
--- a/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
+++ b/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c,v 1.11 2010/06/11 10:13:09 heikki Exp $
+ * $PostgreSQL: pgsql/src/backend/replication/libpqwalreceiver/libpqwalreceiver.c,v 1.12 2010/07/06 19:18:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -86,9 +86,9 @@ libpqrcv_connect(char *conninfo, XLogRecPtr startpoint)
char cmd[64];
/*
- * Connect using deliberately undocumented parameter: replication.
- * The database name is ignored by the server in replication mode, but
- * specify "replication" for .pgpass lookup.
+ * Connect using deliberately undocumented parameter: replication. The
+ * database name is ignored by the server in replication mode, but specify
+ * "replication" for .pgpass lookup.
*/
snprintf(conninfo_repl, sizeof(conninfo_repl),
"%s dbname=replication replication=true",
@@ -168,7 +168,7 @@ libpqrcv_connect(char *conninfo, XLogRecPtr startpoint)
justconnected = true;
ereport(LOG,
- (errmsg("streaming replication successfully connected to primary")));
+ (errmsg("streaming replication successfully connected to primary")));
return true;
}
@@ -209,7 +209,7 @@ libpq_select(int timeout_ms)
struct timeval *ptr_timeout;
FD_ZERO(&input_mask);
- FD_SET (PQsocket(streamConn), &input_mask);
+ FD_SET(PQsocket(streamConn), &input_mask);
if (timeout_ms < 0)
ptr_timeout = NULL;
@@ -253,19 +253,18 @@ libpq_select(int timeout_ms)
static PGresult *
libpqrcv_PQexec(const char *query)
{
- PGresult *result = NULL;
- PGresult *lastResult = NULL;
+ PGresult *result = NULL;
+ PGresult *lastResult = NULL;
/*
- * PQexec() silently discards any prior query results on the
- * connection. This is not required for walreceiver since it's
- * expected that walsender won't generate any such junk results.
+ * PQexec() silently discards any prior query results on the connection.
+ * This is not required for walreceiver since it's expected that walsender
+ * won't generate any such junk results.
*/
/*
- * Submit a query. Since we don't use non-blocking mode, this also
- * can block. But its risk is relatively small, so we ignore that
- * for now.
+ * Submit a query. Since we don't use non-blocking mode, this also can
+ * block. But its risk is relatively small, so we ignore that for now.
*/
if (!PQsendQuery(streamConn, query))
return NULL;
@@ -273,16 +272,16 @@ libpqrcv_PQexec(const char *query)
for (;;)
{
/*
- * Receive data until PQgetResult is ready to get the result
- * without blocking.
+ * Receive data until PQgetResult is ready to get the result without
+ * blocking.
*/
while (PQisBusy(streamConn))
{
/*
* We don't need to break down the sleep into smaller increments,
* and check for interrupts after each nap, since we can just
- * elog(FATAL) within SIGTERM signal handler if the signal
- * arrives in the middle of establishment of replication connection.
+ * elog(FATAL) within SIGTERM signal handler if the signal arrives
+ * in the middle of establishment of replication connection.
*/
if (!libpq_select(-1))
continue; /* interrupted */
@@ -291,10 +290,9 @@ libpqrcv_PQexec(const char *query)
}
/*
- * Emulate the PQexec()'s behavior of returning the last result
- * when there are many.
- * Since walsender will never generate multiple results, we skip
- * the concatenation of error messages.
+ * Emulate the PQexec()'s behavior of returning the last result when
+ * there are many. Since walsender will never generate multiple
+ * results, we skip the concatenation of error messages.
*/
result = PQgetResult(streamConn);
if (result == NULL)
diff --git a/src/backend/replication/walreceiver.c b/src/backend/replication/walreceiver.c
index 153b7ff0e50..06646ead94a 100644
--- a/src/backend/replication/walreceiver.c
+++ b/src/backend/replication/walreceiver.c
@@ -29,7 +29,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/replication/walreceiver.c,v 1.15 2010/07/03 20:43:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/replication/walreceiver.c,v 1.16 2010/07/06 19:18:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -159,6 +159,7 @@ WalReceiverMain(void)
{
char conninfo[MAXCONNINFO];
XLogRecPtr startpoint;
+
/* use volatile pointer to prevent code rearrangement */
volatile WalRcvData *walrcv = WalRcv;
diff --git a/src/backend/replication/walreceiverfuncs.c b/src/backend/replication/walreceiverfuncs.c
index 4bc3bd875c0..2ccaedb41c8 100644
--- a/src/backend/replication/walreceiverfuncs.c
+++ b/src/backend/replication/walreceiverfuncs.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/replication/walreceiverfuncs.c,v 1.6 2010/07/03 20:43:57 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/replication/walreceiverfuncs.c,v 1.7 2010/07/06 19:18:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -211,7 +211,7 @@ RequestXLogStreaming(XLogRecPtr recptr, const char *conninfo)
* Returns the last+1 byte position that walreceiver has written.
*
* Optionally, returns the previous chunk start, that is the first byte
- * written in the most recent walreceiver flush cycle. Callers not
+ * written in the most recent walreceiver flush cycle. Callers not
* interested in that value may pass NULL for latestChunkStart.
*/
XLogRecPtr
diff --git a/src/backend/replication/walsender.c b/src/backend/replication/walsender.c
index 298737c89c2..2a16888b0ff 100644
--- a/src/backend/replication/walsender.c
+++ b/src/backend/replication/walsender.c
@@ -28,7 +28,7 @@
* Portions Copyright (c) 2010-2010, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.27 2010/06/17 16:41:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/replication/walsender.c,v 1.28 2010/07/06 19:18:57 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -66,7 +66,8 @@ bool am_walsender = false; /* Am I a walsender process ? */
int max_wal_senders = 0; /* the maximum number of concurrent walsenders */
int WalSndDelay = 200; /* max sleep time between some actions */
-#define NAPTIME_PER_CYCLE 100000L /* max sleep time between cycles (100ms) */
+#define NAPTIME_PER_CYCLE 100000L /* max sleep time between cycles
+ * (100ms) */
/*
* These variables are used similarly to openLogFile/Id/Seg/Off,
@@ -266,10 +267,10 @@ WalSndHandshake(void)
* NOTE: This only checks the current value of
* wal_level. Even if the current setting is not
* 'minimal', there can be old WAL in the pg_xlog
- * directory that was created with 'minimal'.
- * So this is not bulletproof, the purpose is
- * just to give a user-friendly error message that
- * hints how to configure the system correctly.
+ * directory that was created with 'minimal'. So this
+ * is not bulletproof, the purpose is just to give a
+ * user-friendly error message that hints how to
+ * configure the system correctly.
*/
if (wal_level == WAL_LEVEL_MINIMAL)
ereport(FATAL,
@@ -378,7 +379,7 @@ WalSndLoop(void)
/* Loop forever, unless we get an error */
for (;;)
{
- long remain; /* remaining time (us) */
+ long remain; /* remaining time (us) */
/*
* Emergency bailout if postmaster has died. This is to avoid the
@@ -422,8 +423,8 @@ WalSndLoop(void)
*
* On some platforms, signals won't interrupt the sleep. To ensure we
* respond reasonably promptly when someone signals us, break down the
- * sleep into NAPTIME_PER_CYCLE increments, and check for
- * interrupts after each nap.
+ * sleep into NAPTIME_PER_CYCLE increments, and check for interrupts
+ * after each nap.
*/
if (caughtup)
{
@@ -503,8 +504,8 @@ InitWalSnd(void)
ereport(FATAL,
(errcode(ERRCODE_TOO_MANY_CONNECTIONS),
errmsg("number of requested standby connections "
- "exceeds max_wal_senders (currently %d)",
- max_wal_senders)));
+ "exceeds max_wal_senders (currently %d)",
+ max_wal_senders)));
/* Arrange to clean up at walsender exit */
on_shmem_exit(WalSndKill, 0);
@@ -563,13 +564,14 @@ XLogRead(char *buf, XLogRecPtr recptr, Size nbytes)
if (sendFile < 0)
{
/*
- * If the file is not found, assume it's because the
- * standby asked for a too old WAL segment that has already
- * been removed or recycled.
+ * If the file is not found, assume it's because the standby
+ * asked for a too old WAL segment that has already been
+ * removed or recycled.
*/
if (errno == ENOENT)
{
- char filename[MAXFNAMELEN];
+ char filename[MAXFNAMELEN];
+
XLogFileName(filename, ThisTimeLineID, sendId, sendSeg);
ereport(ERROR,
(errcode_for_file_access(),
@@ -619,10 +621,10 @@ XLogRead(char *buf, XLogRecPtr recptr, Size nbytes)
}
/*
- * After reading into the buffer, check that what we read was valid.
- * We do this after reading, because even though the segment was present
- * when we opened it, it might get recycled or removed while we read it.
- * The read() succeeds in that case, but the data we tried to read might
+ * After reading into the buffer, check that what we read was valid. We do
+ * this after reading, because even though the segment was present when we
+ * opened it, it might get recycled or removed while we read it. The
+ * read() succeeds in that case, but the data we tried to read might
* already have been overwritten with new WAL records.
*/
XLogGetLastRemoved(&lastRemovedLog, &lastRemovedSeg);
@@ -630,7 +632,8 @@ XLogRead(char *buf, XLogRecPtr recptr, Size nbytes)
if (log < lastRemovedLog ||
(log == lastRemovedLog && seg <= lastRemovedSeg))
{
- char filename[MAXFNAMELEN];
+ char filename[MAXFNAMELEN];
+
XLogFileName(filename, ThisTimeLineID, log, seg);
ereport(ERROR,
(errcode_for_file_access(),
@@ -662,8 +665,8 @@ XLogSend(char *msgbuf, bool *caughtup)
WalDataMessageHeader msghdr;
/*
- * Attempt to send all data that's already been written out and fsync'd
- * to disk. We cannot go further than what's been written out given the
+ * Attempt to send all data that's already been written out and fsync'd to
+ * disk. We cannot go further than what's been written out given the
* current implementation of XLogRead(). And in any case it's unsafe to
* send WAL that is not securely down to disk on the master: if the master
* subsequently crashes and restarts, slaves must not have applied any WAL
@@ -683,19 +686,18 @@ XLogSend(char *msgbuf, bool *caughtup)
* MAX_SEND_SIZE bytes to send, send everything. Otherwise send
* MAX_SEND_SIZE bytes, but round back to logfile or page boundary.
*
- * The rounding is not only for performance reasons. Walreceiver
- * relies on the fact that we never split a WAL record across two
- * messages. Since a long WAL record is split at page boundary into
- * continuation records, page boundary is always a safe cut-off point.
- * We also assume that SendRqstPtr never points to the middle of a WAL
- * record.
+ * The rounding is not only for performance reasons. Walreceiver relies on
+ * the fact that we never split a WAL record across two messages. Since a
+ * long WAL record is split at page boundary into continuation records,
+ * page boundary is always a safe cut-off point. We also assume that
+ * SendRqstPtr never points to the middle of a WAL record.
*/
startptr = sentPtr;
if (startptr.xrecoff >= XLogFileSize)
{
/*
- * crossing a logid boundary, skip the non-existent last log
- * segment in previous logical log file.
+ * crossing a logid boundary, skip the non-existent last log segment
+ * in previous logical log file.
*/
startptr.xlogid += 1;
startptr.xrecoff = 0;
@@ -739,8 +741,8 @@ XLogSend(char *msgbuf, bool *caughtup)
XLogRead(msgbuf + 1 + sizeof(WalDataMessageHeader), startptr, nbytes);
/*
- * We fill the message header last so that the send timestamp is taken
- * as late as possible.
+ * We fill the message header last so that the send timestamp is taken as
+ * late as possible.
*/
msghdr.dataStart = startptr;
msghdr.walEnd = SendRqstPtr;
@@ -931,4 +933,5 @@ GetOldestWALSendPointer(void)
}
return oldest;
}
+
#endif