Details

    Description

      Desc:- This will split Alter into 2 different commits. START ALTER and COMMIT
      /ROLLBACK ALTER , Start Alter will be written in binlog as soon as we get the
      locks for the table, alter will proceeds as usual and at the time of writing
      binlog if alter is successful we will write COMMIT Alter other wise ROLLBACK
      Alter.

      Implementation details are in develop list
      https://lists.launchpad.net/maria-developers/msg12067.html

      Attachments

        Issue Links

          Activity

            sachin.setiya.007 Sachin Setiya (Inactive) created issue -
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Field Original Value New Value
            Description Currently no true LOCK=NONE exists on slave.
            Alter table is first committed on master then it is replicated on slaves.
            The purpose of this task is to create a true LOCK=NONE
            Currently no true LOCK=NONE exists on slave.
            Alter table is first committed on master then it is replicated on slaves.
            The purpose of this task is to create a true LOCK=NONE

            Implementation Idea

            Master will write BEGIN_DDL_EVENT in binlog after it hits ha_prepare_inplace_alter_table.
            Then master will write QUERY_EVENT on binlog with actual alter query .
            On commit/rollback master will write COMMIT_DDL_EVENT/ROLLBACK_DDL_EVENT.

            On slave there will be pool of threads(configurable global variable), which
            will apply these DDLs. On reciving BEGIN_DDL_EVENT slave thread will pass the
            QUERY_EVENT to one of the worker thread. Worker thread will execute untill
            ha_inplace_alter_table. Actual commit_inplace_alter will be called by sql thread.
            If sql thread recieve some kind of rollback event , then it will somehow signal
            worker thread to stop executing alter. If none of the worker threads are avaliable
            then event will be enqueued, then If we recieved rollback event the we will simply
            discard event from queue, If we recieved commit event then SQL thread will syncrolysly
            process DDL event.
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Summary True LOCK=NONE on slave. True ALTER LOCK=NONE on slave.
            serg Sergei Golubchik made changes -
            Fix Version/s 10.3 [ 22126 ]
            Fix Version/s 10.2 [ 14601 ]
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Status In Progress [ 3 ] Stalled [ 10000 ]
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Labels gsoc18
            serg Sergei Golubchik made changes -
            Description Currently no true LOCK=NONE exists on slave.
            Alter table is first committed on master then it is replicated on slaves.
            The purpose of this task is to create a true LOCK=NONE

            Implementation Idea

            Master will write BEGIN_DDL_EVENT in binlog after it hits ha_prepare_inplace_alter_table.
            Then master will write QUERY_EVENT on binlog with actual alter query .
            On commit/rollback master will write COMMIT_DDL_EVENT/ROLLBACK_DDL_EVENT.

            On slave there will be pool of threads(configurable global variable), which
            will apply these DDLs. On reciving BEGIN_DDL_EVENT slave thread will pass the
            QUERY_EVENT to one of the worker thread. Worker thread will execute untill
            ha_inplace_alter_table. Actual commit_inplace_alter will be called by sql thread.
            If sql thread recieve some kind of rollback event , then it will somehow signal
            worker thread to stop executing alter. If none of the worker threads are avaliable
            then event will be enqueued, then If we recieved rollback event the we will simply
            discard event from queue, If we recieved commit event then SQL thread will syncrolysly
            process DDL event.
            Currently no true LOCK=NONE exists on slave.
            Alter table is first committed on master then it is replicated on slaves.
            The purpose of this task is to create a true LOCK=NONE

            *Implementation Idea*

            Master will write BEGIN_DDL_EVENT in binlog after it hits ha_prepare_inplace_alter_table.
            Then master will write QUERY_EVENT on binlog with actual alter query .
            On commit/rollback master will write COMMIT_DDL_EVENT/ROLLBACK_DDL_EVENT.

            On slave there will be pool of threads(configurable global variable), which
            will apply these DDLs. On reciving BEGIN_DDL_EVENT slave thread will pass the
            QUERY_EVENT to one of the worker thread. Worker thread will execute untill
            ha_inplace_alter_table. Actual commit_inplace_alter will be called by sql thread.
            If sql thread recieve some kind of rollback event , then it will somehow signal
            worker thread to stop executing alter. If none of the worker threads are avaliable
            then event will be enqueued, then If we recieved rollback event the we will simply
            discard event from queue, If we recieved commit event then SQL thread will syncrolysly
            process DDL event.
            serg Sergei Golubchik made changes -
            Summary True ALTER LOCK=NONE on slave. True ALTER LOCK=NONE on slave
            serg Sergei Golubchik made changes -
            Fix Version/s 10.3 [ 22126 ]
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Fix Version/s 10.4 [ 22408 ]
            julien.fritsch Julien Fritsch made changes -
            Epic Link PT-76 [ 68557 ]
            marko Marko Mäkelä made changes -
            marko Marko Mäkelä made changes -
            Elkin Andrei Elkin made changes -
            ratzpo Rasmus Johansson (Inactive) made changes -
            Labels gsoc18 gsoc18 gsoc19
            marko Marko Mäkelä made changes -
            Fix Version/s 10.5 [ 23123 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            NRE Projects RM_104_others RM_105_CANDIDATE RM_105_CANDIDATE
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.4 [ 22408 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Epic Link PT-76 [ 68557 ]
            serg Sergei Golubchik made changes -
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Labels gsoc18 gsoc19
            serg Sergei Golubchik made changes -
            Labels gsoc18 gsoc19
            marko Marko Mäkelä made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            stephane@skysql.com VAROQUI Stephane made changes -
            stephane@skysql.com VAROQUI Stephane made changes -
            stephane@skysql.com VAROQUI Stephane made changes -
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Summary True ALTER LOCK=NONE on slave Lag Free Alter On Slave
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Description Currently no true LOCK=NONE exists on slave.
            Alter table is first committed on master then it is replicated on slaves.
            The purpose of this task is to create a true LOCK=NONE

            *Implementation Idea*

            Master will write BEGIN_DDL_EVENT in binlog after it hits ha_prepare_inplace_alter_table.
            Then master will write QUERY_EVENT on binlog with actual alter query .
            On commit/rollback master will write COMMIT_DDL_EVENT/ROLLBACK_DDL_EVENT.

            On slave there will be pool of threads(configurable global variable), which
            will apply these DDLs. On reciving BEGIN_DDL_EVENT slave thread will pass the
            QUERY_EVENT to one of the worker thread. Worker thread will execute untill
            ha_inplace_alter_table. Actual commit_inplace_alter will be called by sql thread.
            If sql thread recieve some kind of rollback event , then it will somehow signal
            worker thread to stop executing alter. If none of the worker threads are avaliable
            then event will be enqueued, then If we recieved rollback event the we will simply
            discard event from queue, If we recieved commit event then SQL thread will syncrolysly
            process DDL event.
            Desc:- This will split Alter into 2 different commits. START ALTER and COMMIT
            /ROLLBACK ALTER , Start Alter will be written in binlog as soon as we get the
            locks for the table, alter will proceeds as usual and at the time of writing
            binlog if alter is successful we will write COMMIT Alter other wise ROLLBACK
            Alter.

            Implementation details are in develop list
            https://lists.launchpad.net/maria-developers/msg12067.html
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Assignee Sachin Setiya [ sachin.setiya.007 ] Andrei Elkin [ elkin ]
            Status Stalled [ 10000 ] In Review [ 10002 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Elkin Andrei Elkin made changes -
            Fix Version/s 10.6 [ 24028 ]
            Fix Version/s 10.5 [ 23123 ]
            Elkin Andrei Elkin made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            Elkin Andrei Elkin made changes -
            Assignee Andrei Elkin [ elkin ] Sachin Setiya [ sachin.setiya.007 ]
            Elkin Andrei Elkin made changes -
            julien.fritsch Julien Fritsch made changes -
            Comment [ A comment with security level 'Developers' was removed. ]
            sachin.setiya.007 Sachin Setiya (Inactive) made changes -
            Status In Review [ 10002 ] Stalled [ 10000 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            Elkin Andrei Elkin made changes -
            Status Stalled [ 10000 ] Open [ 1 ]
            Elkin Andrei Elkin made changes -
            Status Open [ 1 ] Confirmed [ 10101 ]
            alice Alice Sherepa made changes -
            alice Alice Sherepa made changes -
            alice Alice Sherepa made changes -
            alice Alice Sherepa made changes -
            alice Alice Sherepa made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.6 [ 24028 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.7 [ 24805 ]
            serg Sergei Golubchik made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            serg Sergei Golubchik made changes -
            Assignee Sachin Setiya [ sachin.setiya.007 ] Andrei Elkin [ elkin ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.7 [ 24805 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            Elkin Andrei Elkin made changes -
            Status Confirmed [ 10101 ] In Progress [ 3 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 79004 ] MariaDB v4 [ 131819 ]
            Elkin Andrei Elkin made changes -
            Assignee Andrei Elkin [ elkin ] Brandon Nesterenko [ JIRAUSER48702 ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            Elkin Andrei Elkin made changes -
            Assignee Brandon Nesterenko [ JIRAUSER48702 ] Andrei Elkin [ elkin ]
            Elkin Andrei Elkin made changes -
            Status In Review [ 10002 ] Stalled [ 10000 ]
            Elkin Andrei Elkin made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            Elkin Andrei Elkin made changes -
            Assignee Andrei Elkin [ elkin ] Sergei Golubchik [ serg ]
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Alice Sherepa [ alice ]
            alice Alice Sherepa made changes -
            alice Alice Sherepa made changes -
            ramesh Ramesh Sivaraman made changes -
            jplindst Jan Lindström (Inactive) made changes -
            serg Sergei Golubchik made changes -
            ramesh Ramesh Sivaraman made changes -
            alice Alice Sherepa made changes -
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            alice Alice Sherepa made changes -
            Assignee Alice Sherepa [ alice ] Andrei Elkin [ elkin ]
            serg Sergei Golubchik made changes -
            Fix Version/s 10.8.1 [ 26815 ]
            Fix Version/s 10.8 [ 26121 ]
            Resolution Fixed [ 1 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Labels gsoc18 gsoc19 Preview_10.8 gsoc18 gsoc19
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            stephane@skysql.com VAROQUI Stephane made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            rob.schwyzer@mariadb.com Rob Schwyzer (Inactive) made changes -
            ParadoxV5 Jimmy Hú made changes -
            bnestere Brandon Nesterenko made changes -
            ParadoxV5 Jimmy Hú made changes -
            ParadoxV5 Jimmy Hú made changes -
            ParadoxV5 Jimmy Hú made changes -

            People

              Elkin Andrei Elkin
              sachin.setiya.007 Sachin Setiya (Inactive)
              Votes:
              4 Vote for this issue
              Watchers:
              20 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.