]> git.saurik.com Git - redis.git/commitdiff
new INFO filed master_link_down_since_seconds
authorantirez <antirez@gmail.com>
Fri, 17 Jun 2011 14:13:22 +0000 (16:13 +0200)
committerantirez <antirez@gmail.com>
Fri, 17 Jun 2011 14:16:46 +0000 (16:16 +0200)
src/networking.c
src/redis.c
src/redis.h

index 4a6a8afd8c3cc6cd1c4abc7d58c88dd0abb1773c..c7b56ca4cc8e8c90bfe143b847825a632d7dc32c 100644 (file)
@@ -522,6 +522,7 @@ void freeClient(redisClient *c) {
     if (c->flags & REDIS_MASTER) {
         server.master = NULL;
         server.replstate = REDIS_REPL_CONNECT;
+        server.repl_down_since = time(NULL);
         /* Since we lost the connection with the master, we should also
          * close the connection with all our slaves if we have any, so
          * when we'll resync with the master the other slaves will sync again
index e7351b6ef5381001b8b78dc221fad40a85a12fc0..8fbed746d478499b1b6b646f306f75eafb3db94d 100644 (file)
@@ -901,6 +901,7 @@ void initServerConfig() {
     server.replstate = REDIS_REPL_NONE;
     server.repl_syncio_timeout = REDIS_REPL_SYNCIO_TIMEOUT;
     server.repl_serve_stale_data = 1;
+    server.repl_down_since = -1;
 
     /* Double constants initialization */
     R_Zero = 0.0;
@@ -1522,6 +1523,12 @@ sds genRedisInfoString(char *section) {
                     (int)(time(NULL)-server.repl_transfer_lastio)
                 );
             }
+
+            if (server.replstate != REDIS_REPL_CONNECTED) {
+                info = sdscatprintf(info,
+                    "master_link_down_since_seconds:%ld\r\n",
+                    (long)time(NULL)-server.repl_down_since);
+            }
         }
         info = sdscatprintf(info,
             "connected_slaves:%d\r\n",
index ce62d226be46f029e4d20a0a51a39acb506646fa..3b5cb0230bf1976aae58793cb88080e8becd39a4 100644 (file)
@@ -604,6 +604,7 @@ struct redisServer {
     char *repl_transfer_tmpfile; /* slave-> master SYNC temp file name */
     time_t repl_transfer_lastio; /* unix time of the latest read, for timeout */
     int repl_serve_stale_data; /* Serve stale data when link is down? */
+    time_t repl_down_since; /* unix time at which link with master went down */
     /* Limits */
     unsigned int maxclients;
     unsigned long long maxmemory;