registry: min cycle interval for BlockServiceFileTracker

This commit is contained in:
Miroslav Crnic
2026-03-23 08:09:39 +00:00
parent 2f1b3a302d
commit c464d717e4
2 changed files with 7 additions and 0 deletions
+5
View File
@@ -76,6 +76,11 @@ void BlockServiceFileTracker::_processResponses() {
void BlockServiceFileTracker::_scanBlockServices() {
if (_blockServiceState.empty() && _pendingBlockServices.empty()) {
auto now = ternNow();
if (now - _lastScanCycleComplete < MIN_SCAN_CYCLE_INTERVAL) {
return;
}
_lastScanCycleComplete = now;
LOG_INFO(_env, "Scanning for block services to track");
_registryDB.blockServices(_pendingBlockServices);
}
+2
View File
@@ -28,6 +28,7 @@ public:
static constexpr uint32_t MAX_BLOCK_SERVICE_SCAN = 128;
static constexpr uint32_t MAX_SHARD_RESPONSES = 2*MAX_BLOCK_SERVICE_SCAN;
static constexpr Duration SHARD_RETRY_TIMEOUT = 1_sec;
static constexpr Duration MIN_SCAN_CYCLE_INTERVAL = 15_mins;
BlockServiceFileTracker(Logger& logger, std::shared_ptr<XmonAgent>& xmon, const RegistryOptions& options, RegistryDB& db, RegistryServer& server, RegistryWriter& writer);
@@ -51,6 +52,7 @@ private:
std::unordered_map<BlockServiceId, BlockServiceStatus> _blockServiceState;
std::vector<FullBlockServiceInfo> _pendingBlockServices;
ShardId _currentShardIndex = 0;
TernTime _lastScanCycleComplete = 0;
void _processResponses();
void _scanBlockServices();