Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-46064

Drop support for MyISAM for 2.9

    XMLWordPrintable

    Details

    • Testing Instructions:
      Hide
      Test 1
      1. Create a new instance of Moodle using MySQL but do not go through the installation process (so there should be no tables in the database).
      2. Locate your my.cnf file and add the following -

        [mysqld]
        default-storage-engine=MyISAM
        default-tmp-storage-engine=MyISAM
        innodb=OFF
        

      3. Restart your MySQL server.
      4. Visit your site (which should take you to the installation page).
      5. Click 'Continue' so you are taken to the 'Server checks' page.
      6. Confirm there is a message under the 'Other checks' section warning you that you are not using a supported database storage engine and ensure you can not continue.
      7. Comment out the additional lines you added to your my.cnf file and restart your MySQL server.
      8. Confirm that you can now go ahead with the installation.
      Test 2
      1. Repeat steps 1-3 of Test 1.
      2. Run the installation via command line (php admin/cli/install_database.php --adminuser=admin --adminpass=bahP@5% --agree-license).
      3. Confirm there is a message warning you that you are using an unsupported database storage engine.
      4. Comment out the additional lines you added to your my.cnf file and restart your MySQL server.
      5. Run the install script again and confirm the installation was successful.
      Test 3
      1. Create a 2.8 site and go through the installation process.
      2. Change the storage engine for the 'mdl_config' table to 'MyISAM'.
      3. Upgrade your code to the latest integration master.
      4. Visit your site (which should take you to the upgrade page).
      5. Click 'Continue' so you are taken to the 'Server checks' page.
      6. Confirm there is a message under the 'Other checks' section warning you that you are not using a supported database storage engine and ensure you can not continue.
      7. Change the storage engine for the 'mdl_config' table to 'InnoDB'.
      8. Re-visit your site's front page (which should take you to the upgrade page).
      9. Click 'Continue' so you are taken to the 'Server checks' page.
      10. Confirm that you can now go ahead with the upgrade.
      Test 4
      1. Repeat steps 1-3 of Test 3.
      2. Run the upgrade via command line (php admin/cli/upgrade.php).
      3. Confirm there is a message warning you that you are using an unsupported database storage engine.
      4. Change the storage engine for the 'mdl_config' table to 'InnoDB'.
      5. Run the upgrade script again and confirm the upgrade was successful.
      Test 5.
      1. Repeat the above tests, but instead of MySQL, use MariaDB (Sorry!).
      Show
      Test 1 Create a new instance of Moodle using MySQL but do not go through the installation process (so there should be no tables in the database). Locate your my.cnf file and add the following - [mysqld] default-storage-engine=MyISAM default-tmp-storage-engine=MyISAM innodb=OFF Restart your MySQL server. Visit your site (which should take you to the installation page). Click 'Continue' so you are taken to the 'Server checks' page. Confirm there is a message under the 'Other checks' section warning you that you are not using a supported database storage engine and ensure you can not continue. Comment out the additional lines you added to your my.cnf file and restart your MySQL server. Confirm that you can now go ahead with the installation. Test 2 Repeat steps 1-3 of Test 1. Run the installation via command line (php admin/cli/install_database.php --adminuser=admin --adminpass=bahP@5% --agree-license). Confirm there is a message warning you that you are using an unsupported database storage engine. Comment out the additional lines you added to your my.cnf file and restart your MySQL server. Run the install script again and confirm the installation was successful. Test 3 Create a 2.8 site and go through the installation process. Change the storage engine for the 'mdl_config' table to 'MyISAM'. Upgrade your code to the latest integration master. Visit your site (which should take you to the upgrade page). Click 'Continue' so you are taken to the 'Server checks' page. Confirm there is a message under the 'Other checks' section warning you that you are not using a supported database storage engine and ensure you can not continue. Change the storage engine for the 'mdl_config' table to 'InnoDB'. Re-visit your site's front page (which should take you to the upgrade page). Click 'Continue' so you are taken to the 'Server checks' page. Confirm that you can now go ahead with the upgrade. Test 4 Repeat steps 1-3 of Test 3. Run the upgrade via command line (php admin/cli/upgrade.php). Confirm there is a message warning you that you are using an unsupported database storage engine. Change the storage engine for the 'mdl_config' table to 'InnoDB'. Run the upgrade script again and confirm the upgrade was successful. Test 5. Repeat the above tests, but instead of MySQL, use MariaDB (Sorry!).
    • Affected Branches:
      MOODLE_27_STABLE, MOODLE_29_STABLE
    • Fixed Branches:
      MOODLE_29_STABLE
    • Pull Master Branch:
      MDL-46064_master
    • Sprint:
      Team Beards Sprint 4
    • Issue size:
      Large

      Description

      Tim outlined it in https://moodle.org/mod/forum/discuss.php?d=260200 the benefits:

      • We will be able to rely on transactions in core code to improve robustness
      • Any MyISAM users will be 'forced' to use database engine which has row-level locking and thus much better scalability.
      • We have been warning about MyISAM in use since 2010

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                7 Vote for this issue
                Watchers:
                16 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Fix Release Date:
                  11/May/15