mirror of
https://github.com/fluencelabs/redis
synced 2025-03-25 20:01:04 +00:00
Diskless replication: redis.conf and CONFIG SET/GET support.
This commit is contained in:
parent
42951ab301
commit
43ae606430
12
src/config.c
12
src/config.c
@ -270,6 +270,10 @@ void loadServerConfigFromString(char *config) {
|
|||||||
if ((server.repl_disable_tcp_nodelay = yesnotoi(argv[1])) == -1) {
|
if ((server.repl_disable_tcp_nodelay = yesnotoi(argv[1])) == -1) {
|
||||||
err = "argument must be 'yes' or 'no'"; goto loaderr;
|
err = "argument must be 'yes' or 'no'"; goto loaderr;
|
||||||
}
|
}
|
||||||
|
} else if (!strcasecmp(argv[0],"repl-diskless-sync") && argc==2) {
|
||||||
|
if ((server.repl_diskless_sync = yesnotoi(argv[1])) == -1) {
|
||||||
|
err = "argument must be 'yes' or 'no'"; goto loaderr;
|
||||||
|
}
|
||||||
} else if (!strcasecmp(argv[0],"repl-backlog-size") && argc == 2) {
|
} else if (!strcasecmp(argv[0],"repl-backlog-size") && argc == 2) {
|
||||||
long long size = memtoll(argv[1],NULL);
|
long long size = memtoll(argv[1],NULL);
|
||||||
if (size <= 0) {
|
if (size <= 0) {
|
||||||
@ -911,6 +915,11 @@ void configSetCommand(redisClient *c) {
|
|||||||
|
|
||||||
if (yn == -1) goto badfmt;
|
if (yn == -1) goto badfmt;
|
||||||
server.repl_disable_tcp_nodelay = yn;
|
server.repl_disable_tcp_nodelay = yn;
|
||||||
|
} else if (!strcasecmp(c->argv[2]->ptr,"repl-diskless-sync")) {
|
||||||
|
int yn = yesnotoi(o->ptr);
|
||||||
|
|
||||||
|
if (yn == -1) goto badfmt;
|
||||||
|
server.repl_diskless_sync = yn;
|
||||||
} else if (!strcasecmp(c->argv[2]->ptr,"slave-priority")) {
|
} else if (!strcasecmp(c->argv[2]->ptr,"slave-priority")) {
|
||||||
if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
|
if (getLongLongFromObject(o,&ll) == REDIS_ERR ||
|
||||||
ll < 0) goto badfmt;
|
ll < 0) goto badfmt;
|
||||||
@ -1067,6 +1076,8 @@ void configGetCommand(redisClient *c) {
|
|||||||
config_get_bool_field("activerehashing", server.activerehashing);
|
config_get_bool_field("activerehashing", server.activerehashing);
|
||||||
config_get_bool_field("repl-disable-tcp-nodelay",
|
config_get_bool_field("repl-disable-tcp-nodelay",
|
||||||
server.repl_disable_tcp_nodelay);
|
server.repl_disable_tcp_nodelay);
|
||||||
|
config_get_bool_field("repl-diskless-sync",
|
||||||
|
server.repl_diskless_sync);
|
||||||
config_get_bool_field("aof-rewrite-incremental-fsync",
|
config_get_bool_field("aof-rewrite-incremental-fsync",
|
||||||
server.aof_rewrite_incremental_fsync);
|
server.aof_rewrite_incremental_fsync);
|
||||||
config_get_bool_field("aof-load-truncated",
|
config_get_bool_field("aof-load-truncated",
|
||||||
@ -1792,6 +1803,7 @@ int rewriteConfig(char *path) {
|
|||||||
rewriteConfigBytesOption(state,"repl-backlog-size",server.repl_backlog_size,REDIS_DEFAULT_REPL_BACKLOG_SIZE);
|
rewriteConfigBytesOption(state,"repl-backlog-size",server.repl_backlog_size,REDIS_DEFAULT_REPL_BACKLOG_SIZE);
|
||||||
rewriteConfigBytesOption(state,"repl-backlog-ttl",server.repl_backlog_time_limit,REDIS_DEFAULT_REPL_BACKLOG_TIME_LIMIT);
|
rewriteConfigBytesOption(state,"repl-backlog-ttl",server.repl_backlog_time_limit,REDIS_DEFAULT_REPL_BACKLOG_TIME_LIMIT);
|
||||||
rewriteConfigYesNoOption(state,"repl-disable-tcp-nodelay",server.repl_disable_tcp_nodelay,REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY);
|
rewriteConfigYesNoOption(state,"repl-disable-tcp-nodelay",server.repl_disable_tcp_nodelay,REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY);
|
||||||
|
rewriteConfigYesNoOption(state,"repl-diskless-sync",server.repl_diskless_sync,REDIS_DEFAULT_REPL_DISKLESS_SYNC);
|
||||||
rewriteConfigNumericalOption(state,"slave-priority",server.slave_priority,REDIS_DEFAULT_SLAVE_PRIORITY);
|
rewriteConfigNumericalOption(state,"slave-priority",server.slave_priority,REDIS_DEFAULT_SLAVE_PRIORITY);
|
||||||
rewriteConfigNumericalOption(state,"min-slaves-to-write",server.repl_min_slaves_to_write,REDIS_DEFAULT_MIN_SLAVES_TO_WRITE);
|
rewriteConfigNumericalOption(state,"min-slaves-to-write",server.repl_min_slaves_to_write,REDIS_DEFAULT_MIN_SLAVES_TO_WRITE);
|
||||||
rewriteConfigNumericalOption(state,"min-slaves-max-lag",server.repl_min_slaves_max_lag,REDIS_DEFAULT_MIN_SLAVES_MAX_LAG);
|
rewriteConfigNumericalOption(state,"min-slaves-max-lag",server.repl_min_slaves_max_lag,REDIS_DEFAULT_MIN_SLAVES_MAX_LAG);
|
||||||
|
@ -1480,7 +1480,7 @@ void initServerConfig(void) {
|
|||||||
server.repl_slave_ro = REDIS_DEFAULT_SLAVE_READ_ONLY;
|
server.repl_slave_ro = REDIS_DEFAULT_SLAVE_READ_ONLY;
|
||||||
server.repl_down_since = 0; /* Never connected, repl is down since EVER. */
|
server.repl_down_since = 0; /* Never connected, repl is down since EVER. */
|
||||||
server.repl_disable_tcp_nodelay = REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY;
|
server.repl_disable_tcp_nodelay = REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY;
|
||||||
server.repl_diskless_sync = REDIS_DEFAULT_RDB_DISKLESS_SYNC;
|
server.repl_diskless_sync = REDIS_DEFAULT_REPL_DISKLESS_SYNC;
|
||||||
server.slave_priority = REDIS_DEFAULT_SLAVE_PRIORITY;
|
server.slave_priority = REDIS_DEFAULT_SLAVE_PRIORITY;
|
||||||
server.master_repl_offset = 0;
|
server.master_repl_offset = 0;
|
||||||
|
|
||||||
|
@ -114,8 +114,8 @@ typedef long long mstime_t; /* millisecond time type. */
|
|||||||
#define REDIS_DEFAULT_RDB_COMPRESSION 1
|
#define REDIS_DEFAULT_RDB_COMPRESSION 1
|
||||||
#define REDIS_DEFAULT_RDB_CHECKSUM 1
|
#define REDIS_DEFAULT_RDB_CHECKSUM 1
|
||||||
#define REDIS_DEFAULT_RDB_FILENAME "dump.rdb"
|
#define REDIS_DEFAULT_RDB_FILENAME "dump.rdb"
|
||||||
#define REDIS_DEFAULT_RDB_DISKLESS_SYNC 0
|
#define REDIS_DEFAULT_REPL_DISKLESS_SYNC 0
|
||||||
#define REDIS_DEFAULT_RDB_DISKLESS_SYNC_DELAY 5
|
#define REDIS_DEFAULT_REPL_DISKLESS_SYNC_DELAY 5
|
||||||
#define REDIS_DEFAULT_SLAVE_SERVE_STALE_DATA 1
|
#define REDIS_DEFAULT_SLAVE_SERVE_STALE_DATA 1
|
||||||
#define REDIS_DEFAULT_SLAVE_READ_ONLY 1
|
#define REDIS_DEFAULT_SLAVE_READ_ONLY 1
|
||||||
#define REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY 0
|
#define REDIS_DEFAULT_REPL_DISABLE_TCP_NODELAY 0
|
||||||
|
@ -1967,7 +1967,8 @@ void replicationCron(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (slaves_waiting && max_idle > REDIS_DEFAULT_RDB_DISKLESS_SYNC_DELAY) {
|
if (slaves_waiting && max_idle > REDIS_DEFAULT_REPL_DISKLESS_SYNC_DELAY)
|
||||||
|
{
|
||||||
/* Let's start a BGSAVE with disk target. */
|
/* Let's start a BGSAVE with disk target. */
|
||||||
if (startBgsaveForReplication() == REDIS_OK) {
|
if (startBgsaveForReplication() == REDIS_OK) {
|
||||||
/* It started! We need to change the state of slaves
|
/* It started! We need to change the state of slaves
|
||||||
|
Loading…
x
Reference in New Issue
Block a user