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