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

            marko Marko Mäkelä added a comment - - edited

            A variation of the same idea is in MDEV-16223, for initiating ADD INDEX in the background.

            This solution would be preferred instead of that one (MDEV-16223).

            marko Marko Mäkelä added a comment - - edited A variation of the same idea is in MDEV-16223 , for initiating ADD INDEX in the background. This solution would be preferred instead of that one ( MDEV-16223 ).
            Elkin Andrei Elkin added a comment -

            Note MDEV-7974 is actually to provide an infrastructure to replicate the prepare and commit parts of an object not being limited to XA trx.
            Specifically crash-safety (recovery) property of the prepare part are common.

            Elkin Andrei Elkin added a comment - Note MDEV-7974 is actually to provide an infrastructure to replicate the prepare and commit parts of an object not being limited to XA trx. Specifically crash-safety (recovery) property of the prepare part are common.

            Hi ralf.gebhardt@mariadb.com
            There is no update , because we there was no proposal for this project .

            sachin.setiya.007 Sachin Setiya (Inactive) added a comment - Hi ralf.gebhardt@mariadb.com There is no update , because we there was no proposal for this project .
            ralf.gebhardt Ralf Gebhardt added a comment -

            sachin.setiya.007 I only asked because there are the gsoc labels. I guess that they can be removed, no?

            ralf.gebhardt Ralf Gebhardt added a comment - sachin.setiya.007 I only asked because there are the gsoc labels. I guess that they can be removed, no?

            No-no, they should not be removed. They mean that the task was offered for GSoC 2018 and GSoC 2019.
            It's a historical fact, that it was, so the labels should be there, indicating that fact.

            serg Sergei Golubchik added a comment - No-no, they should not be removed. They mean that the task was offered for GSoC 2018 and GSoC 2019. It's a historical fact, that it was, so the labels should be there, indicating that fact.

            So currently I am working on issue , when we write START ALTER gtid_slave_pos table is not updated, Which is normal because thread is hanging/waiting in
            mysql_alter_table , So we cant call do_update_pos (we are still inside QUery_log_event::do_apply_event)
            So I am thinking of calling ::stmt_done inside mysql_alter_table(after writing START ALTER into binlog), I have stored the log_pos in thd (debatable )
            So the issue which I am facing is , we call lock_tables in mysql_alter_table (normal table , which we want to change), and after that writing START ALTER into binlog we will write into gtid_slave_pos , but when ::stmt_done calls lock_tables its assert is failing because thd->lock is not NULL

            So I am thinking of something like lock gtid_slave_pos when I acquire lock for normal table and release the lock when it is updated , NOt sure if it is possible

            sachin.setiya.007 Sachin Setiya (Inactive) added a comment - So currently I am working on issue , when we write START ALTER gtid_slave_pos table is not updated, Which is normal because thread is hanging/waiting in mysql_alter_table , So we cant call do_update_pos (we are still inside QUery_log_event::do_apply_event) So I am thinking of calling ::stmt_done inside mysql_alter_table(after writing START ALTER into binlog), I have stored the log_pos in thd (debatable ) So the issue which I am facing is , we call lock_tables in mysql_alter_table (normal table , which we want to change), and after that writing START ALTER into binlog we will write into gtid_slave_pos , but when ::stmt_done calls lock_tables its assert is failing because thd->lock is not NULL So I am thinking of something like lock gtid_slave_pos when I acquire lock for normal table and release the lock when it is updated , NOt sure if it is possible
            Elkin Andrei Elkin added a comment -

            The about to be created preview branch misses out FTWRL fixes that we've discussed today
            and it's just too late night for me to complete with them into the branch.
            This will be done tomorrow.

            Elkin Andrei Elkin added a comment - The about to be created preview branch misses out FTWRL fixes that we've discussed today and it's just too late night for me to complete with them into the branch. This will be done tomorrow.

            I approve the current patch c592a5e. Note that it will still need the FTWRL fixes.

            bnestere Brandon Nesterenko added a comment - I approve the current patch c592a5e . Note that it will still need the FTWRL fixes.
            Elkin Andrei Elkin added a comment -

            Approving on the behalf of bnestere.

            Elkin Andrei Elkin added a comment - Approving on the behalf of bnestere .

            Confirmed Andrei's approval on my behalf, I had to step away momentarily

            bnestere Brandon Nesterenko added a comment - Confirmed Andrei's approval on my behalf, I had to step away momentarily
            alice Alice Sherepa added a comment -

            I think it's fine to push the feature into 10.8.

            alice Alice Sherepa added a comment - I think it's fine to push the feature into 10.8.

            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.