- return std::make_shared<AsyncHiredisDatabaseDiscovery>(engine,
- ns,
- DatabaseInfo::Type::SINGLE,
- staticAddresses,
- logger);
+ if (staticDbType == DatabaseConfiguration::DbType::REDIS_SENTINEL ||
+ staticDbType == DatabaseConfiguration::DbType::SDL_SENTINEL_CLUSTER)
+ {
+ auto sentinelAddress(staticDatabaseConfiguration.getSentinelAddress(addressIndex));
+ if (sentinelAddress)
+ return std::make_shared<AsyncSentinelDatabaseDiscovery>(engine,
+ logger,
+ *sentinelAddress,
+ staticDatabaseConfiguration.getSentinelMasterName());
+ else
+ SHAREDDATALAYER_ABORT("Sentinel address not configured.");
+ }
+ else
+ {
+ return std::make_shared<AsyncHiredisDatabaseDiscovery>(engine,
+ ns,
+ DatabaseInfo::Type::SINGLE,
+ staticAddresses,
+ logger);
+ }