From 7dba7664a140277d69945b1c906c25eddea4ca0e Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Tue, 19 Sep 2023 09:54:01 -0600 Subject: [PATCH] wip --- codex/codex.nim | 28 ++++++++++++++++------------ tests/codex/stores/testrepostore.nim | 7 +++++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/codex/codex.nim b/codex/codex.nim index fb7273af..28921279 100644 --- a/codex/codex.nim +++ b/codex/codex.nim @@ -22,6 +22,7 @@ import pkg/nitro import pkg/stew/io2 import pkg/stew/shims/net as stewnet import pkg/datastore +import pkg/taskpools import pkg/ethers except Rng import ./node @@ -216,9 +217,11 @@ proc new*( msg: "Unable to create discovery directory for block store: " & discoveryDir) let - ioTp = ThreadedPool.new(200) # Some reasonable number of threads here + ioTp = Taskpool.new(200) # Some reasonable number of threads here discoveryStore = Datastore( - ThreadDatastore(ds = SQLiteDatastore.new(config.dataDir / CodexDhtProvidersNamespace), tp = ioTp) + ThreadDatastore.new(ds = SQLiteDatastore.new(config.dataDir / CodexDhtProvidersNamespace) + .expect("Should create discovery datastore!"), + tp = ioTp) .expect("Should create discovery datastore!")) discovery = Discovery.new( @@ -233,21 +236,22 @@ proc new*( network = BlockExcNetwork.new(switch) repoData = case config.repoKind - of repoFS: Datastore(ThreadDatastore( - ds = FSDatastore.new($config.dataDir, depth = 5), + of repoFS: Datastore(ThreadDatastore.new( + ds = FSDatastore.new($config.dataDir, depth = 5).expect("Should create repo file data store!"), tp = ioTp, withLocks = true) - .expect("Should create repo file data store!")) - of repoSQLite: Datastore(ThreadDatastore( - ds = SQLiteDatastore.new($config.dataDir), - ioTp = ioTp) - .expect("Should create repo SQLite data store!")) + .expect("Should create threaded data store!")) + of repoSQLite: Datastore(ThreadDatastore.new( + ds = SQLiteDatastore.new($config.dataDir).expect("Should create repo SQLite data store!"), + tp = ioTp) + .expect("Should create threaded data store!")) repoStore = RepoStore.new( repoDs = repoData, - metaDs = ThreadDatastore( - ds = SQLiteDatastore.new(config.dataDir / CodexMetaNamespace), - tp = ioTp).expect("Should create meta data store!"), + metaDs = ThreadDatastore.new( + ds = SQLiteDatastore.new(config.dataDir / CodexMetaNamespace) + .expect("Should create meta data store!"), + tp = ioTp).expect("Should create threaded data store!"), quotaMaxBytes = config.storageQuota.uint, blockTtl = config.blockTtl) diff --git a/tests/codex/stores/testrepostore.nim b/tests/codex/stores/testrepostore.nim index 3124c650..1b3f2bf2 100644 --- a/tests/codex/stores/testrepostore.nim +++ b/tests/codex/stores/testrepostore.nim @@ -16,6 +16,7 @@ import pkg/codex/chunker import pkg/codex/stores import pkg/codex/blocktype as bt import pkg/codex/clock +import pkg/taskpools import ../helpers import ../helpers/mockclock @@ -27,10 +28,12 @@ checksuite "Test RepoStore start/stop": var repoDs: Datastore metaDs: Datastore + tp: Taskpool setup: - repoDs = SQLiteDatastore.new(Memory).tryGet() - metaDs = SQLiteDatastore.new(Memory).tryGet() + tp = Taskpool.new(20) + repoDs = ThreadDatastore.new(ds = SQLiteDatastore.new(Memory).tryGet(), tp = tp).tryGet() + metaDs = ThreadDatastore.new(ds = SQLiteDatastore.new(Memory).tryGet(), tp = tp).tryGet() test "Should set started flag once started": let repo = RepoStore.new(repoDs, metaDs, quotaMaxBytes = 200)