Details

      Description

      InnoDB does "Gap Locking", while MyRocks doesn't. This causes different transaction isolation behavior between the two engines.

      In order to simplify migration, MyRocks team has added an SQL layer feature that

      • detects queries that are doing gap locks
      • optionally writes these queries into log
      • optionally aborts these queries (TODO: more details)

      The idea is that before the migration, one can run with InnoDB, and enable these to check if the queries are using Gap Locks, and if so, rewrite them to not do that.

      Relevant commits:
      9b439ee Add option to exclude tables from gap lock check
      6078c85 Preventing to write "Got error 122.." to err log on Gap Lock errors
      782cc5a Optionally block/log queries relying on Gap Locks

      There is no agreement about whether this can be ported to MariaDB.

      • Pro: FB team found this feature very useful when moving applications to MyRocks
      • Contra: It's a storage-engine specific feature, why is it present on the SQL layer?

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                psergey Sergei Petrunia
                Reporter:
                psergey Sergei Petrunia
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: