[ https://issues.apache.org/jira/browse/IGNITE-16892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Lapin updated IGNITE-16892: ------------------------------------- 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 {code:java} 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) {code} 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. h3. 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 was: 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 {code:java} 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) {code} 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. h3. 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. > Update lock manager in order to soupport S, X and I locks > --------------------------------------------------------- > > Key: IGNITE-16892 > URL: https://issues.apache.org/jira/browse/IGNITE-16892 > Project: Ignite > Issue Type: Improvement > Reporter: Alexander Lapin > Assignee: Alexander Lapin > Priority: Major > Labels: ignite-3, transaction3_rw > Time Spent: 20m > Remaining Estimate: 0h > > 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 > {code:java} > 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) {code} > 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. > h3. 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 -- This message was sent by Atlassian Jira (v8.20.10#820010)