mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 17:10:50 +00:00
Define different types of RDB childs.
We need to remember what is the saving strategy of the current RDB child process, since the configuration may be modified at runtime via CONFIG SET and still we'll need to understand, when the child exists, what to do and for what goal the process was initiated: to create an RDB file on disk or to write stuff directly to slave's sockets.
This commit is contained in:
parent
8beb98574a
commit
2df8341c75
@ -776,6 +776,7 @@ int rdbSaveBackground(char *filename) {
|
|||||||
redisLog(REDIS_NOTICE,"Background saving started by pid %d",childpid);
|
redisLog(REDIS_NOTICE,"Background saving started by pid %d",childpid);
|
||||||
server.rdb_save_time_start = time(NULL);
|
server.rdb_save_time_start = time(NULL);
|
||||||
server.rdb_child_pid = childpid;
|
server.rdb_child_pid = childpid;
|
||||||
|
server.rdb_child_type = REDIS_RDB_CHILD_TYPE_DISK;
|
||||||
updateDictResizePolicy();
|
updateDictResizePolicy();
|
||||||
return REDIS_OK;
|
return REDIS_OK;
|
||||||
}
|
}
|
||||||
@ -1236,6 +1237,7 @@ void backgroundSaveDoneHandler(int exitcode, int bysignal) {
|
|||||||
server.lastbgsave_status = REDIS_ERR;
|
server.lastbgsave_status = REDIS_ERR;
|
||||||
}
|
}
|
||||||
server.rdb_child_pid = -1;
|
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_last = time(NULL)-server.rdb_save_time_start;
|
||||||
server.rdb_save_time_start = -1;
|
server.rdb_save_time_start = -1;
|
||||||
/* Possibly there are slaves waiting for a BGSAVE in order to be served
|
/* Possibly there are slaves waiting for a BGSAVE in order to be served
|
||||||
|
@ -1768,6 +1768,7 @@ void initServer(void) {
|
|||||||
server.cronloops = 0;
|
server.cronloops = 0;
|
||||||
server.rdb_child_pid = -1;
|
server.rdb_child_pid = -1;
|
||||||
server.aof_child_pid = -1;
|
server.aof_child_pid = -1;
|
||||||
|
server.rdb_child_type = REDIS_RDB_CHILD_TYPE_NONE;
|
||||||
aofRewriteBufferReset();
|
aofRewriteBufferReset();
|
||||||
server.aof_buf = sdsempty();
|
server.aof_buf = sdsempty();
|
||||||
server.lastsave = time(NULL); /* At startup we consider the DB saved. */
|
server.lastsave = time(NULL); /* At startup we consider the DB saved. */
|
||||||
|
@ -361,6 +361,11 @@ typedef long long mstime_t; /* millisecond time type. */
|
|||||||
#define REDIS_PROPAGATE_AOF 1
|
#define REDIS_PROPAGATE_AOF 1
|
||||||
#define REDIS_PROPAGATE_REPL 2
|
#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
|
/* Keyspace changes notification classes. Every class is associated with a
|
||||||
* character for configuration purposes. */
|
* character for configuration purposes. */
|
||||||
#define REDIS_NOTIFY_KEYSPACE (1<<0) /* K */
|
#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 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_last; /* Time used by last RDB save run. */
|
||||||
time_t rdb_save_time_start; /* Current RDB save start time. */
|
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 lastbgsave_status; /* REDIS_OK or REDIS_ERR */
|
||||||
int stop_writes_on_bgsave_err; /* Don't allow writes if can't BGSAVE */
|
int stop_writes_on_bgsave_err; /* Don't allow writes if can't BGSAVE */
|
||||||
/* Propagation of commands in AOF / replication */
|
/* Propagation of commands in AOF / replication */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user