diff --git a/BenchmarkTool/ClientRead.cs b/BenchmarkTool/ClientRead.cs index e6486d5..b75bd93 100644 --- a/BenchmarkTool/ClientRead.cs +++ b/BenchmarkTool/ClientRead.cs @@ -28,7 +28,7 @@ public ClientRead() _minutes = Config.GetDurationMinutes(); var dbFactory = new DatabaseFactory(); - _targetDb = dbFactory.Create(); + _targetDb = dbFactory.Create(1, 0, 0); _targetDb.Init(); } catch (Exception ex) diff --git a/BenchmarkTool/ClientWrite.cs b/BenchmarkTool/ClientWrite.cs index 6b1a48d..7684c90 100644 --- a/BenchmarkTool/ClientWrite.cs +++ b/BenchmarkTool/ClientWrite.cs @@ -31,7 +31,7 @@ public ClientWrite(int index, int clientsNumber, int sensorNumber, int batchSize _date = date; _daySpan = Config.GetDaySpan(); var dbFactory = new DatabaseFactory(); - _targetDb = dbFactory.Create(); + _targetDb = dbFactory.Create(ClientsNumber, SensorsNumber, BatchSize); _targetDb.Init(); } catch (Exception ex) diff --git a/BenchmarkTool/Database/DatabaseFactory.cs b/BenchmarkTool/Database/DatabaseFactory.cs index 5434911..3c00bf9 100644 --- a/BenchmarkTool/Database/DatabaseFactory.cs +++ b/BenchmarkTool/Database/DatabaseFactory.cs @@ -12,7 +12,7 @@ public DatabaseFactory() _database = Config.GetTargetDatabase(); } - public IDatabase Create() + public IDatabase Create(int clientsNumber, int sensorsNumber, int batchSize) { switch (_database) { @@ -27,7 +27,7 @@ public IDatabase Create() case Constants.MySQLClass: return new MySQLDB(); case Constants.RedisTimeSeriesClass: - return new RedisTimeSeriesDB(); + return new RedisTimeSeriesDB(clientsNumber, sensorsNumber, batchSize); default: throw new NotImplementedException(); } diff --git a/BenchmarkTool/Database/RedisTimeSeriesDB.cs b/BenchmarkTool/Database/RedisTimeSeriesDB.cs index 2385796..d90f9a2 100644 --- a/BenchmarkTool/Database/RedisTimeSeriesDB.cs +++ b/BenchmarkTool/Database/RedisTimeSeriesDB.cs @@ -19,11 +19,21 @@ public class RedisTimeSeriesDB : IDatabase { private static bool _initialized = false; - private SERedis.ConnectionMultiplexer _connection; + private static ConnectionMultiplexer _connection; private SERedis.IDatabase _redisDB; private TimeSeriesCommands _redists; private int _aggInterval; + private int _clientsNumber; + private int _sensorsNumber; + private int _batchSize; + + public RedisTimeSeriesDB(int clientsNumber, int sensorsNumber, int batchSize) + { + _clientsNumber = clientsNumber; + _sensorsNumber = sensorsNumber; + _batchSize = batchSize; + } public void Cleanup() { @@ -46,12 +56,15 @@ public void Init() { try { - var options = new ConfigurationOptions() + if (_connection == null) { - SocketManager = new SocketManager("test", 1), - EndPoints = { { Config.GetRedisHost(), Config.GetRedisPort() } }, - }; - _connection = ConnectionMultiplexer.Connect(options); + var options = new ConfigurationOptions() + { + SocketManager = new SocketManager("test", _clientsNumber), + EndPoints = { { Config.GetRedisHost(), Config.GetRedisPort() } }, + }; + _connection = ConnectionMultiplexer.Connect(options); + } _redisDB = _connection.GetDatabase(); _redists = _redisDB.TS(); if (!_initialized)