forked from Deuxfleurs/mknet
DB engine comparison
This commit is contained in:
parent
c84dc6bd35
commit
b4c1f58a3c
10 changed files with 84 additions and 4 deletions
|
@ -10,7 +10,7 @@ ggplot(s, aes(x=total_objects, y=batch_dur_sec)) +
|
||||||
y="Time (in sec) spent sending a batch (8192 objects)",
|
y="Time (in sec) spent sending a batch (8192 objects)",
|
||||||
x="Total number of objects stored in the cluster",
|
x="Total number of objects stored in the cluster",
|
||||||
caption="Get the code to reproduce this graph at https://git.deuxfleurs.fr/Deuxfleurs/mknet",
|
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).") +
|
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()
|
theme_classic()
|
||||||
ggsave("./plot.png", width=200, height=120, units="mm")
|
ggsave("./plot.png", width=200, height=120, units="mm")
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 244 KiB |
15
artifacts/2022-09-24-warp-db-engine/lmdb.log
Normal file
15
artifacts/2022-09-24-warp-db-engine/lmdb.log
Normal file
|
@ -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
|
17
artifacts/2022-09-24-warp-db-engine/plot.R
Normal file
17
artifacts/2022-09-24-warp-db-engine/plot.R
Normal file
|
@ -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")
|
BIN
artifacts/2022-09-24-warp-db-engine/plot.png
Normal file
BIN
artifacts/2022-09-24-warp-db-engine/plot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 166 KiB |
15
artifacts/2022-09-24-warp-db-engine/sled.log
Normal file
15
artifacts/2022-09-24-warp-db-engine/sled.log
Normal file
|
@ -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
|
15
artifacts/2022-09-24-warp-db-engine/sqlite.log
Normal file
15
artifacts/2022-09-24-warp-db-engine/sqlite.log
Normal file
|
@ -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
|
13
artifacts/2022-09-24-warp-db-engine/summary.csv
Normal file
13
artifacts/2022-09-24-warp-db-engine/summary.csv
Normal file
|
@ -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
|
|
|
@ -41,6 +41,7 @@ garage = grg_path({
|
||||||
|
|
||||||
warp = {
|
warp = {
|
||||||
"warp-fast": "mixed --obj.size 5M --objects 200 --duration=5m",
|
"warp-fast": "mixed --obj.size 5M --objects 200 --duration=5m",
|
||||||
|
"warp-small-obj": "mixed --obj.size 256 --objects 200 --duration=5m",
|
||||||
"warp-default": "mixed"
|
"warp-default": "mixed"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,19 +2,23 @@
|
||||||
from fragments import garage, warp, shared, flavor
|
from fragments import garage, warp, shared, flavor
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
db_engines = [ 'sled', 'lmdb', 'sqlite' ]
|
||||||
|
conf_root = {}
|
||||||
for fl in sys.argv[1:]:
|
for fl in sys.argv[1:]:
|
||||||
if fl in flavor.garage:
|
if fl in flavor.garage:
|
||||||
garage.version = flavor.garage[fl]
|
garage.version = flavor.garage[fl]
|
||||||
if fl in flavor.warp:
|
elif fl in flavor.warp:
|
||||||
warp.bench = flavor.warp[fl]
|
warp.bench = flavor.warp[fl]
|
||||||
|
elif fl in db_engines:
|
||||||
|
conf_root['db_engine'] = fl
|
||||||
|
|
||||||
if shared.id() == 1:
|
if shared.id() == 1:
|
||||||
garage.deploy_coord()
|
garage.deploy_coord(uroot=conf_root)
|
||||||
warp.on_garage()
|
warp.on_garage()
|
||||||
garage.delete_key()
|
garage.delete_key()
|
||||||
garage.destroy()
|
garage.destroy()
|
||||||
else:
|
else:
|
||||||
garage.deploy_follow()
|
garage.deploy_follow(uroot=conf_root)
|
||||||
garage.sync_on_key_down()
|
garage.sync_on_key_down()
|
||||||
garage.destroy()
|
garage.destroy()
|
||||||
shared.log("bye")
|
shared.log("bye")
|
||||||
|
|
Loading…
Reference in a new issue