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

MyRocks: Range Locking: SeekForUpdate support

    XMLWordPrintable

    Details

      Description

      This is to support "Seek For Update" functionality in Range Locking feature for RocksDB.

      Initial input

      SeekForUpdate(prefix_X) -> should try to lock range from prefix_X to X
       
      Prototype with
        Seek(prefix_X) -> X; 
        TryRangeLock(prefix_X, X);
        Update snapshot (by destroying/recreating iterator?)
        Z = Seek(X) (optimizations, only look through memtable);
        if (Z > Y)
          return SeekForUpdate(X);
        else
          return Z;
      

      The code

      MyRocks part: https://github.com/spetrunia/mysql-5.6/tree/range-locking-fb-mysql-5.6.35-seekforupdate
      RocksDB part: https://github.com/spetrunia/rocksdb/tree/spetrunia-rocksdb-range-locking-seekforupdate

      Questions

      • criteria when to use SeekForUpdate
      • do we need to support shared locks in the first milestone? (TODO: check they will "happen to work"?)

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                Created:
                Updated: