mknet/artifacts/2022-09-29-s3billion/plot.R

28 lines
1.4 KiB
R
Raw Normal View History

library(tidyverse)
library(ggpmisc)
library(scales)
read_csv("s3billion-dc-gros-32threads-256batchsize-128000batchcount-v0.8-fix-time-30M.csv") %>% mutate(batch_dur_sec = batch_dur_nanoseconds / 1000 / 1000 / 1000) %>% filter(total_objects != 0) -> s
reg <- lm(s$batch_dur_sec~s$total_objects)
f <- y~x
ggplot(s, aes(x=total_objects, y=batch_dur_sec)) +
geom_point(shape = "bullet", alpha=0.4) +
geom_smooth(method="lm", formula=f, se = FALSE, color="blue") +
scale_x_continuous(expand=c(0,0), breaks = scales::pretty_breaks(n = 10), labels = unit_format(unit = "M", scale = 1e-6)) +
scale_y_continuous(expand=c(0,0), breaks = scales::pretty_breaks(n = 10)) +
coord_cartesian(ylim=c(0,3)) +
labs(
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 30M small objects in Garage!",
subtitle="Daemon: Garage v0.8.0-rc1 (+ #398 pull request) with LMDB as db_engine\nBenchmark: 8192 objects/batch. 32 threads/batch. 256 objects/thread. 16-byte/objects.\nEnvironment: mknet on Grid'5000 (gros) https://www.grid5000.fr/w/Nancy:Hardware#gros (SATA SSD).\nDC topo (3 logical nodes, 1Gb/s, 1ms latency).") +
theme_classic()
ggsave("./garage-0.8-gros.png", width=200, height=120, units="mm")
#ggsave("./garage-regression.png", width=200, height=120, units="mm")