@@ -537,6 +537,12 @@ void loadServerConfigFromString(char *config) {
537
537
err = "active-defrag-cycle-max must be between 1 and 99" ;
538
538
goto loaderr ;
539
539
}
540
+ } else if (!strcasecmp (argv [0 ],"active-defrag-max-scan-fields" ) && argc == 2 ) {
541
+ server .active_defrag_max_scan_fields = strtoll (argv [1 ],NULL ,10 );
542
+ if (server .active_defrag_max_scan_fields < 1 ) {
543
+ err = "active-defrag-max-scan-fields must be positive" ;
544
+ goto loaderr ;
545
+ }
540
546
} else if (!strcasecmp (argv [0 ],"hash-max-ziplist-entries" ) && argc == 2 ) {
541
547
server .hash_max_ziplist_entries = memtoll (argv [1 ], NULL );
542
548
} else if (!strcasecmp (argv [0 ],"hash-max-ziplist-value" ) && argc == 2 ) {
@@ -1068,6 +1074,8 @@ void configSetCommand(client *c) {
1068
1074
"active-defrag-cycle-min" ,server .active_defrag_cycle_min ,1 ,99 ) {
1069
1075
} config_set_numerical_field (
1070
1076
"active-defrag-cycle-max" ,server .active_defrag_cycle_max ,1 ,99 ) {
1077
+ } config_set_numerical_field (
1078
+ "active-defrag-max-scan-fields" ,server .active_defrag_max_scan_fields ,1 ,LLONG_MAX ) {
1071
1079
} config_set_numerical_field (
1072
1080
"auto-aof-rewrite-percentage" ,server .aof_rewrite_perc ,0 ,LLONG_MAX ){
1073
1081
} config_set_numerical_field (
@@ -1249,6 +1257,7 @@ void configGetCommand(client *c) {
1249
1257
config_get_numerical_field ("active-defrag-ignore-bytes" ,server .active_defrag_ignore_bytes );
1250
1258
config_get_numerical_field ("active-defrag-cycle-min" ,server .active_defrag_cycle_min );
1251
1259
config_get_numerical_field ("active-defrag-cycle-max" ,server .active_defrag_cycle_max );
1260
+ config_get_numerical_field ("active-defrag-max-scan-fields" ,server .active_defrag_max_scan_fields );
1252
1261
config_get_numerical_field ("auto-aof-rewrite-percentage" ,
1253
1262
server .aof_rewrite_perc );
1254
1263
config_get_numerical_field ("auto-aof-rewrite-min-size" ,
@@ -2025,6 +2034,7 @@ int rewriteConfig(char *path) {
2025
2034
rewriteConfigBytesOption (state ,"active-defrag-ignore-bytes" ,server .active_defrag_ignore_bytes ,CONFIG_DEFAULT_DEFRAG_IGNORE_BYTES );
2026
2035
rewriteConfigNumericalOption (state ,"active-defrag-cycle-min" ,server .active_defrag_cycle_min ,CONFIG_DEFAULT_DEFRAG_CYCLE_MIN );
2027
2036
rewriteConfigNumericalOption (state ,"active-defrag-cycle-max" ,server .active_defrag_cycle_max ,CONFIG_DEFAULT_DEFRAG_CYCLE_MAX );
2037
+ rewriteConfigNumericalOption (state ,"active-defrag-max-scan-fields" ,server .active_defrag_max_scan_fields ,CONFIG_DEFAULT_DEFRAG_MAX_SCAN_FIELDS );
2028
2038
rewriteConfigYesNoOption (state ,"appendonly" ,server .aof_state != AOF_OFF ,0 );
2029
2039
rewriteConfigStringOption (state ,"appendfilename" ,server .aof_filename ,CONFIG_DEFAULT_AOF_FILENAME );
2030
2040
rewriteConfigEnumOption (state ,"appendfsync" ,server .aof_fsync ,aof_fsync_enum ,CONFIG_DEFAULT_AOF_FSYNC );
0 commit comments