New article: Bringing theoretical design and observed performances face to face #12

Merged
quentin merged 24 commits from perf into master 2022-09-29 11:16:04 +00:00
7 changed files with 75 additions and 0 deletions
Showing only changes of commit d574b395ff - Show all commits

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View file

@ -0,0 +1,75 @@
+++
title="Bringing theoretical design and real word performances face to face"
date=2022-09-26
+++
*We*
<!-- more -->
---
## ⚠️ Disclaimer
The following results must be taken with a critical grain of salt due to some limitations that are inherent to any benchmark. We try to reference them in the following.
Most of our tests are done on simulated networks that can not represent all the diversity of real networks (dynamic drop, jitter, latency, all of them could possibly be correlated with throughput or any other external event). We also limited ourselves to very small workloads that are not representative of a production cluster.
For some benchmarks, we used Minio as a reference. It must be noted that we did not try to optimize its configuration as we have done on Garage, and more generally, we have way less knowledge on Minio than on Garage.
It must also be noted that Gare and Minio are systems with different feature set, *eg.* Minio supports erasure coding for better data density while Garage doesn't.
Impact of the testing environment is also not evaluated (kernel patches, configuration, parameters, filesystem, etc.), some of these configurations could favor one configuration/software over another. Finally, our results are also provided without statistical tests to check their significance, and thus might be statistically not significative.
In any case, we are not making a business or technical recommendation, we only share bits of our development process.
Read [benchmarking crimes](https://gernot-heiser.org/benchmarking-crimes.html) and make your own tests if you need to take a decision!
## About our testing environment
- Grid 5k.
- My own computer.
## Efficient I/O
- streaming
![](ttfb.png)
- fsync, semaphore, timeouts, etc.
![](io.png)
## Million of objects
- metadata engine
![](db_engine.png)
- storing metadata at scale
![](1million.png)
## Topology versatility
- low bandwidth
![]()
- high network latency. phenomenon we name amplification
![](amplification.png)
- complexity (constant time)
![](complexity.png)
## Future work
- srpt
- better analysis of the fsync / data reliability impact
- analysis and comparison of Garage at scale
- try to better understand ecosystem (riak cs, minio, ceph, swift) -> some knowledge to get

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB