aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2022-09-24 18:09:18 +0200
committerQuentin Dufour <quentin@deuxfleurs.fr>2022-09-24 18:09:18 +0200
commitb4c1f58a3cf4887ef5dc5d042696eaf8784a2e6b (patch)
tree17d0951060bebecb89fdb72758a40604adf99f75
parentc84dc6bd3592d3430a9a57bfdec2e55856ce304e (diff)
downloadmknet-b4c1f58a3cf4887ef5dc5d042696eaf8784a2e6b.tar.gz
mknet-b4c1f58a3cf4887ef5dc5d042696eaf8784a2e6b.zip
DB engine comparison
-rw-r--r--artifacts/2022-09-24-s3billion/plot.R2
-rw-r--r--artifacts/2022-09-24-s3billion/plot.pngbin250106 -> 250100 bytes
-rw-r--r--artifacts/2022-09-24-warp-db-engine/lmdb.log15
-rw-r--r--artifacts/2022-09-24-warp-db-engine/plot.R17
-rw-r--r--artifacts/2022-09-24-warp-db-engine/plot.pngbin0 -> 170092 bytes
-rw-r--r--artifacts/2022-09-24-warp-db-engine/sled.log15
-rw-r--r--artifacts/2022-09-24-warp-db-engine/sqlite.log15
-rw-r--r--artifacts/2022-09-24-warp-db-engine/summary.csv13
-rw-r--r--scenarios/fragments/flavor.py1
-rwxr-xr-xscenarios/garage-warp10
10 files changed, 84 insertions, 4 deletions
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
--- a/artifacts/2022-09-24-s3billion/plot.png
+++ b/artifacts/2022-09-24-s3billion/plot.png
Binary files 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
--- /dev/null
+++ b/artifacts/2022-09-24-warp-db-engine/plot.png
Binary files 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")