public GrpcTestClient(LightningConfig lightningConfig) { var port = (uint)Interlocked.Increment(ref _startingPort); lightningConfig.Name = $"{lightningConfig.Name ?? "db"}_{port}"; // It is safe to do as LightningConfig is a struct if (Directory.Exists(lightningConfig.Name)) { Directory.Delete(lightningConfig.Name, true); } ReplicaConfig = new ReplicaConfig { ReplicaId = "replica_1", Port = port, Replication = new ReplicationConfig { Port = port + 2000, PageSize = 10000, UseBatching = false }, Persistence = lightningConfig }; _server = new Replica(ReplicaConfig); _client = new LightClient(new Channel($"127.0.0.1:{port}", ChannelCredentials.Insecure), new ClientConfig { UseStreaming = true, Compression = None, HashedWith = Md5 }); }
static void Main(string[] args) { ConfigureLog($"logs/CacheServer_{DateTime.Now}.nlog"); GC.AddMemoryPressure(2L * 1024 * 1024 * 1024); GrpcEnvironment.SetLogger(new LogLevelFilterLogger(new ConsoleLogger(), LogLevel.Debug)); // GrpcEnvironment.SetLogger(new TextWriterLogger(new StreamWriter(File.OpenWrite($"logs/CacheServer_{DateTime.Now}.log")))); var lightningConfig = new LightningConfig { Name = @"C:\Work2\braindump\LmdbCacheServer\TestDir", MaxTables = 20, StorageLimit = 10, WriteBatchMaxDelegates = 1000, WriteBatchTimeoutMilliseconds = 1, SyncMode = LightningDbSyncMode.NoSync }; var replicaConfigMaster = new ReplicaConfig { ReplicaId = "replica_1", Port = Port, MonitoringInterval = 10000, Replication = new ReplicationConfig { Port = Port + 2000, PageSize = 10000, UseBatching = false }, Persistence = lightningConfig }; var lightningConfigSlave = lightningConfig.Clone(); lightningConfigSlave.Name = @"C:\Work2\braindump\LmdbCacheServer\TestDir_Slave"; lightningConfigSlave.WriteBatchMaxDelegates = 10000; lightningConfigSlave.WriteBatchTimeoutMilliseconds = 1; lightningConfigSlave.SyncMode = LightningDbSyncMode.NoSync; var replicaConfigSlave = new ReplicaConfig { ReplicaId = "replica_2", MasterNode = $"{"127.0.0.1"}:{replicaConfigMaster.Replication.Port}", Replication = new ReplicationConfig { Port = Port + 2500, PageSize = 10000, UseBatching = false }, Port = Port + 500, MonitoringInterval = 10000, Persistence = lightningConfigSlave }; using (var server = new Replica.Replica(args.Length == 0 ? replicaConfigMaster : replicaConfigSlave)) { Console.WriteLine("Cache server started on port " + Port); Console.WriteLine("Press any key to stop the server..."); Console.ReadKey(); } }