[Maria-developers] MDEV-5277 - Ensure that all MySQL 5.6 options are supported by the MariaDB 10.0 server
Hi! I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options The following options exist in 5.6 but not in 10.0: * default-tmp-storage-engine * log-raw * default_authentication_plugin * ignore-db-dir * binlog-max-flush-queue-time * binlog-row-image * explicit-defaults-for-timestamp * master-info-repository * relay-log-info-repository * binlog-rows-query-log-events * binlog-order-commits * log-throttle-queries-not-using-indexes * end-markers-in-json * optimizer-trace * optimizer-trace-features * optimizer-trace-offset * optimizer-trace-limit * optimizer-trace-max-mem-size * eq-range-index-dive-limit * server-uuid * server-id-bits * slave-rows-search-algorithms * table-open-cache-instances * slave-allow-batching * slave-checkpoint-period * slave-checkpoint-group * slave-parallel-workers * slave-pending-jobs-size-max * enforce-gtid-consistency * gtid-mode * disconnect-on-expired-password * sha256-password-private-key-path (sha256_password plugin) * sha256-password-public-key-path (sha256_password plugin) The following options exist in 5.5 and 5.6 but not in 10.0: * abort-slave-event-count => debug-abort-slave-event-count * disconnect-slave-event-count => debug-disconnect-slave-event-count * exit-info => debug-exit-info * max-binlog-dump-events => debug-max-binlog-dump-events * sporadic-binlog-dump-fail => debug-sporadic-binlog-dump-fail * new * skip-new * skip-stack-trace The following options were added after 5.6.10: * innodb-buffer-pool-evict // UNIV_DEBUG * innodb-ft-total-cache-size * innodb-ft-result-cache-limit * innodb-log-compressed-pages * innodb-log-checkpoint-now // UNIV_DEBUG * rpl-stop-slave-timeout * validate-user-plugins The following NO_CMD_LINE options exist in 5.6 but not in 10.0 (won't add them): * gtid-executed * gtid-next * gtid-next-list * gtid-owned * gtid-purged * log-bin-basename * relay-log-basename * transaction-allow-batching Thanks, Sergey
On Fri, Nov 15, 2013 at 12:07:38PM +0400, Sergey Vojtovich wrote:
Hi!
I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options
The following options exist in 5.6 but not in 10.0: * end-markers-in-json * optimizer-trace * optimizer-trace-features * optimizer-trace-offset * optimizer-trace-limit * optimizer-trace-max-mem-sizea These all are for Optimizer Trace. It hasn't been ported to 10.0. There is no consensus among MariaDB optimizer developers the whether optimizer trace is useful and whether it should be ported.
* eq-range-index-dive-limit
This is from a feature that hasn't been ported from 5.6 to 10.0. In my opinion, we should port it (and maybe think how it can work with EITS). I don't know what others think, though. BR Sergei -- Sergei Petrunia, Software Developer MariaDB | Skype: sergefp | Blog: http://s.petrunia.net/blog
Sergei, thanks for your feedback. On Fri, Nov 15, 2013 at 12:32:11PM +0400, Sergei Petrunia wrote:
On Fri, Nov 15, 2013 at 12:07:38PM +0400, Sergey Vojtovich wrote:
Hi!
I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options
The following options exist in 5.6 but not in 10.0: * end-markers-in-json * optimizer-trace * optimizer-trace-features * optimizer-trace-offset * optimizer-trace-limit * optimizer-trace-max-mem-sizea These all are for Optimizer Trace. It hasn't been ported to 10.0. There is no consensus among MariaDB optimizer developers the whether optimizer trace is useful and whether it should be ported. Ok to state "not used or needed in MariaDB"?
* eq-range-index-dive-limit
This is from a feature that hasn't been ported from 5.6 to 10.0. In my opinion, we should port it (and maybe think how it can work with EITS). I don't know what others think, though.
Ok to state "to be implemented in later 10.x versions"? Thanks, Sergey
On Fri, Nov 15, 2013 at 03:53:47PM +0400, Sergey Vojtovich wrote:
Sergei,
thanks for your feedback.
On Fri, Nov 15, 2013 at 12:32:11PM +0400, Sergei Petrunia wrote:
On Fri, Nov 15, 2013 at 12:07:38PM +0400, Sergey Vojtovich wrote:
Hi!
I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options
The following options exist in 5.6 but not in 10.0: * end-markers-in-json * optimizer-trace * optimizer-trace-features * optimizer-trace-offset * optimizer-trace-limit * optimizer-trace-max-mem-sizea These all are for Optimizer Trace. It hasn't been ported to 10.0. There is no consensus among MariaDB optimizer developers the whether optimizer trace is useful and whether it should be ported. Ok to state "not used or needed in MariaDB"?
* eq-range-index-dive-limit
This is from a feature that hasn't been ported from 5.6 to 10.0. In my opinion, we should port it (and maybe think how it can work with EITS). I don't know what others think, though.
Ok to state "to be implemented in later 10.x versions"?
My opinion is that both should be "to be implemented in later 10.x versions". (others may say "not used or needed" for optimizer trace options). BR Sergei -- Sergei Petrunia, Software Developer MariaDB | Skype: sergefp | Blog: http://s.petrunia.net/blog
Hi Sergei, I updated task accordingly. Thanks, Sergey On Sat, Nov 16, 2013 at 02:53:26AM +0400, Sergei Petrunia wrote:
On Fri, Nov 15, 2013 at 03:53:47PM +0400, Sergey Vojtovich wrote:
Sergei,
thanks for your feedback.
On Fri, Nov 15, 2013 at 12:32:11PM +0400, Sergei Petrunia wrote:
On Fri, Nov 15, 2013 at 12:07:38PM +0400, Sergey Vojtovich wrote:
Hi!
I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options
The following options exist in 5.6 but not in 10.0: * end-markers-in-json * optimizer-trace * optimizer-trace-features * optimizer-trace-offset * optimizer-trace-limit * optimizer-trace-max-mem-sizea These all are for Optimizer Trace. It hasn't been ported to 10.0. There is no consensus among MariaDB optimizer developers the whether optimizer trace is useful and whether it should be ported. Ok to state "not used or needed in MariaDB"?
* eq-range-index-dive-limit
This is from a feature that hasn't been ported from 5.6 to 10.0. In my opinion, we should port it (and maybe think how it can work with EITS). I don't know what others think, though.
Ok to state "to be implemented in later 10.x versions"?
My opinion is that both should be "to be implemented in later 10.x versions". (others may say "not used or needed" for optimizer trace options).
BR Sergei -- Sergei Petrunia, Software Developer MariaDB | Skype: sergefp | Blog: http://s.petrunia.net/blog
Sergey Vojtovich <svoj@mariadb.org> writes:
* binlog-max-flush-queue-time
This is not needed (it is about MySQL 5.6 group commit, MariaDB uses a different implementation. I suppose one could say it is always set to 0).
* binlog-row-image
This is not merged to 10.0 yet (as far as I know). It looks like it would make sense to merge later though.
* master-info-repository * relay-log-info-repository
This is not merged from 5.6. It is about storing slave configuration and old-style position in tables instead of files. I am not much in favour of merging this, though it could make sense I suppose. Mainly for the configuration part. For the position, the prefered way forward is for users to switch to MariaDB GTID, which has the position crash-safe in a different way and is overall much better.
* binlog-rows-query-log-events
We have another very similar option --binlog-annotate-row-events for this. It does not seem to make sense to merge the MySQL 5.6 implementation. I am not sure if it makes sense to try to make the two compatible somehow, probably only if there is a user request.
* binlog-order-commits
Not used in MariaDB group commit (effectively, it is always enabled).
* server-uuid
Hm, I thought we had this already? I guess not... Anyway, I think the server-uuid feature is stupid, and I would suggest not to merge it. AFAIK, this is anyway only a read-only system variable, it cannot be set in my.cnf or command line...
* server-id-bits
This seems to be an NDB specific option, I think we should not merge it nor implement something compatible.
* slave-allow-batching * slave-rows-search-algorithms
I believe this is a feature that improves efficiency of row-based replication of UPDATE/DELETE on tables with no or poor indexing. We could merge it later, I think.
* slave-checkpoint-period * slave-checkpoint-group
This is about multi-threaded slave which we will not have in MariaDB - we have a different implementation for parallel replication. So they do not make sense in MariaDB. It would be ok to implement dummy do-nothing options for compatibility.
* slave-parallel-workers * slave-pending-jobs-size-max
We have in MariaDB these options which are similar: --slave-parallel-threads --slave-parallel-max-queued
* enforce-gtid-consistency * gtid-mode
This is for MySQL 5.6 GTID, which will not be in MariaDB (we have a completely different GTID implementation). So they should not be implemented, nor should we have dummy options for compatibility.
* rpl-stop-slave-timeout
This is not merged to MariaDB yet, but it seems like it would make sense to do so. Hope this helps, - Kristian.
Hi Kristian, thanks for your feedback it helped a lot. I updated jira task accordingly. Below are fields that haven't been identified yet. And a few comments inline. The following options exist in 5.6 but not in 10.0: * default-tmp-storage-engine * log-raw * default-authentication-plugin * ignore-db-dir * explicit-defaults-for-timestamp * log-throttle-queries-not-using-indexes * disconnect-on-expired-password * sha256-password-private-key-path (sha256_password plugin) * sha256-password-public-key-path (sha256_password plugin) The following options exist in 5.5 and 5.6 but not in 10.0: * abort-slave-event-count => debug-abort-slave-event-count * disconnect-slave-event-count => debug-disconnect-slave-event-count * exit-info => debug-exit-info * max-binlog-dump-events => debug-max-binlog-dump-events * sporadic-binlog-dump-fail => debug-sporadic-binlog-dump-fail * new * skip-new * skip-stack-trace The following options were added after 5.6.10: * innodb-buffer-pool-evict // UNIV_DEBUG * innodb-ft-total-cache-size * innodb-ft-result-cache-limit * innodb-log-compressed-pages * innodb-log-checkpoint-now // UNIV_DEBUG * validate-user-plugins On Fri, Nov 15, 2013 at 10:54:03AM +0100, Kristian Nielsen wrote: ...skip...
* server-uuid
Hm, I thought we had this already? I guess not... Anyway, I think the server-uuid feature is stupid, and I would suggest not to merge it. AFAIK, this is anyway only a read-only system variable, it cannot be set in my.cnf or command line... Sorry, it is here by mistake. I didn't notice NO_CMD_LINE. Removed.
...skip...
* enforce-gtid-consistency * gtid-mode
This is for MySQL 5.6 GTID, which will not be in MariaDB (we have a completely different GTID implementation). So they should not be implemented, nor should we have dummy options for compatibility. You mean refuse to start mysqld if any of those two specified? Please confirm.
Thanks, Sergey
Sergey Vojtovich <svoj@mariadb.org> writes:
* enforce-gtid-consistency * gtid-mode
This is for MySQL 5.6 GTID, which will not be in MariaDB (we have a completely different GTID implementation). So they should not be implemented, nor should we have dummy options for compatibility. You mean refuse to start mysqld if any of those two specified? Please confirm.
Yes, I think we should refuse to start if those are specified. (Though if anyone feels strongly about allowing these two variables but ignoring them, I do not have anything against it. They are required for using GTID on MySQL 5.6, AFAIU. But in MariaDB 10, GTID is always enabled (though it may or may not be used). - Kristian.
Hi Kristian, I updated task accordingly. Thanks, Sergey On Fri, Nov 15, 2013 at 01:28:40PM +0100, Kristian Nielsen wrote:
Sergey Vojtovich <svoj@mariadb.org> writes:
* enforce-gtid-consistency * gtid-mode
This is for MySQL 5.6 GTID, which will not be in MariaDB (we have a completely different GTID implementation). So they should not be implemented, nor should we have dummy options for compatibility. You mean refuse to start mysqld if any of those two specified? Please confirm.
Yes, I think we should refuse to start if those are specified.
(Though if anyone feels strongly about allowing these two variables but ignoring them, I do not have anything against it. They are required for using GTID on MySQL 5.6, AFAIU. But in MariaDB 10, GTID is always enabled (though it may or may not be used).
- Kristian.
Hi, Sergey! On Nov 15, Sergey Vojtovich wrote:
Hi!
I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options
The following options exist in 5.6 but not in 10.0: * default-tmp-storage-engine
to be implemented in later 10.x versions (or even in 10.0)
* log-raw
dunno, we don't do query rewriting. not used or needed in MariaDB
* default_authentication_plugin
to be implemented in later 10.x versions
* ignore-db-dir
called ignore-db-dirs in MariaDB
* explicit-defaults-for-timestamp
MDEV-3929
* log-throttle-queries-not-using-indexes
at the moment not used or needed in MariaDB, can be to be implemented in later 10.x versions, if needed
* disconnect-on-expired-password
to be implemented in later 10.x versions
* sha256-password-private-key-path (sha256_password plugin) * sha256-password-public-key-path (sha256_password plugin)
to be implemented in later 10.x versions
The following options exist in 5.5 and 5.6 but not in 10.0: * abort-slave-event-count => debug-abort-slave-event-count * disconnect-slave-event-count => debug-disconnect-slave-event-count * exit-info => debug-exit-info * max-binlog-dump-events => debug-max-binlog-dump-events * sporadic-binlog-dump-fail => debug-sporadic-binlog-dump-fail * new * skip-new * skip-stack-trace
This will, I guess, stay that way.
The following options were added after 5.6.10: * innodb-buffer-pool-evict // UNIV_DEBUG * innodb-ft-total-cache-size * innodb-ft-result-cache-limit * innodb-log-compressed-pages * innodb-log-checkpoint-now // UNIV_DEBUG
will be in 10.0 after the next innodb merge
* validate-user-plugins
to be implemented in later 10.x versions ? Regards, Sergei
Hi Sergei, thanks for your feedback. I updated task accordingly. The patch is also ready and being tested now. On Tue, Nov 19, 2013 at 07:53:37PM +0100, Sergei Golubchik wrote:
Hi, Sergey!
On Nov 15, Sergey Vojtovich wrote:
Hi!
I'm gathering 5.6 options that are not present in 10.0 and the way we want to handle them. Could you check options listed below and if you're aware of their destiny indicate if options: * not used or needed in MariaDB * to be implemented in later 10.x versions * tuned via different 10.x specific options
The following options exist in 5.6 but not in 10.0: * default-tmp-storage-engine
to be implemented in later 10.x versions (or even in 10.0)
* log-raw
dunno, we don't do query rewriting. not used or needed in MariaDB
* default_authentication_plugin
to be implemented in later 10.x versions
* ignore-db-dir
called ignore-db-dirs in MariaDB MySQL has both ignore-db-dir (command line option) and ignore-db-dirs (system variable). :)
Regards, Sergey
* explicit-defaults-for-timestamp
MDEV-3929
* log-throttle-queries-not-using-indexes
at the moment not used or needed in MariaDB, can be to be implemented in later 10.x versions, if needed
* disconnect-on-expired-password
to be implemented in later 10.x versions
* sha256-password-private-key-path (sha256_password plugin) * sha256-password-public-key-path (sha256_password plugin)
to be implemented in later 10.x versions
The following options exist in 5.5 and 5.6 but not in 10.0: * abort-slave-event-count => debug-abort-slave-event-count * disconnect-slave-event-count => debug-disconnect-slave-event-count * exit-info => debug-exit-info * max-binlog-dump-events => debug-max-binlog-dump-events * sporadic-binlog-dump-fail => debug-sporadic-binlog-dump-fail * new * skip-new * skip-stack-trace
This will, I guess, stay that way.
The following options were added after 5.6.10: * innodb-buffer-pool-evict // UNIV_DEBUG * innodb-ft-total-cache-size * innodb-ft-result-cache-limit * innodb-log-compressed-pages * innodb-log-checkpoint-now // UNIV_DEBUG
will be in 10.0 after the next innodb merge
* validate-user-plugins
to be implemented in later 10.x versions ?
Regards, Sergei
Hi, Sergey! On Nov 20, Sergey Vojtovich wrote:
* ignore-db-dir
called ignore-db-dirs in MariaDB
MySQL has both ignore-db-dir (command line option) and ignore-db-dirs (system variable). :)
Yes. I'm not exactly sure why hf merged both into a one variable. I suppose, for compatibility we can add ignore-db-dir as an alias for ignore-db-dirs. Regards, Sergei
Hi Sergei, I believe it's not really needed, ignore-db-dir works due to my_getopt option contraction feature. Regards, Sergey On Wed, Nov 20, 2013 at 09:14:57AM +0100, Sergei Golubchik wrote:
Hi, Sergey!
On Nov 20, Sergey Vojtovich wrote:
* ignore-db-dir
called ignore-db-dirs in MariaDB
MySQL has both ignore-db-dir (command line option) and ignore-db-dirs (system variable). :)
Yes. I'm not exactly sure why hf merged both into a one variable.
I suppose, for compatibility we can add ignore-db-dir as an alias for ignore-db-dirs.
Regards, Sergei
participants (4)
-
Kristian Nielsen
-
Sergei Golubchik
-
Sergei Petrunia
-
Sergey Vojtovich