diff --git a/deps/xredis-gtid b/deps/xredis-gtid index d3d3fe6669a..509e78a3bea 160000 --- a/deps/xredis-gtid +++ b/deps/xredis-gtid @@ -1 +1 @@ -Subproject commit d3d3fe6669a21c5b1613b41e5d054de64f55d0b6 +Subproject commit 509e78a3bea86ee9dc81d42c0329d2cd6082eac4 diff --git a/src/config.c b/src/config.c index d72b31e7bfc..39007f19b87 100644 --- a/src/config.c +++ b/src/config.c @@ -2470,6 +2470,15 @@ static int updateMaxmemory(long long val, long long prev, const char **err) { } return 1; } + +static int updateGtidXsyncMaxGap(long long val, long long prev, const char **err) {; + UNUSED(err); + if (val != prev) { + gtidGaplogResetDataSize(server.gtid_gap_log, val); + } + return 1; +} + #ifdef ENABLE_SWAP static int updateSwapAbsentCacheCapacity(long long val, long long prev, const char **err) { UNUSED(prev); @@ -3166,7 +3175,7 @@ standardConfig configs[] = { createULongLongConfig("swap-sst-age-limit-refresh-period", NULL, MODIFIABLE_CONFIG, 1, 3600*24, server.swap_sst_age_limit_refresh_period, 60, INTEGER_CONFIG, NULL, NULL), createULongLongConfig("swap-swap-info-slave-period", NULL, MODIFIABLE_CONFIG, 1, 3600*24, server.swap_swap_info_slave_period, 60, INTEGER_CONFIG, NULL, NULL), #endif - createULongLongConfig("gtid-xsync-max-gap", NULL, MODIFIABLE_CONFIG, 0, ULLONG_MAX, server.gtid_xsync_max_gap, 10000, INTEGER_CONFIG, NULL, NULL), + createULongLongConfig("gtid-xsync-max-gap", NULL, MODIFIABLE_CONFIG, 0, ULLONG_MAX, server.gtid_xsync_max_gap, 10000, INTEGER_CONFIG, NULL, updateGtidXsyncMaxGap), /* Size_t configs */ createSizeTConfig("hash-max-ziplist-entries", NULL, MODIFIABLE_CONFIG, 0, LONG_MAX, server.hash_max_ziplist_entries, 512, INTEGER_CONFIG, NULL, NULL), diff --git a/src/server.c b/src/server.c index 58669642dd1..5d73c4a3f80 100644 --- a/src/server.c +++ b/src/server.c @@ -3521,7 +3521,7 @@ void initServer(void) { server.gtid_lost = gtidSetNew(); xsyncUuidInterestedInit(); gtidInitialInfoInit(server.gtid_initial); - server.gtid_gap_log = gtidGaplogNew(); + server.gtid_gap_log = gtidGaplogNew(server.gtid_xsync_max_gap); server.gtid_xsync_fullresync_indicator = 0; server.gtid_executed_cmd_count = 0; server.gtid_ignored_cmd_count = 0;