[ 
https://issues.apache.org/jira/browse/IGNITE-8801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17811353#comment-17811353
 ] 

Scott Feldstein commented on IGNITE-8801:
-----------------------------------------

thanks for the response [~timonin.maksim] 

We noticed this issue when upgrading to 2.16.0 in the Ignite Hibernate L2 cache 
implementation.  There are two caches the {{default-update-timestamps-region}} 
and {{{}default-query-results-region{}}}, both of these are updated by 
hibernate in their transactional boundary and we have no control of the precise 
ordering afaict.

For the time being I updated our implementation (which is a mirror of the 
ignite hibernate impl) to create these caches using TRANSACTIONAL mode.  Not 
sure if that will have any implications for atomic caches since the timestamps 
and query caches are used for transactional / non-transactional updates.

The overall problem that I see is - in frameworks such as hibernate developers 
may have no control over the precise ordering of updates.  This will cause 
issues where Ignite will not accommodate the desired behavior due to this 
restriction.

That being said, perhaps the switch to TRANSACTIONAL mode for these hibernate 
internal caches is benign and I'm overreacting :) But I imagine you'll run into 
issues at some point where developers simply can't control the ordering of 
updates on caches that can't as easily be switched to TRANSACTIONAL.

Question - what is the implication of making a cache TRANSACTIONAL as opposed 
to ATOMIC? IOW, why can't all caches be TRANSACTIONAL?

> Change default behaviour of atomic operations inside transactions
> -----------------------------------------------------------------
>
>                 Key: IGNITE-8801
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8801
>             Project: Ignite
>          Issue Type: Sub-task
>            Reporter: Ryabov Dmitrii
>            Assignee: Julia Bakulina
>            Priority: Minor
>              Labels: ise
>             Fix For: 2.15
>
>          Time Spent: 5h
>  Remaining Estimate: 0h
>
> Need to change default behaviour of atomic operations to fail inside 
> transactions.
> 1) Remove IGNITE_ALLOW_ATOMIC_OPS_IN_TX system property.
> 2) Set default value to restrict atomic operations in 
> {{CacheOperationContext}} constructor without arguments and arguments for 
> calls of another constructor.
> 3) Fix javadocs.
> As per the latest round of discussion on Ignite Dev List as of 28/10/2022 we 
> agreed on the following:
> 1) Revert deprecation IGNITE-17916 - reverted
> 2) Change default value in 2.15.
> 3) Notify users in release notes, an exception message - how to change the
> behavior back.



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

Reply via email to