Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reasoning behind MySQL 8.0.30 requirement #20218

Open
vdloo opened this issue Aug 29, 2023 · 0 comments
Open

Reasoning behind MySQL 8.0.30 requirement #20218

vdloo opened this issue Aug 29, 2023 · 0 comments

Comments

@vdloo
Copy link

vdloo commented Aug 29, 2023

There seems to be a system requirement on MySQL 8.0.30 for Akeneo 7.

const LOWEST_REQUIRED_MYSQL_VERSION = '8.0.30';

This results in:

ERROR   | Install MySQL greater or equal to 8.0.30 and lower than 8.1.0 (installed version is 8.0.29) |

When performing the installation on a system with MySQL 8.0.29. This requirement is also explicitly mentioned on https://docs.akeneo.com/7.0/install_pim/manual/system_requirements/system_requirements.html

Screenshot 2023-08-29 at 15 37 38

I assume the reasoning behind this strict requirement on this minor version is because of #19929 where it is mentioned that:

Currently, performing an `OPTIMIZE TABLE` on those tables create a MySQL error on instances with a lot of data due to the fact that it requires a lot of available space.
When UCS migration will be over, we won't need to do it anymore because the UCS migration actually rebuilds the table and dump previous data into it.

at https://github.com/akeneo/pim-community-dev/pull/19929/files#diff-dc1c5a86edafd39b109b9673683925c6ad1f542e45b42f31365be2f012a3f1fbR21 (it links to a private notion and slack by the way, it does not detail the exact nature of these crashes in the comment).

Considering that MySQL 8.0.29 and MySQL 8.0.30 are functionally not very different, I wonder if the LOWEST_REQUIRED_MYSQL_VERSION is actually too strict and should instead be 1. either optionally by passable by the user on installation or 2. decremented to a lower minor version of mysql.

There are two arguments you could make for this:

  • The migration problem likely does not affect newly installed Akeneo 7 deployments.

New deployments will not have the amount of data where this would pose a problem and people are now artificially denied from installing Akeneo because of this version check.

  • Different distributions of MySQL may have fixed this crash issue already in an earlier version of MySQL

I am not entirely sure about this but it seems to me that the particular issue that Akeneo was running into with this OPTIMIZE TABLE may have been related to https://www.percona.com/blog/percona-xtrabackup-8-0-29-and-instant-add-drop-columns/. There were some notorious problems in the upstream MySQL release (https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-29.html) that Percona already addressed in 8.0.29.

Perhaps @StevenVAIDIE can shine some light on why the decision was made for this version check to depend on at least 8.0.30?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant