From b4c1f58a3cf4887ef5dc5d042696eaf8784a2e6b Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Sat, 24 Sep 2022 18:09:18 +0200 Subject: DB engine comparison --- artifacts/2022-09-24-s3billion/plot.R | 2 +- artifacts/2022-09-24-s3billion/plot.png | Bin 250106 -> 250100 bytes artifacts/2022-09-24-warp-db-engine/lmdb.log | 15 +++++++++++++++ artifacts/2022-09-24-warp-db-engine/plot.R | 17 +++++++++++++++++ artifacts/2022-09-24-warp-db-engine/plot.png | Bin 0 -> 170092 bytes artifacts/2022-09-24-warp-db-engine/sled.log | 15 +++++++++++++++ artifacts/2022-09-24-warp-db-engine/sqlite.log | 15 +++++++++++++++ artifacts/2022-09-24-warp-db-engine/summary.csv | 13 +++++++++++++ scenarios/fragments/flavor.py | 1 + scenarios/garage-warp | 10 +++++++--- 10 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 artifacts/2022-09-24-warp-db-engine/lmdb.log create mode 100644 artifacts/2022-09-24-warp-db-engine/plot.R create mode 100644 artifacts/2022-09-24-warp-db-engine/plot.png create mode 100644 artifacts/2022-09-24-warp-db-engine/sled.log create mode 100644 artifacts/2022-09-24-warp-db-engine/sqlite.log create mode 100644 artifacts/2022-09-24-warp-db-engine/summary.csv diff --git a/artifacts/2022-09-24-s3billion/plot.R b/artifacts/2022-09-24-s3billion/plot.R index b600771..cf4c6a3 100644 --- a/artifacts/2022-09-24-s3billion/plot.R +++ b/artifacts/2022-09-24-s3billion/plot.R @@ -10,7 +10,7 @@ ggplot(s, aes(x=total_objects, y=batch_dur_sec)) + y="Time (in sec) spent sending a batch (8192 objects)", x="Total number of objects stored in the cluster", caption="Get the code to reproduce this graph at https://git.deuxfleurs.fr/Deuxfleurs/mknet", - title="Storing 1M+ files on Garage! Impact of existing data on cluster interactiveness", + title="Storing 1M+ files in a bucket! Impact of existing data on cluster interactiveness", subtitle="Daemon: Garage v0.8 beta 2 with LMDB as db_engine\nBenchmark: 128 batch. 8192 objects/batch. 32 threads/batch. 256 objects/thread. 16-byte/objects.\nEnvironment: mknet (Ryzen 5 1400, 16GB RAM, SSD). DC topo (3 nodes, 1Gb/s, 1ms latency).") + theme_classic() ggsave("./plot.png", width=200, height=120, units="mm") diff --git a/artifacts/2022-09-24-s3billion/plot.png b/artifacts/2022-09-24-s3billion/plot.png index 4cc7aa4..c7ca528 100644 Binary files a/artifacts/2022-09-24-s3billion/plot.png and b/artifacts/2022-09-24-s3billion/plot.png differ diff --git a/artifacts/2022-09-24-warp-db-engine/lmdb.log b/artifacts/2022-09-24-warp-db-engine/lmdb.log new file mode 100644 index 0000000..188bc6c --- /dev/null +++ b/artifacts/2022-09-24-warp-db-engine/lmdb.log @@ -0,0 +1,15 @@ +Mixed operations. +Operation: DELETE, 10%, Concurrency: 20, Ran 4m59s. + * Throughput: 266.79 obj/s + +Operation: GET, 45%, Concurrency: 20, Ran 4m59s. + * Throughput: 0.29 MiB/s, 1200.51 obj/s + +Operation: PUT, 15%, Concurrency: 20, Ran 4m59s. + * Throughput: 0.10 MiB/s, 400.20 obj/s + +Operation: STAT, 30%, Concurrency: 20, Ran 4m59s. + * Throughput: 800.32 obj/s + +Cluster Total: 0.39 MiB/s, 2667.83 obj/s over 5m0s. +Aggregated data saved to /tmp/mknet-store/warp.csv diff --git a/artifacts/2022-09-24-warp-db-engine/plot.R b/artifacts/2022-09-24-warp-db-engine/plot.R new file mode 100644 index 0000000..b1f84d8 --- /dev/null +++ b/artifacts/2022-09-24-warp-db-engine/plot.R @@ -0,0 +1,17 @@ +library(tidyverse) + +read_csv("summary.csv")-> s +ggplot(s, aes(x=db_engine,y=rate)) + + scale_y_continuous(expand=c(0,0), breaks = scales::pretty_breaks(n = 10))+ + geom_bar(stat='identity',fill="#00BFC4", color="black") + + coord_flip() + + facet_wrap(~operation, scales = "free", dir="v") + + labs( + x="Metadata Engine", + y="Object/sec", + caption="Get the code to reproduce this graph at https://git.deuxfleurs.fr/Deuxfleurs/mknet", + title="Comparison of Garage's metadata engines with \"minio/warp\"", + subtitle="Daemon: Garage v0.8 no-fsync to avoid being impacted by block manager\nBenchmark: warp, mixed mode, 5min bench, 256B objects, initialized with 200 objects.\nEnvironment: mknet (Ryzen 5 1400, 16GB RAM, SSD). DC topo (3 nodes, 1Gb/s, 1ms latency).", + ) + + theme_classic() +ggsave("./plot.png", width=200, height=120, units="mm") diff --git a/artifacts/2022-09-24-warp-db-engine/plot.png b/artifacts/2022-09-24-warp-db-engine/plot.png new file mode 100644 index 0000000..0f22d6d Binary files /dev/null and b/artifacts/2022-09-24-warp-db-engine/plot.png differ diff --git a/artifacts/2022-09-24-warp-db-engine/sled.log b/artifacts/2022-09-24-warp-db-engine/sled.log new file mode 100644 index 0000000..5d1678d --- /dev/null +++ b/artifacts/2022-09-24-warp-db-engine/sled.log @@ -0,0 +1,15 @@ +Mixed operations. +Operation: DELETE, 10%, Concurrency: 20, Ran 3m49s. + * Throughput: 129.83 obj/s + +Operation: GET, 45%, Concurrency: 20, Ran 3m49s. + * Throughput: 0.14 MiB/s, 584.32 obj/s + +Operation: PUT, 15%, Concurrency: 20, Ran 3m49s. + * Throughput: 0.05 MiB/s, 194.81 obj/s + +Operation: STAT, 30%, Concurrency: 20, Ran 3m49s. + * Throughput: 389.52 obj/s + +Cluster Total: 0.19 MiB/s, 1298.49 obj/s over 3m49s. +Aggregated data saved to /tmp/mknet-store/warp.csv diff --git a/artifacts/2022-09-24-warp-db-engine/sqlite.log b/artifacts/2022-09-24-warp-db-engine/sqlite.log new file mode 100644 index 0000000..3e65c6f --- /dev/null +++ b/artifacts/2022-09-24-warp-db-engine/sqlite.log @@ -0,0 +1,15 @@ +Mixed operations. +Operation: DELETE, 10%, Concurrency: 20, Ran 4m55s. + * Throughput: 1.29 obj/s + +Operation: GET, 45%, Concurrency: 20, Ran 4m55s. + * Throughput: 0.00 MiB/s, 5.75 obj/s + +Operation: PUT, 15%, Concurrency: 20, Ran 4m55s. + * Throughput: 0.00 MiB/s, 1.93 obj/s + +Operation: STAT, 30%, Concurrency: 20, Ran 4m56s. + * Throughput: 3.86 obj/s + +Cluster Total: 0.00 MiB/s, 12.83 obj/s over 4m55s. +Aggregated data saved to /tmp/mknet-store/warp.csv diff --git a/artifacts/2022-09-24-warp-db-engine/summary.csv b/artifacts/2022-09-24-warp-db-engine/summary.csv new file mode 100644 index 0000000..d0ea3e3 --- /dev/null +++ b/artifacts/2022-09-24-warp-db-engine/summary.csv @@ -0,0 +1,13 @@ +db_engine,operation,rate +lmdb,delete,266.79 +lmdb,get,1200.51 +lmdb,put,400 +lmdb,stat,800 +sled,delete,129.83 +sled,get,584.32 +sled,put,194.81 +sled,stat,389.52 +sqlite,delete,1.29 +sqlite,get,5.75 +sqlite,put,1.93 +sqlite,stat,3.86 diff --git a/scenarios/fragments/flavor.py b/scenarios/fragments/flavor.py index e7323e8..a5644b9 100644 --- a/scenarios/fragments/flavor.py +++ b/scenarios/fragments/flavor.py @@ -41,6 +41,7 @@ garage = grg_path({ warp = { "warp-fast": "mixed --obj.size 5M --objects 200 --duration=5m", + "warp-small-obj": "mixed --obj.size 256 --objects 200 --duration=5m", "warp-default": "mixed" } diff --git a/scenarios/garage-warp b/scenarios/garage-warp index d099e3a..8994e87 100755 --- a/scenarios/garage-warp +++ b/scenarios/garage-warp @@ -2,19 +2,23 @@ from fragments import garage, warp, shared, flavor import sys +db_engines = [ 'sled', 'lmdb', 'sqlite' ] +conf_root = {} for fl in sys.argv[1:]: if fl in flavor.garage: garage.version = flavor.garage[fl] - if fl in flavor.warp: + elif fl in flavor.warp: warp.bench = flavor.warp[fl] + elif fl in db_engines: + conf_root['db_engine'] = fl if shared.id() == 1: - garage.deploy_coord() + garage.deploy_coord(uroot=conf_root) warp.on_garage() garage.delete_key() garage.destroy() else: - garage.deploy_follow() + garage.deploy_follow(uroot=conf_root) garage.sync_on_key_down() garage.destroy() shared.log("bye") -- cgit v1.2.3