Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-12050

Remove unused InnoDB Memcached hooks from MariaDB Server

Details

    Description

      Oracle introduced a Memcached plugin interface to the InnoDB storage engine in MySQL 5.6. That interface is essentially a fork of what seems like an abandoned development branch of Memcached. To my knowledge, there have not been any updates to the Memcached code between MySQL 5.6 and 5.7; only bug fixes and extensions related to the Oracle modifications.

      The Memcached plugin is not part of the MariaDB Server. Therefore it does not make sense to include the InnoDB interfaces for the Memcached plugin, or to have any related configuration parameters:

      • innodb_api_bk_commit_interval
      • innodb_api_disable_rowlock
      • innodb_api_enable_binlog
      • innodb_api_enable_mdl
      • innodb_api_trx_level

      While there is a request to implement Memcached in MariaDB (MDEV-4674), it cannot possibly be completed before the MariaDB Server 10.2 reaches Generally Available status. Removing this code in one commit makes it possible to easily restore it later, in case it turns out to be needed.

      Attachments

        Issue Links

          Activity

            Pushed to bb-10.2-marko (on top of some unrelated patches) for test and review.

            marko Marko Mäkelä added a comment - Pushed to bb-10.2-marko (on top of some unrelated patches) for test and review.

            Let's discuss this, we have PR https://github.com/MariaDB/server/pull/126 to implement our own memcached plugin but it has not progressed after GSoC2015 much.

            jplindst Jan Lindström (Inactive) added a comment - Let's discuss this, we have PR https://github.com/MariaDB/server/pull/126 to implement our own memcached plugin but it has not progressed after GSoC2015 much.
            marko Marko Mäkelä added a comment - - edited

            The patch missed the removal of the error codes DB_DATA_MISMATCH, DB_SCHEMA_NOT_LOCKED.
            Also DB_NOT_FOUND was introduced with Memcached, but that code is now being used for ‘file not found’.
            The now-unused function mach_write_int_type() should be removed too. Possibly also mach_write_ulonglong().

            marko Marko Mäkelä added a comment - - edited The patch missed the removal of the error codes DB_DATA_MISMATCH, DB_SCHEMA_NOT_LOCKED. Also DB_NOT_FOUND was introduced with Memcached, but that code is now being used for ‘file not found’. The now-unused function mach_write_int_type() should be removed too. Possibly also mach_write_ulonglong().

            For the record, I tracked down the exact Memcached revision that is bundled in Oracle MySQL 5.6 and later.
            The initial version was somewhat older, but the final updated version was in this commit:

            commit 4b6aeb3065cd7dfe4541a0242f3d3066bf37d625
            Author: Jimmy Yang <jimmy.yang@oracle.com>
            Date:   Fri Sep 23 02:39:00 2011 -0700
             
                Update Memcached to the latest 1.6.0(beta 1).
            

            This appears to correspond to the Memcached engine-pu branch, tag 1.6.0-beta1. Actually the very last commit is not included:

            tag 1.6.0-beta1
            Tagger: dormando <dormando@rydia.net>
            Date:   Mon Apr 11 20:42:46 2011 -0700
             
            Initial beta of 1.6.0. Apologies for the brief annotation :)
             
            commit 6debef043b7da953c6a427ed687cd0b1d1185dec
            Author: Piotr Sikora <piotr.sikora@frickle.com>
            Date:   Mon Apr 11 15:20:43 2011 -0700
             
                Add missing header (fixes build on OpenBSD).
            

            After this, there have not been any tags starting with 1.6, nor any imports of the Memcached code base. Memcached development seems to continue on the 1.4 stable branch.

            marko Marko Mäkelä added a comment - For the record, I tracked down the exact Memcached revision that is bundled in Oracle MySQL 5.6 and later. The initial version was somewhat older, but the final updated version was in this commit : commit 4b6aeb3065cd7dfe4541a0242f3d3066bf37d625 Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Fri Sep 23 02:39:00 2011 -0700   Update Memcached to the latest 1.6.0(beta 1). This appears to correspond to the Memcached engine-pu branch , tag 1.6.0-beta1 . Actually the very last commit is not included: tag 1.6.0-beta1 Tagger: dormando <dormando@rydia.net> Date: Mon Apr 11 20:42:46 2011 -0700   Initial beta of 1.6.0. Apologies for the brief annotation :)   commit 6debef043b7da953c6a427ed687cd0b1d1185dec Author: Piotr Sikora <piotr.sikora@frickle.com> Date: Mon Apr 11 15:20:43 2011 -0700   Add missing header (fixes build on OpenBSD). After this, there have not been any tags starting with 1.6, nor any imports of the Memcached code base. Memcached development seems to continue on the 1.4 stable branch.

            ok to push.

            jplindst Jan Lindström (Inactive) added a comment - ok to push.

            I spent more time researching the version history of the Memcached code in MySQL.

            marko Marko Mäkelä added a comment - I spent more time researching the version history of the Memcached code in MySQL.

            For the record, the Memcached interface was finally removed in MySQL 8.3.0. Not completely, maybe because the original authors are gone, and the current MySQL InnoDB maintainers joined Oracle much later.

            marko Marko Mäkelä added a comment - For the record, the Memcached interface was finally removed in MySQL 8.3.0 . Not completely, maybe because the original authors are gone, and the current MySQL InnoDB maintainers joined Oracle much later.

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.