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

Igor Seliverstov updated IGNITE-7911:
-------------------------------------
    Fix Version/s:     (was: 2.5)
                   2.6

> TX SQL: restrict usages of unsupported APIs and configuration parameters
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-7911
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7911
>             Project: Ignite
>          Issue Type: Task
>          Components: cache, sql
>            Reporter: Vladimir Ozerov
>            Assignee: Alexander Paschenko
>            Priority: Major
>             Fix For: 2.6
>
>
> We need to make sure that when MVCC flag is enabled, users get correct 
> exception in case of invalid configurations and/or API usages. Two general 
> rules should apply
> 1) SQL and cache operations cannot be mixed in the same transactions because 
> they still use different APIs. This restriction will be removed in future 
> when native cache API is reworked to new locking logic.
> 2) If configuration is invalid or not-yet-supported API is called, user gets 
> correct exception instead of invalid result.
> All listed cases must be covered with tests.
> Checklist:
> 1) Cache configuration
> 1.1) Cache store is not allowed for TX caches
> 1.2) Expiry policy is not allowed for TX caches
> 1.3) Interceptors are not allowed for TX caches
> 2) Cache API unsupported operations - throw UnsupportedOperationException and 
> create relevant ticket (if one doesn't exist):
> 2.1) withExpiryPolicy 
> 2.2) Continuous queries
> 2.3) "clear" method family 
> 2.4) "lock" method family 
> 2.5) "load" method family 
> 2.6) "peek" method family 
> 2.7) "evict" method family
> 3) Cache API consistency - make sure that these operations use consistent 
> snapshot assigned to transaction (as with other operations). If this is the 
> case - do nothing; if this is not the case - throw 
> UnsupportedOperationException and create a ticket (if one doesn't exist)
> 3.1) Scan queries
> 3.2) "size" method family
> 3.3) Iterator methods (iterator, localEntries)
> 4) Mixed native API and SQL usage is restricted and proper IgniteException is 
> thrown. When snapshot is requested for the first time we should mark 
> transation as either "SQL" or "native". If any SQL query is executed on 
> "native" transaction or vice versa throw an exception (IllegalStateException? 
> IgniteException?)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to