FOSDEM 2021 MariaDB is listening

FOSDEM 2021 was amazing. MariaDB had a developer room and Foundation members contributed talks to a number of other developer rooms. We were listening for ways in which MariaDB server could be improved during all these talks, regardless of which room our MariaDB Foundation staff were in.

MariaDB server developers present provided information related to recently fixed/improved items and things that are planned to be fixed.

Our interactions with the community of users present, many of which we know, gave us an opportunity to have a dialog about some of the parts of MariaDB that they would like improved.

Bug reports/Feature requests mentioned

In looking thorough the chat logs of the MariaDB dev room during FOSDEM included a number of MariaDB JIRA issues, MDEVs, that correspond to bugs and feature requests.

Looking through all of ones mentioned, for good and bad, I’ve included here to show their current state, potential future state, and the type of discussion that took place.

Status OPEN

  • MDEV-13756 Implement descending index: KEY (a DESC, b ASC)
    Sveta’s talk mentioned this functionality that isn’t in MariaDB yet. There are a lot of watchers on this issue. It is however too large a task to complete for 10.6.
  • MDEV-15706 Remove information_schema.innodb_metrics, innodb_monitor_enable, innodb_monitor_disable
    Discussion on alternatives as mentioned and ensuring performance and availability to the same information.
  • MDEV-16482 MariaDB Oracle mode misses Synonyms
    Point taken. We’re looking at how to implement this.
  • MDEV-17598 InnoDB index option for per-record transaction ID
    Mentioned by InnoDB developer Marko, to highlight the understood need to improve the way index indexes work with MVCC.
  • MDEV-22923 Data Truncation when using UNION SELECT
    This was raised as something that should be fixed. We agree. Now critical priority.
  • MDEV-23008 store mysql_upgrade version info in system table instead of local file 
    Beginnings of a design to cover use cases is starting.
  • MDEV-23755 safety for upgrades (innodb) and packaging
    With documented upgrade procedures, we’re looking at what is actually required, and what to put into packaging so the user requirement is low.
  • MDEV-24557 Logical dump of MySQL users via MariaDB’s mariadb-dump generates invalid commands
    Approaches are being considered to ensure compatibility and that there is a MySQL-8.0 migration path to MariaDB.
  • MDEV-24722 Feature Request: mariabackup is missing –backup-and-prepare option
    This is being considered.
  • MDEV-24723 Feature Request: mariabackup should memorize ownership of files
    This is being considered.

Status IN PROGRESS

  • MDEV-16589 default value for sync_binlog should be the safer value 1 instead of 0
    Critical priority for 10.6.

Status IN REVIEW

  • MDEV-23510 Crash in my_strnncoll_binary while running point-select
    ARM64 (and possible POWER) bug – solution found, a review of the solution is in progress.

Status STALLED

  • MDEV-5171 Add support for –innodb-optimize-keys to mysqldump.
    Like MDEV-16223, optimized load of secondary needs to occur, potentially as an alternative.
  • MDEV-18762 Support easy restore of partial backup
    Waiting on 10.4+ MDEV-18543 Import tablespace to be fixed.

Status CLOSED

  • MDEV-515 innodb bulk insert
    10.6 implemented features which will skip row-level undo logging for inserting into empty tables. Mentioned in the context of how logical backup/restore is improving.
  • MDEV-16223 Background ADD INDEX
    Won’t fix, but consideration of improving secondary index creation is a 10.7 goal.
  • MDEV-20612 Improve InnoDB lock_sys scalability
    Fix committed just prior to conference for 10.6 release.
  • MDEV-23399 10.5 performance regression with IO-bound tpcc
    Mentioned in a context of doing more performance regressions testing, triggered by some Percona blog posts.
  • MDEV-23855 InnoDB log checkpointing causes regression for write-heavy OLTP
    Like previous.
  • MDEV-23495 Refine Arm64 PMULL runtime check in MariaDB
    Mentioned as a testing gap on Raspberry Pi. We still need to fill this gap.
  • MDEV-24122 Minor updates to MariaDB 10.2/10.3 seems to be adding a DEFAULT ROLE to the show grants command that is invalid.
    Fixed – 10.2.27, 10.3.28, 10.4.17, 10.5.9. Anomalies in mysql.user table structure on previously 5.7 MySQL versions corrected.
  • MDEV-24172 data structure tests for innodb_table_stats and innodb_index_stats incorrect
    Fixed – 10.2.27, 10.3.28, 10.4.17, 10.5.9
  • MDEV-24449 Corruption of system tablespace or last recovered page
    Celebrating a long time elusive bug being finally fixed.
  • MDEV-24566 mysql_upgrade failed with “(‘mariadb.sys’@’localhost’) does not exist” and mariadb 10.4/10.5 on docker
    MariaDB Corporation container packaging bug, not the common community MariaDB one. Fixed in 10.4.18, 10.5.9 container release
  • MDEV-24540 Detect during mysql_upgrade if type_mysql_json.so is needed and load it
    Allows easier migration of MySQL-5.7 in-place upgrades when JSON types are used. Fixed in 10.5.9 release.
  • MDEV-24789 Performance regression after MDEV-24671
    Fixed in 10.6.

Valerii, who mentions bugs significantly often, gave a mysql_upgrade FOSDEM talk also included a number of open MDEV references. Some of which are corrected above, many more need attention however. Thanks for highlighting these.

Conclusions

What these show is in the few weeks before FOSDEM when talks where recorded, and in the couple of weeks afterwards, the number of bugs closed is considerably high.

Some of these are because our development community realized the bugs where important and were fixing them.

Other MDEVs were highlighted by FOSDEM users/presenters. Work is being undertaken to fix them, or to a proper design for new features.

To our MariaDB server developers, a big thank you for fixing issues and providing improvements in every release. If you, the reader, like to get starting improving MariaDB code, please have a go, and do ask about MDEV task to ensure you come up with an acceptable design first.

To our user community, please report bugs and watch and/or vote on existing issues (bugs and feature requests) that affect you. We do care what you want, and will work to get the most requested bugs/feature requests resolved. One way you could help us is if a bug doesn’t have a reproducible tests case, if you can provide one that would be most welcome.

A final thank you from me to the FOSDEM organizers and their software development team for changing to an online format for everyone. It a massive task that had a high number of positive aspects that turned out really well. Thank you.