Posts

Showing posts from May, 2026

Mariadb Performance : Openssl and wolfssl

Image
Why this SSL performance assessment of Mariadb ? My first objective was to assess new openssl 3.5 or 3.6 and see whether it's improving for Mariadb  or not and second , I could not find any comparative analysis of ssl for Mariabd in public space. Earlier in MySQL, I had done exhaustive assessment of  wolfssl and openssl's different version so thought of doing some against Mariadb which is another popular database and moving fast in db ranking. I used  memory bound test and sysbench's point-select without prepared statement to stress TLS layer the most. Another test , I picked is connect/disconnect which fires point-select query for each connection like PHP and this also stressess TLS layer the most. Key Findings In case of sysbench's point-select query like " SELECT c FROM sbtest1 WHERE id = 12345 ;" , wolfssl (5.8.4 default) is the best. openssl-1.1.1l/3.0.19/3.5.5/3.6.1 are less upto 9% wrt wolfssl. In case of sysbench's point-select query like "...

MySQL- Crash Recovery Performance Assessment

Why we need to assess the performance of   crash recovery in MySQ and here is my explanation:  It’s not just WLs or bug fixes — any change in redo format or code changes around it, flushing behavior, or recovery concurrency can silently slow things down and if you have huge volume of data to recover than it could be painful. MySQL errorlog is the best place to look into details like whats happening during recovery and which phase of recovery is time consuming. Basically , I measured the recovery  timing  - from “Starting crash recovery” to “Apply batch completed , in MySQLD error log. Refer this about recovery in Innodb here: https://dev.mysql.com/doc/refman/8.4/en/innodb-recovery.html#innodb-crash-recovery Let me share some of my hack to measure the time taken for crash-recovery experiment. 1.  I used ` innodb_checkpoint_disabled ` which is strictly a testing mechanism. It forces maximum redo accumulation and doesn’t reflect real‑world recovery .   in...

PGO in MySQL community 9.7

Image
  PGO ( Profile-guided optimization) in mysql community edition of 9.7.0 -------------------------------------------------------------------------------------------------------------------------- Straightforward ,  30% gain   we have seen in eneterprise edition of mysql   in read only sysbench test like point-select ( memory bound) .  I am curious to know whether similar gain , we see in pgo community build and what kind of test cases it use to train data? If pgo in community edition gives 30 percentage gain then it makes sense to use this feature by many other databases based on MySQL because it comes free without doing any extra tuning of mysqld config. As you can see,9.7.0 gives better performance wrt 9.6.0 and it's because of just pgo being put in. I referred INFO_BIN and 9.7 has fprofile compiler option whereas 9.6.0 doesn't have So, far I have seen release notes and I know, there is no other major changes would have contributed such gain. Its go...

WAL impact - MySQL 9.7.0 preview 2 times slower than Mariadb 12.3 preview

Image
  mysql 9.7.0 preview looks like 2.3 times slower wrt mariadb with default binlog which is very surprising

TAF automation framework to test MariaDB innodb-based-binary-log

Image
  This is first time, I am trying MariaDB and I mostly used MySQL. I thought of trying TAF against different version of maridb with hammerdb' tpcc. I must admit that I have mostly used sysench's tpcc or dbt2 ( old implementation of tpcc) TAF , I pulled from https://github.com/MariaDB/TAF and I got community linux build of mariadb on my ubuntu 22.04 LTS , 16 cpu . Since, InnoDB-Based Binary Log is new innovation and I am impressed with it since it's been blogged so thought of trying. I used default hammerdb_tprocc_ beta.properties which use minimal config for setting up mariadb. Note: The idea of these tests is to just try new tool TAF and with most of default config on my laptop . Proper gain/regression needs to be evaluated on very stable environemnt like stable VM/Bare Metal but trend might be suggesting some kind of dropping The below graph is like comparison of most of the default including binlog=off *The above NOPM trend suggests that maridb-11.8.6 is better for h...

Performance QA practice in MySQL followed

Continous performance regression testing using automated tool - Scalabilty and single threaded test  Release Performance for server - On platform Linux and Windows  Pre-push performance testing for Woklog/POC for major feature. Triage and find out whether non-functional test is required or not. Benchmarking like MySQL Heatwave (standalone or HA) vs RDS vs Aurora etc . Impact analysis of mysqld config changes . Third party libray , like openssl , jemalloc/tcmalloc , impact   Compiler options change , devtoolset changes etc  Some adhoc performance assement like MySQL REST Service , Inbound replication in Oracle cloud   Main motto:   catch regression/gain early.   Run test and find out and no assumption based on documentation   That's the reason community/commerical MySQL had most robust performance. So , Performance QA make sense always. In next section , I will try to deep dive into stuff one-by-one Continous performance r...