Turn off WalSender keepalives by default, users can enable if desired
authorSimon Riggs <simon@2ndQuadrant.com>
Thu, 9 Aug 2012 16:07:03 +0000 (17:07 +0100)
committerSimon Riggs <simon@2ndQuadrant.com>
Thu, 9 Aug 2012 16:07:03 +0000 (17:07 +0100)
src/backend/replication/walsender.c
src/include/replication/walsender_private.h

index 37a030b5f5e4e1536c44227672be05ffcff88537..38f7a3f1c36bccd290a76dab00a33fc4a2fdbe27 100644 (file)
@@ -837,7 +837,7 @@ WalSndLoop(void)
 
            if (pq_is_send_pending())
                wakeEvents |= WL_SOCKET_WRITEABLE;
-           else
+           else if (MyWalSnd->sendKeepalive)
            {
                WalSndKeepalive(output_message);
                /* Try to flush pending output to the client */
index 66234cd8b5925d81b535522983fdc75da1d40c75..45cd7444cdfc8558bf86e7afe275d721ee95b245 100644 (file)
@@ -37,6 +37,7 @@ typedef struct WalSnd
    XLogRecPtr  sentPtr;        /* WAL has been sent up to this point */
    bool        needreload;     /* does currently-open file need to be
                                 * reloaded? */
+   bool        sendKeepalive;  /* do we send keepalives on this connection? */
 
    /*
     * The xlog locations that have been written, flushed, and applied by