public static ColumnFamilyStorageRocksDbWrapper Create(string path, IEnumerable <string> partitionsList)
        {
            Preconditions.CheckNonWhiteSpace(path, nameof(path));

            string dbPath = Path.Combine(path, DbFolderName);
            string columnFamiliesFilePath = Path.Combine(path, ColumnFamiliesFileName);
            var    columnFamiliesProvider = new ColumnFamiliesProvider(columnFamiliesFilePath);

            lock (ColumnFamiliesLock)
            {
                IEnumerable <string> existingColumnFamilies = columnFamiliesProvider.ListColumnFamilies();
                IEnumerable <string> columnFamiliesList     = existingColumnFamilies.Union(Preconditions.CheckNotNull(partitionsList, nameof(partitionsList)), StringComparer.OrdinalIgnoreCase).ToList();
                var columnFamilies = new ColumnFamilies();
                foreach (string columnFamilyName in columnFamiliesList)
                {
                    columnFamilies.Add(columnFamilyName, new ColumnFamilyOptions());
                }

                columnFamiliesProvider.SetColumnFamilies(columnFamiliesList);
                RocksDb db             = RocksDb.Open(Options, dbPath, columnFamilies);
                var     rocksDbWrapper = new ColumnFamilyStorageRocksDbWrapper(db, columnFamiliesProvider);
                return(rocksDbWrapper);
            }
        }
 ColumnFamilyStorageRocksDbWrapper(RocksDb db, ColumnFamiliesProvider columnFamiliesProvider)
 {
     this.db = db;
     this.columnFamiliesProvider = columnFamiliesProvider;
 }