public async Task InitAsync(string storagePath, ISystemEnvironment systemEnvironment, bool optimizeForPerformance) { StoreProvider storeProvider; try { var partitionsList = new List <string> { "messages", "directMethods", "twins" }; IDbStoreProvider dbStoreprovider = DbStoreProvider.Create( new RocksDbOptionsProvider(systemEnvironment, optimizeForPerformance, Option.None <ulong>(), Option.None <int>(), Option.None <StorageLogLevel>()), this.GetStoragePath(storagePath), partitionsList); storeProvider = new StoreProvider(dbStoreprovider); } catch (Exception ex) when(!ExceptionEx.IsFatal(ex)) { Logger.LogError(ex, "Error creating RocksDB store. Falling back to in-memory store."); storeProvider = new StoreProvider(new InMemoryDbStoreProvider()); } this.messagesStore = await storeProvider.GetSequentialStore <MessageDetails>(MessageStorePartitionKey); this.directMethodsStore = await storeProvider.GetSequentialStore <TestOperationResult>(DirectMethodsStorePartitionKey); this.twinsStore = await storeProvider.GetSequentialStore <TestOperationResult>(TwinsStorePartitionKey); }