• Daniel Black's avatar
    MDEV-23326: Aria significantly slow on timezone intialisation · 6b4f0d78
    Daniel Black authored
    The --skip-write-binary-log added to mysql_tzinfo_to_sql in
    MDEV-18778 was only effective if galera was enabled on the server.
    This is because it tied together three concepts under one option:
    1. binary logging
    2. wsrep replication, and
    3. using innodb as a transitional table type.
    
    Change 1: small change in help option to reflect this.
    
    To solve the performance problem with Aria tables, LOCK TABLES WRITE
    is used to eliminate the need to fdatasync until the UNLOCK TABLES.
    
    If galera isn't enabled, then we also want to use the LOCK TABLE WRITE
    mechanism.
    
    The START TRANSACTION added in MDEV-23440 needed to be moved to
    before LOCK TABLES otherwise it would cancel their effect.
    
    TRUNCATE TABLE statements also need to be before the LOCK TABLES.
    
    When changing back from InnoDB to Aria, include the ORDER BY that
    was originally there in 6aaccbcb and matching the final ALTER
    TABLE in the timezonedir branch.
    
    Running: mariadb-tzinfo-to-sql --skip-write-binlog /usr/share/zoneinfo
    now generates 16 Aria_transaction_log_syncs from 7053.
    6b4f0d78
mysql_tzinfo_to_sql_symlink.test 5.79 KB