diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index 94f85f5007..c20f55e8fb 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -660,6 +660,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { if (cfgAddString(pCfg, "s3Accesskey", tsS3AccessKey, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddString(pCfg, "s3Endpoint", tsS3Endpoint, CFG_SCOPE_SERVER) != 0) return -1; if (cfgAddString(pCfg, "s3BucketName", tsS3BucketName, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt32(pCfg, "s3BlockSize", tsS3BlockSize, 2048, 1024 * 1024, CFG_SCOPE_SERVER) != 0) return -1; + if (cfgAddInt32(pCfg, "s3BlockCacheSize", tsS3BlockCacheSize, 4, 1024 * 1024, CFG_SCOPE_SERVER) != 0) return -1; // min free disk space used to check if the disk is full [50MB, 1GB] if (cfgAddInt64(pCfg, "minDiskFreeSize", tsMinDiskFreeSize, TFS_MIN_DISK_FREE_SIZE, 1024 * 1024 * 1024, @@ -1075,6 +1077,9 @@ static int32_t taosSetServerCfg(SConfig *pCfg) { tsResolveFQDNRetryTime = cfgGetItem(pCfg, "resolveFQDNRetryTime")->i32; tsMinDiskFreeSize = cfgGetItem(pCfg, "minDiskFreeSize")->i64; + tsS3BlockSize = cfgGetItem(pCfg, "s3BlockSize")->i32; + tsS3BlockCacheSize = cfgGetItem(pCfg, "s3BlockCacheSize")->i32; + GRANT_CFG_GET; return 0; } @@ -1647,6 +1652,20 @@ void taosCfgDynamicOptions(const char *option, const char *value) { return; } + if (strcasecmp(option, "s3BlockSize") == 0) { + int32_t newS3BlockSize = atoi(value); + uInfo("s3BlockSize set from %d to %d", tsS3BlockSize, newS3BlockSize); + tsS3BlockSize = newS3BlockSize; + return; + } + + if (strcasecmp(option, "s3BlockCacheSize") == 0) { + int32_t newS3BlockCacheSize = atoi(value); + uInfo("s3BlockCacheSize set from %d to %d", tsS3BlockCacheSize, newS3BlockCacheSize); + tsS3BlockCacheSize = newS3BlockCacheSize; + return; + } + if (strcasecmp(option, "keepTimeOffset") == 0) { int32_t newKeepTimeOffset = atoi(value); uInfo("keepTimeOffset set from %d to %d", tsKeepTimeOffset, newKeepTimeOffset);