summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2018-03-22 09:16:32 +0100
committerGitHub <noreply@github.com>2018-03-22 09:16:32 +0100
commitda621783f0cb70ef758542720d987c144427cd3d (patch)
tree54e33a2262144c68012c54e4ad3ae6334310d42d /src/config.c
parent3851d30ada437fbeedec70badc7624757f092f21 (diff)
parent806736cdf91658e7a8e1a2d8631b82763b508c36 (diff)
downloadredis-da621783f0cb70ef758542720d987c144427cd3d.tar.gz
Merge pull request #4691 from oranagra/active_defrag_v2
Active defrag v2
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/config.c b/src/config.c
index 595537821..a1122d059 100644
--- a/src/config.c
+++ b/src/config.c
@@ -537,6 +537,12 @@ void loadServerConfigFromString(char *config) {
err = "active-defrag-cycle-max must be between 1 and 99";
goto loaderr;
}
+ } else if (!strcasecmp(argv[0],"active-defrag-max-scan-fields") && argc == 2) {
+ server.active_defrag_max_scan_fields = strtoll(argv[1],NULL,10);
+ if (server.active_defrag_max_scan_fields < 1) {
+ err = "active-defrag-max-scan-fields must be positive";
+ goto loaderr;
+ }
} else if (!strcasecmp(argv[0],"hash-max-ziplist-entries") && argc == 2) {
server.hash_max_ziplist_entries = memtoll(argv[1], NULL);
} else if (!strcasecmp(argv[0],"hash-max-ziplist-value") && argc == 2) {
@@ -1069,6 +1075,8 @@ void configSetCommand(client *c) {
} config_set_numerical_field(
"active-defrag-cycle-max",server.active_defrag_cycle_max,1,99) {
} config_set_numerical_field(
+ "active-defrag-max-scan-fields",server.active_defrag_max_scan_fields,1,LLONG_MAX) {
+ } config_set_numerical_field(
"auto-aof-rewrite-percentage",server.aof_rewrite_perc,0,LLONG_MAX){
} config_set_numerical_field(
"hash-max-ziplist-entries",server.hash_max_ziplist_entries,0,LLONG_MAX) {
@@ -1249,6 +1257,7 @@ void configGetCommand(client *c) {
config_get_numerical_field("active-defrag-ignore-bytes",server.active_defrag_ignore_bytes);
config_get_numerical_field("active-defrag-cycle-min",server.active_defrag_cycle_min);
config_get_numerical_field("active-defrag-cycle-max",server.active_defrag_cycle_max);
+ config_get_numerical_field("active-defrag-max-scan-fields",server.active_defrag_max_scan_fields);
config_get_numerical_field("auto-aof-rewrite-percentage",
server.aof_rewrite_perc);
config_get_numerical_field("auto-aof-rewrite-min-size",
@@ -2025,6 +2034,7 @@ int rewriteConfig(char *path) {
rewriteConfigBytesOption(state,"active-defrag-ignore-bytes",server.active_defrag_ignore_bytes,CONFIG_DEFAULT_DEFRAG_IGNORE_BYTES);
rewriteConfigNumericalOption(state,"active-defrag-cycle-min",server.active_defrag_cycle_min,CONFIG_DEFAULT_DEFRAG_CYCLE_MIN);
rewriteConfigNumericalOption(state,"active-defrag-cycle-max",server.active_defrag_cycle_max,CONFIG_DEFAULT_DEFRAG_CYCLE_MAX);
+ rewriteConfigNumericalOption(state,"active-defrag-max-scan-fields",server.active_defrag_max_scan_fields,CONFIG_DEFAULT_DEFRAG_MAX_SCAN_FIELDS);
rewriteConfigYesNoOption(state,"appendonly",server.aof_state != AOF_OFF,0);
rewriteConfigStringOption(state,"appendfilename",server.aof_filename,CONFIG_DEFAULT_AOF_FILENAME);
rewriteConfigEnumOption(state,"appendfsync",server.aof_fsync,aof_fsync_enum,CONFIG_DEFAULT_AOF_FSYNC);