Posts

Threadpool Performance Assessment - MySQL 9.7.0 vs Mariadb 13.0.1

Image
 Why this assessment of MySQL 9.7.0 vs Mariadb 13.0.1 for threadpool MariaDB’s thread pool is open source; MySQL’s requires a commercial license and some variation is there so,  I thought of assessing to know the real gain of threadpool in terms of performance. This performance assessment, I did on  on my 6 core  ubuntu 24.0 laptop for read-only, read-write and tpcc cached workloads. Here, a cached/memory-bound workload means that data fully fits into buffer-pool.  Since, threadpool is available in commercial MySQL so, I could not test it and hope it will be opensource like other commercial features were  added to 9.7.0  community edition. I took latest build of MySQL commnunity 9.7.0 and Mariadb 13.0.1  to have all recent changes. Summary   Threadpool did not have significant impact in case of Mariadb for read/read-write  loads. But, threadpool had very good impact  in TPCC workload and it showed +400% gain wrt no-TP Mar...

MySQL performance with Kubernetes: bare metal vs K8 with docker vs K8 with container

Image
Why  database performance assessment with Kubernetes Now a days, Kubernetes is being used to manage databases like MySQL/Mariadb  for reasons like manageability etc.  However, the real question is whether we are aware of the performance overhead costs.  So, the objective of my assessment is to find out actual overhead with different runtime like docker or container. Approach   I used, mariadb's open-source framework TAF  , to run sysbench's  point-select memory bound test ( data fits into buffer-pool)  against latest MySQL image , 9.7.0 . Sysbench's memory bound point-select is  CPU-intensive test which stress system the most.  I executed test in "standalone" mode (both mysqld server and client 'sysbench' are running on my laptop). sysbench's 8 tables x 5 million rows ~1 GB data which  fits into 2 GB BP.  I have kept config same for  all tests. I have done testing on my laptop - 6 core, 8 GB RAM, AMD Ryzen 5...

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...