Merge pull request #586 from saj/aof_last_bgrewrite_status

New in INFO: aof_last_bgrewrite_status
This commit is contained in:
Salvatore Sanfilippo 2012-07-27 03:55:20 -07:00
commit 8736a89ca4
3 changed files with 13 additions and 3 deletions

View File

@ -1093,6 +1093,8 @@ void backgroundRewriteDoneHandler(int exitcode, int bysignal) {
server.aof_buf = sdsempty(); server.aof_buf = sdsempty();
} }
server.aof_lastbgrewrite_status = REDIS_OK;
redisLog(REDIS_NOTICE, "Background AOF rewrite finished successfully"); redisLog(REDIS_NOTICE, "Background AOF rewrite finished successfully");
/* Change state from WAIT_REWRITE to ON if needed */ /* Change state from WAIT_REWRITE to ON if needed */
if (server.aof_state == REDIS_AOF_WAIT_REWRITE) if (server.aof_state == REDIS_AOF_WAIT_REWRITE)
@ -1104,9 +1106,13 @@ void backgroundRewriteDoneHandler(int exitcode, int bysignal) {
redisLog(REDIS_VERBOSE, redisLog(REDIS_VERBOSE,
"Background AOF rewrite signal handler took %lldus", ustime()-now); "Background AOF rewrite signal handler took %lldus", ustime()-now);
} else if (!bysignal && exitcode != 0) { } else if (!bysignal && exitcode != 0) {
server.aof_lastbgrewrite_status = REDIS_ERR;
redisLog(REDIS_WARNING, redisLog(REDIS_WARNING,
"Background AOF rewrite terminated with error"); "Background AOF rewrite terminated with error");
} else { } else {
server.aof_lastbgrewrite_status = REDIS_ERR;
redisLog(REDIS_WARNING, redisLog(REDIS_WARNING,
"Background AOF rewrite terminated by signal %d", bysignal); "Background AOF rewrite terminated by signal %d", bysignal);
} }

View File

@ -1121,6 +1121,7 @@ void initServerConfig() {
server.aof_last_fsync = time(NULL); server.aof_last_fsync = time(NULL);
server.aof_rewrite_time_last = -1; server.aof_rewrite_time_last = -1;
server.aof_rewrite_time_start = -1; server.aof_rewrite_time_start = -1;
server.aof_lastbgrewrite_status = REDIS_OK;
server.aof_delayed_fsync = 0; server.aof_delayed_fsync = 0;
server.aof_fd = -1; server.aof_fd = -1;
server.aof_selected_db = -1; /* Make sure the first time will not match */ server.aof_selected_db = -1; /* Make sure the first time will not match */
@ -1967,12 +1968,13 @@ sds genRedisInfoString(char *section) {
"aof_rewrite_in_progress:%d\r\n" "aof_rewrite_in_progress:%d\r\n"
"aof_rewrite_scheduled:%d\r\n" "aof_rewrite_scheduled:%d\r\n"
"aof_last_rewrite_time_sec:%ld\r\n" "aof_last_rewrite_time_sec:%ld\r\n"
"aof_current_rewrite_time_sec:%ld\r\n", "aof_current_rewrite_time_sec:%ld\r\n"
"aof_last_bgrewrite_status:%s\r\n",
server.loading, server.loading,
server.dirty, server.dirty,
server.rdb_child_pid != -1, server.rdb_child_pid != -1,
server.lastsave, server.lastsave,
server.lastbgsave_status == REDIS_OK ? "ok" : "err", (server.lastbgsave_status == REDIS_OK) ? "ok" : "err",
server.rdb_save_time_last, server.rdb_save_time_last,
(server.rdb_child_pid == -1) ? (server.rdb_child_pid == -1) ?
-1 : time(NULL)-server.rdb_save_time_start, -1 : time(NULL)-server.rdb_save_time_start,
@ -1981,7 +1983,8 @@ sds genRedisInfoString(char *section) {
server.aof_rewrite_scheduled, server.aof_rewrite_scheduled,
server.aof_rewrite_time_last, server.aof_rewrite_time_last,
(server.aof_child_pid == -1) ? (server.aof_child_pid == -1) ?
-1 : time(NULL)-server.aof_rewrite_time_start); -1 : time(NULL)-server.aof_rewrite_time_start,
(server.aof_lastbgrewrite_status == REDIS_OK) ? "ok" : "err");
if (server.aof_state != REDIS_AOF_OFF) { if (server.aof_state != REDIS_AOF_OFF) {
info = sdscatprintf(info, info = sdscatprintf(info,

View File

@ -652,6 +652,7 @@ struct redisServer {
time_t aof_last_fsync; /* UNIX time of last fsync() */ time_t aof_last_fsync; /* UNIX time of last fsync() */
time_t aof_rewrite_time_last; /* Time used by last AOF rewrite run. */ time_t aof_rewrite_time_last; /* Time used by last AOF rewrite run. */
time_t aof_rewrite_time_start; /* Current AOF rewrite start time. */ time_t aof_rewrite_time_start; /* Current AOF rewrite start time. */
int aof_lastbgrewrite_status; /* REDIS_OK or REDIS_ERR */
unsigned long aof_delayed_fsync; /* delayed AOF fsync() counter */ unsigned long aof_delayed_fsync; /* delayed AOF fsync() counter */
/* RDB persistence */ /* RDB persistence */
long long dirty; /* Changes to DB from the last save */ long long dirty; /* Changes to DB from the last save */