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)",
|
||||
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")
|
||||
|
|
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-fast": "mixed --obj.size 5M --objects 200 --duration=5m",
|
||||
"warp-small-obj": "mixed --obj.size 256 --objects 200 --duration=5m",
|
||||
"warp-default": "mixed"
|
||||
}
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in a new issue