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

Drop support for MyISAM for 2.9

    XMLWordPrintable

Details

    • MOODLE_27_STABLE, MOODLE_29_STABLE
    • MOODLE_29_STABLE
    • MDL-46064_master
    • 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!).
    • Team Beards Sprint 4
    • 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

              markn Mark Nelson
              poltawski Dan Poltawski
              Frédéric Massart Frédéric Massart
              David Monllaó David Monllaó
              Rajesh Taneja Rajesh Taneja
              Andrew Lyons, Huong Nguyen, Jun Pataleta, Michael Hawkins, Shamim Rezaie, Simey Lameze
              Votes:
              7 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                11/May/15