Esempio n. 1
0
 public DBTrieInvoiceRepository(IOptions <Config> conf, IKeysRepository keysRepository, ISystemClock systemClock, NRustLightningNetworkProvider networkProvider, ILogger <DBTrieInvoiceRepository> logger)
 {
     _dbPath          = conf.Value.InvoiceDBFilePath;
     _keysRepository  = keysRepository;
     _systemClock     = systemClock;
     _networkProvider = networkProvider;
     _logger          = logger;
     _engine          = DBTrieEngine.OpenFromFolder(_dbPath).Result;
     _engine.ConfigurePagePool(new PagePool(pageSize: conf.Value.DBCacheMB));
 }
Esempio n. 2
0
        public DbTrieRepository(IOptions <Config> conf, ILogger <DbTrieRepository> logger)
        {
            _dbPath = conf.Value.DBFilePath;
            _conf   = conf;
            _logger = logger;
            _pool   = MemoryPool <byte> .Shared;
            _engine = OpenEngine(CancellationToken.None).GetAwaiter().GetResult();
            var pageSize = 8192;

            _engine.ConfigurePagePool(new PagePool(pageSize, (_conf.Value.DBCacheMB * 1000 * 1000) / pageSize));
        }
Esempio n. 3
0
        private async ValueTask <DBTrieEngine> OpenEngine(CancellationToken ct)
        {
            int tried = 0;

retry:
            try
            {
                return(await DBTrieEngine.OpenFromFolder(_dbPath));
            }
            catch when(tried < 10)
            {
                tried++;
                await Task.Delay(500, ct);

                goto retry;
            }
        }
Esempio n. 4
0
 public void Setup()
 {
     folder = @"BenchData";
     Directory.CreateDirectory($@"BenchData");
     Directory.CreateDirectory($@"{folder}\trie");
     trie = DBTrieEngine.OpenFromFolder($@"{folder}\trie").Result;
     ldb  = new DB(new Options {
         CreateIfMissing = true
     }, $@"{folder}\ldb");
     Directory.CreateDirectory($@"{folder}\litedb");
     litedb = new LiteDatabase(new ConnectionString()
     {
         Filename = $@"{folder}\litedb\db"
     });
     this.litedbCol = litedb.GetCollection <LiteDbEntity>("tbl");
     trx            = trie.OpenTransaction().Result;
     tbl            = trx.GetTable("tbl");
     rocksdb        = rdb.RocksDb.Open(new rdb.DbOptions().SetCreateIfMissing(true), $@"{folder}\rocksdb");
 }