mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-01-04 06:23:06 +00:00
feat: add benchmarks for deletes
This commit is contained in:
parent
c4a15cdb90
commit
fd41c41cab
@ -78,6 +78,13 @@ proc readData(
|
|||||||
let blk = (await store.getBlock(blocks[i].cid)).tryGet()
|
let blk = (await store.getBlock(blocks[i].cid)).tryGet()
|
||||||
assert blk.cid == blocks[i].cid
|
assert blk.cid == blocks[i].cid
|
||||||
|
|
||||||
|
proc deleteData(
|
||||||
|
dataset: Dataset, store: RepoStore
|
||||||
|
): Future[void] {.async: (raises: [CatchableError]).} =
|
||||||
|
let (blocks, tree, manifest) = dataset
|
||||||
|
for i in 0 ..< NBlocks:
|
||||||
|
(await store.delBlock(blocks[i].cid)).tryGet()
|
||||||
|
|
||||||
proc writeData(
|
proc writeData(
|
||||||
dataset: Dataset, store: FileStore
|
dataset: Dataset, store: FileStore
|
||||||
): Future[void] {.async: (raises: [CatchableError]).} =
|
): Future[void] {.async: (raises: [CatchableError]).} =
|
||||||
@ -99,14 +106,21 @@ proc readData(
|
|||||||
let blk = (await file.getBlock(i)).tryGet()
|
let blk = (await file.getBlock(i)).tryGet()
|
||||||
assert blk.cid == blocks[i].cid
|
assert blk.cid == blocks[i].cid
|
||||||
|
|
||||||
|
proc deleteData(
|
||||||
|
dataset: Dataset, store: FileStore
|
||||||
|
): Future[void] {.async: (raises: [CatchableError]).} =
|
||||||
|
let (blocks, tree, manifest) = dataset
|
||||||
|
let file = store.create(manifest).tryGet()
|
||||||
|
file.delete().tryGet()
|
||||||
|
|
||||||
proc runRepostoreBench(
|
proc runRepostoreBench(
|
||||||
dataset: Dataset
|
dataset: Dataset
|
||||||
): Future[void] {.async: (raises: [CatchableError]).} =
|
): Future[void] {.async: (raises: [CatchableError]).} =
|
||||||
let perf = Perf.attach("./perf-ctl", "./perf-ack").expect(
|
# let perf = Perf.attach("./perf-ctl", "./perf-ack").expect(
|
||||||
"failed to locate perf ctl/ack files"
|
# "failed to locate perf ctl/ack files"
|
||||||
)
|
# )
|
||||||
|
|
||||||
perf.perfOff().expect("failed to disable perf")
|
# perf.perfOff().expect("failed to disable perf")
|
||||||
|
|
||||||
let
|
let
|
||||||
dir = createTempDir("repostore-bench", "")
|
dir = createTempDir("repostore-bench", "")
|
||||||
@ -119,19 +133,22 @@ proc runRepostoreBench(
|
|||||||
benchmark "repostore write data":
|
benchmark "repostore write data":
|
||||||
await writeData(dataset, store)
|
await writeData(dataset, store)
|
||||||
|
|
||||||
perf.perfOn().expect("failed to enable perf")
|
# perf.perfOn().expect("failed to enable perf")
|
||||||
|
|
||||||
benchmark "repostore read data":
|
benchmark "repostore read data":
|
||||||
await writeData(dataset, store)
|
await readData(dataset, store)
|
||||||
|
|
||||||
|
benchmark "repostore delete data":
|
||||||
|
await deleteData(dataset, store)
|
||||||
|
|
||||||
proc runFilestoreBench(
|
proc runFilestoreBench(
|
||||||
dataset: Dataset
|
dataset: Dataset
|
||||||
): Future[void] {.async: (raises: [CatchableError]).} =
|
): Future[void] {.async: (raises: [CatchableError]).} =
|
||||||
let perf = Perf.attach("./perf-ctl", "./perf-ack").expect(
|
# let perf = Perf.attach("./perf-ctl", "./perf-ack").expect(
|
||||||
"failed to locate perf ctl/ack files"
|
# "failed to locate perf ctl/ack files"
|
||||||
)
|
# )
|
||||||
|
|
||||||
perf.perfOff().expect("failed to disable perf")
|
# perf.perfOff().expect("failed to disable perf")
|
||||||
|
|
||||||
let
|
let
|
||||||
dir = createTempDir("filestore-bench", "")
|
dir = createTempDir("filestore-bench", "")
|
||||||
@ -144,11 +161,14 @@ proc runFilestoreBench(
|
|||||||
benchmark "filestore write data":
|
benchmark "filestore write data":
|
||||||
await writeData(dataset, store)
|
await writeData(dataset, store)
|
||||||
|
|
||||||
perf.perfOn().expect("failed to enable perf")
|
# perf.perfOn().expect("failed to enable perf")
|
||||||
|
|
||||||
benchmark "filestore read data":
|
benchmark "filestore read data":
|
||||||
await readData(dataset, store)
|
await readData(dataset, store)
|
||||||
|
|
||||||
|
benchmark "filestore delete data":
|
||||||
|
await deleteData(dataset, store)
|
||||||
|
|
||||||
let dataset = makeDataset(NBlocks, BlockSize).tryGet()
|
let dataset = makeDataset(NBlocks, BlockSize).tryGet()
|
||||||
waitFor runRepostoreBench(dataset)
|
waitFor runRepostoreBench(dataset)
|
||||||
#waitFor runFilestoreBench(dataset)
|
waitFor runFilestoreBench(dataset)
|
||||||
|
|||||||
@ -95,6 +95,11 @@ proc putBlock*(
|
|||||||
|
|
||||||
success()
|
success()
|
||||||
|
|
||||||
|
proc delete*(self: File): ?!void =
|
||||||
|
discard close(self.fd)
|
||||||
|
osfiles.removeFile(self.filepath)
|
||||||
|
success()
|
||||||
|
|
||||||
proc create*(self: FileStore, manifest: Manifest): ?!File =
|
proc create*(self: FileStore, manifest: Manifest): ?!File =
|
||||||
let path = self.root & "/" & $manifest.treeCid
|
let path = self.root & "/" & $manifest.treeCid
|
||||||
initDataset(path, manifest)
|
initDataset(path, manifest)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user