diff options
-rw-r--r-- | src/rdb.c | 2 | ||||
-rw-r--r-- | src/redis.c | 1 | ||||
-rw-r--r-- | src/redis.h | 6 |
3 files changed, 9 insertions, 0 deletions
@@ -776,6 +776,7 @@ int rdbSaveBackground(char *filename) { redisLog(REDIS_NOTICE,"Background saving started by pid %d",childpid); server.rdb_save_time_start = time(NULL); server.rdb_child_pid = childpid; + server.rdb_child_type = REDIS_RDB_CHILD_TYPE_DISK; updateDictResizePolicy(); return REDIS_OK; } @@ -1236,6 +1237,7 @@ void backgroundSaveDoneHandler(int exitcode, int bysignal) { server.lastbgsave_status = REDIS_ERR; } server.rdb_child_pid = -1; + server.rdb_child_type = REDIS_RDB_CHILD_TYPE_NONE; server.rdb_save_time_last = time(NULL)-server.rdb_save_time_start; server.rdb_save_time_start = -1; /* Possibly there are slaves waiting for a BGSAVE in order to be served diff --git a/src/redis.c b/src/redis.c index e7faa8859..3340ecef9 100644 --- a/src/redis.c +++ b/src/redis.c @@ -1768,6 +1768,7 @@ void initServer(void) { server.cronloops = 0; server.rdb_child_pid = -1; server.aof_child_pid = -1; + server.rdb_child_type = REDIS_RDB_CHILD_TYPE_NONE; aofRewriteBufferReset(); server.aof_buf = sdsempty(); server.lastsave = time(NULL); /* At startup we consider the DB saved. */ diff --git a/src/redis.h b/src/redis.h index a1ae0f2bc..5e756f0f0 100644 --- a/src/redis.h +++ b/src/redis.h @@ -361,6 +361,11 @@ typedef long long mstime_t; /* millisecond time type. */ #define REDIS_PROPAGATE_AOF 1 #define REDIS_PROPAGATE_REPL 2 +/* RDB active child save type. */ +#define REDIS_RDB_CHILD_TYPE_NONE 0 +#define REDIS_RDB_CHILD_TYPE_DISK 1 /* RDB is written to disk. */ +#define REDIS_RDB_CHILD_TYPE_SOCKET 2 /* RDB is written to slave socket. */ + /* Keyspace changes notification classes. Every class is associated with a * character for configuration purposes. */ #define REDIS_NOTIFY_KEYSPACE (1<<0) /* K */ @@ -764,6 +769,7 @@ struct redisServer { time_t lastbgsave_try; /* Unix time of last attempted bgsave */ time_t rdb_save_time_last; /* Time used by last RDB save run. */ time_t rdb_save_time_start; /* Current RDB save start time. */ + int rdb_child_type; /* Type of save by active child. */ int lastbgsave_status; /* REDIS_OK or REDIS_ERR */ int stop_writes_on_bgsave_err; /* Don't allow writes if can't BGSAVE */ /* Propagation of commands in AOF / replication */ |