public void Destroy()
 => DbDir.Delete(true);
Esempio n. 2
0
        /// <summary>
        /// Open rocksdb handle
        /// </summary>
        /// <param name="dbOptions">Rocksdb options</param>
        /// <param name="columnFamilyOptions">Columnfamily options</param>
        /// <exception cref="ProcessorStateException">throws if the rocksdb can't be open</exception>
        private void OpenRocksDb(DbOptions dbOptions, ColumnFamilyOptions columnFamilyOptions)
        {
            int              maxRetries       = 5;
            int              i                = 0;
            bool             open             = false;
            RocksDbException rocksDbException = null;

            var columnFamilyDescriptors = new ColumnFamilies(columnFamilyOptions);

            while (!open && i < maxRetries)
            {
                try
                {
                    Db = RocksDbSharp.RocksDb.Open(
                        dbOptions,
                        DbDir.FullName,
                        columnFamilyDescriptors);

                    var columnFamilyHandle = Db.GetDefaultColumnFamily();
                    DbAdapter = new SingleColumnFamilyAdapter(
                        Name,
                        Db,
                        writeOptions,
                        KeyComparator,
                        columnFamilyHandle);
                    open = true;
                }
                catch (RocksDbException e)
                {
                    ++i;
                    rocksDbException = e;
                }
            }

            if (!open)
            {
                throw new ProcessorStateException("Error opening store " + Name + " at location " + DbDir.ToString(), rocksDbException);
            }
        }