Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-16892

Introduce new LockManager interface in order to soupport S, X and I locks

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      1. Lock management logic will be introduced in IGNITE-17255

      2. Lock storages will be introduced in  IGNITE-15932

      Given ticket is a sort of a bridge between 1 and 2 that will adjust LockManager methods along with corresponding implementation with LockMode parameter that will clarify whether lock is

      • Exclusive
      • Shared
      • IntentExclusive
      • IntentShared
      • SharedAndIntentExclusive
      CompletableFuture<Lock> acquire(UUID txId, <?> lockName LockMode lockMode);
      
      void release(Object key, UUID txId, Lock lock, LockMode lockMode) throws LockException;
      
      Iterator<Lock> locks(UUID txId) 

      lockName is a sort of lock locator, that either:

      • RowId for data storage locks.
      • UUID or similar to table/index commonly intent locks.
      • Index keys.

      Upd 

      For the purposes of unblocking IGNITE-17255 it's reasonable to split given ticket into two parts

      • The one that will introduce new LockManager interface and integrate it into existing tx logic.
      • The one that will add intention lock support from the HeapLockManager point of view.

      Only first part will be implemented within the scope of given ticket. HeapLockManager updates will be implemented in https://issues.apache.org/jira/browse/IGNITE-17498

      Attachments

        Issue Links

          Activity

            People

              alapin Alexander Lapin
              alapin Alexander Lapin
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h