Details
-
Bug
-
Status: Open (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Context: MirrorCache is a web application, which supports both MariaDB and Postgres as DB backend.
(It runs each DB in various test and production setups).
CI has test scenarios which setup and run numerous services in different configurations. There are about 100 tests scenarios.
Problem 1: CI for postgres runs 7 minutes faster (>25%) than for MariaDB. It makes impression that MariaDB is just slower, while most of the time difference comes from inefficient startup / shutdown.
Problem 2: MariaDB 11.4 introduced even slower startup (now in CI it is 30% slower than postgres), which raises a question whether it is reasonable to keep slow CI or keep support of a single DB vendor, which is capable to show good performance in CI.
Current timing of CI:
postgresql - ~20 min
mariadb 10.11 - ~28 min
mariadb 11.5 - ~29 min
Suggestion 1: make startup in versions after 11.4 at least as fast as 11.3, or and option for that.
Suggestion 2: optimize "mariadb-admin shutdown", which takes at least 1 sec.
Suggestion 3 (bonus): generally optimize startup, so it takes not slower than postgresql
Steps to reproduce:
Please find attached Docker files, which demonstrate behavior for 100 start / stop cycles for latest MariaDB 11.3 (slow) and 11.4 (very slow), as well as PostgreSQL 15 (very fast):
Dockerfile.pg - 22 sec
Dockerfile.11.3 - 2 min 2 sec
Dockerfile.11.4 - 5 min 50 sec
just put the files into empty folder and run command below, then observe output of the last command:
docker build -f DockerfileXXX .
Note 1: The tests use eatmydata utility, so speed of the disk shouldn't matter.
Note 2: The tests use environ scripts for managing both Postgresql and MariaDB. These are simple wrappers over mariadb, mariadb-admin, etc . You can observe that content of the wrappers and run those commands directly if you prefer.