public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) { return(new SimpleColumnRocksDb <T>(_basePath, rocksDbSettings, _dbConfig, _logManager)); }
/// <inheritdoc /> public virtual bool TryStartPruning(bool duplicateReads, out IPruningContext context) { RocksDbSettings ClonedDbSettings() { RocksDbSettings clonedDbSettings = _settings.Clone(); clonedDbSettings.DeleteOnStart = true; return(clonedDbSettings); } // create new pruning context with new sub DB and try setting it as current // returns true when new pruning is started // returns false only on multithreaded access, returns started pruning context then PruningContext newContext = new(this, CreateDb(ClonedDbSettings()), duplicateReads); PruningContext?pruningContext = Interlocked.CompareExchange(ref _pruningContext, newContext, null); context = pruningContext ?? newContext; if (pruningContext is null) { PruningStarted?.Invoke(this, new PruningEventArgs(context)); return(true); } return(false); }
public IDb CreateDb(RocksDbSettings rocksDbSettings) { return(new SimpleRocksDb(_basePath, rocksDbSettings, _dbConfig, _logManager)); }
public FullPruningDb(RocksDbSettings settings, IRocksDbFactory dbFactory, Action?updateDuplicateWriteMetrics = null) { _settings = settings; _dbFactory = dbFactory; _updateDuplicateWriteMetrics = updateDuplicateWriteMetrics; _currentDb = CreateDb(_settings); }
public SimpleRocksDb( string basePath, RocksDbSettings rocksDbSettings, IDbConfig dbConfig, ILogManager logManager = null) : base(basePath, rocksDbSettings, dbConfig, logManager) { }
public ColumnsDb(string basePath, RocksDbSettings settings, IDbConfig dbConfig, ILogManager logManager, IReadOnlyList <T> keys) : base(basePath, settings, dbConfig, logManager, GetColumnFamilies(dbConfig, settings.DbName, GetEnumKeys(keys))) { keys = GetEnumKeys(keys); foreach (T key in keys) { _columnDbs[key] = new ColumnDb(_db, this, key.ToString() !); } }
protected ColumnsDb(string basePath, RocksDbSettings settings, IDbConfig dbConfig, ILogManager logManager, params T[] keys) : base(basePath, settings, dbConfig, logManager, GetColumnFamilies(dbConfig, settings.DbName, GetEnumKeys(keys))) { Name = settings.DbName; keys = GetEnumKeys(keys); foreach (T key in keys) { _columnDbs[key] = new ColumnDb(Db, this, key.ToString() !); } }
// When creating a new DB, we need to change its inner settings private RocksDbSettings GetRocksDbSettings(RocksDbSettings rocksDbSettings) { _index++; // if its -1 then this is first db. bool firstDb = _index == -1; // if first DB, then we will put it into main directory and not use indexed subdirectory string dbName = firstDb ? rocksDbSettings.DbName : rocksDbSettings.DbName + _index; string dbPath = firstDb ? rocksDbSettings.DbPath : _fileSystem.Path.Combine(rocksDbSettings.DbPath, _index.ToString()); RocksDbSettings dbSettings = rocksDbSettings.Clone(dbName, dbPath); dbSettings.CanDeleteFolder = !firstDb; // we cannot delete main db folder, only indexed subfolders return(dbSettings); }
public void clone_test() { RocksDbSettings settings = new("Name", "Path") { BlockCacheSize = 1, UpdateReadMetrics = () => { }, UpdateWriteMetrics = () => { }, WriteBufferNumber = 5, WriteBufferSize = 10, CacheIndexAndFilterBlocks = true }; RocksDbSettings settings2 = settings.Clone("Name2", "Path2"); settings2.Should().BeEquivalentTo(settings, o => o.Excluding(s => s.DbName).Excluding(s => s.DbPath)); settings2.DbName.Should().Be("Name2"); settings2.DbPath.Should().Be("Path2"); } }
public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) { var rocksDb = _wrappedRocksDbFactory.CreateColumnsDb <T>(rocksDbSettings); return(new ReadOnlyColumnsDb <T>(new RpcColumnsDb <T>(rocksDbSettings.DbName, _jsonSerializer, _jsonRpcClient, _logManager, rocksDb), true)); }
public string GetFullDbPath(RocksDbSettings rocksDbSettings) => _wrappedRocksDbFactory.GetFullDbPath(rocksDbSettings);
/// <inheritdoc /> public string GetFullDbPath(RocksDbSettings rocksDbSettings) { RocksDbSettings settings = GetRocksDbSettings(rocksDbSettings); return(_rocksDbFactory.GetFullDbPath(settings)); }
/// <inheritdoc /> public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) where T : notnull { RocksDbSettings settings = GetRocksDbSettings(rocksDbSettings); return(_rocksDbFactory.CreateColumnsDb <T>(settings)); }
public IDb CreateDb(RocksDbSettings rocksDbSettings) => new DbOnTheRocks(_basePath, rocksDbSettings, _dbConfig, _logManager);
public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) where T : struct, Enum => new ColumnsDb <T>(_basePath, rocksDbSettings, _dbConfig, _logManager, Array.Empty <T>());
private IDb CreateDb(RocksDbSettings settings) => _dbFactory.CreateDb(settings);
public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) where T : notnull => _memDbFactory.CreateColumnsDb <T>(rocksDbSettings.DbName);
public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) where T : struct, Enum => _memDbFactory.CreateColumnsDb <T>(rocksDbSettings.DbName);
public IDb CreateDb(RocksDbSettings rocksDbSettings) => _memDbFactory.CreateDb(rocksDbSettings.DbName);
public string GetFullDbPath(RocksDbSettings rocksDbSettings) => DbOnTheRocks.GetFullDbPath(rocksDbSettings.DbPath, _basePath);
public IDb CreateDb(RocksDbSettings rocksDbSettings) { var rocksDb = _wrappedRocksDbFactory.CreateDb(rocksDbSettings); return(WrapWithRpc(rocksDb)); }
public ISnapshotableDb CreateSnapshotableDb(RocksDbSettings rocksDbSettings) { return(new StateDb(CreateDb(rocksDbSettings))); }
public IColumnsDb <T> CreateColumnsDb <T>(RocksDbSettings rocksDbSettings) where T : notnull { return(new ColumnsDb <T>(_basePath, rocksDbSettings, _dbConfig, _logManager)); }
public DbOnTheRocks(string basePath, RocksDbSettings rocksDbSettings, IDbConfig dbConfig, ILogManager logManager, ColumnFamilies columnFamilies = null, bool deleteOnStart = false) { Name = rocksDbSettings.DbName; _settings = rocksDbSettings; Db = Init(basePath, rocksDbSettings.DbPath, dbConfig, logManager, columnFamilies, deleteOnStart); }
/// <inheritdoc /> public IDb CreateDb(RocksDbSettings rocksDbSettings) { RocksDbSettings settings = GetRocksDbSettings(rocksDbSettings); return(_rocksDbFactory.CreateDb(settings)); }