Esempio n. 1
0
        public static DbStoreProvider Create(IRocksDbOptionsProvider optionsProvider, string path, IEnumerable <string> partitionsList)
        {
            IRocksDb                       db                      = RocksDbWrapper.Create(optionsProvider, path, partitionsList);
            IEnumerable <string>           columnFamilies          = db.ListColumnFamilies();
            IDictionary <string, IDbStore> entityDbStoreDictionary = new Dictionary <string, IDbStore>();

            foreach (string columnFamilyName in columnFamilies)
            {
                ColumnFamilyHandle handle = db.GetColumnFamily(columnFamilyName);
                var dbStorePartition      = new ColumnFamilyDbStore(db, handle);
                entityDbStoreDictionary[columnFamilyName] = dbStorePartition;
            }
            var dbStore = new DbStoreProvider(optionsProvider, db, entityDbStoreDictionary);

            return(dbStore);
        }
Esempio n. 2
0
        public static RocksDbWrapper Create(IRocksDbOptionsProvider optionsProvider, string path, IEnumerable <string> partitionsList)
        {
            Preconditions.CheckNonWhiteSpace(path, nameof(path));
            Preconditions.CheckNotNull(optionsProvider, nameof(optionsProvider));
            DbOptions            dbOptions = Preconditions.CheckNotNull(optionsProvider.GetDbOptions());
            IEnumerable <string> existingColumnFamilies = ListColumnFamilies(dbOptions, path);
            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, optionsProvider.GetColumnFamilyOptions());
            }

            RocksDb db             = RocksDb.Open(dbOptions, path, columnFamilies);
            var     rocksDbWrapper = new RocksDbWrapper(dbOptions, db, path);

            return(rocksDbWrapper);
        }