[ 
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)

Reply via email to