[ 
https://issues.apache.org/jira/browse/IGNITE-23980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladislav Pyatkov updated IGNITE-23980:
---------------------------------------
    Description: 
h3. Motivation

We should not execute any operation if the transaction is finished. It is true 
for RW transactions, but RO can be used after their state has been finalized. 
Dispite internla transaction state is final 
({_}ReadOnlyTransactionImpl#finishGuard == true{_}) we do not check it in 
operation (look into {_}InternalTableImpl#get(key, tx){_}).
Any operation cannot be processed for a committed/rolled-back RW transaction 
because we are checking the transaction state during enlist 
({_}ReadWriteTransactionImpl#enlist(){_}).
h3. Definition of done
 * We have to have similar behavior for RO as for RW.
 * We ought to exclude process KV operations (get/getAll) in 
committed/rolled-back RO in the single thread case at least.
 * We need to reject SQL operations in committed/rolled-back RO.

 

  was:
h3. Motivation

We should not execute any operation if the transaction was committed. It is 
true for RW transactions, but RO can be used after their state has been 
finalized. Dispite internla transaction state is final 
({_}ReadOnlyTransactionImpl#finishGuard == true{_}) we do not check it in 
operation (look into {_}InternalTableImpl#get(key, tx){_}).
Any operation cannot be processed for a committed/rolled-back RW transaction 
because we are checking the transaction state during enlist 
({_}ReadWriteTransactionImpl#enlist(){_}).
h3. Definition of done
 * We have to have similar behavior for RO as for RW.
 * We ought to exclude process KV operations (get/getAll) in 
committed/rolled-back RO in the single thread case at least.
 * We need to reject SQL operations in committed/rolled-back RO.

 


> Fail operations in a completed transaction
> ------------------------------------------
>
>                 Key: IGNITE-23980
>                 URL: https://issues.apache.org/jira/browse/IGNITE-23980
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> We should not execute any operation if the transaction is finished. It is 
> true for RW transactions, but RO can be used after their state has been 
> finalized. Dispite internla transaction state is final 
> ({_}ReadOnlyTransactionImpl#finishGuard == true{_}) we do not check it in 
> operation (look into {_}InternalTableImpl#get(key, tx){_}).
> Any operation cannot be processed for a committed/rolled-back RW transaction 
> because we are checking the transaction state during enlist 
> ({_}ReadWriteTransactionImpl#enlist(){_}).
> h3. Definition of done
>  * We have to have similar behavior for RO as for RW.
>  * We ought to exclude process KV operations (get/getAll) in 
> committed/rolled-back RO in the single thread case at least.
>  * We need to reject SQL operations in committed/rolled-back RO.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to