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

Vladimir Ozerov updated IGNITE-10829:
-------------------------------------
    Issue Type: Task  (was: Improvement)

> MVCC TX: Lazy query execution for query enlists.
> ------------------------------------------------
>
>                 Key: IGNITE-10829
>                 URL: https://issues.apache.org/jira/browse/IGNITE-10829
>             Project: Ignite
>          Issue Type: Task
>          Components: mvcc
>    Affects Versions: 2.7
>            Reporter: Igor Seliverstov
>            Priority: Major
>             Fix For: 2.8
>
>
> Running query enlist operations (GridNearTxQueryEnlistFuture) we put query 
> execution to data nodes, such execution runs a local select 
> (GridDhtTxQueryEnlistFuture), gets a cursor and executes write operation for 
> each select result row.
> The main difficult starts when we cannot execute whole operation at once (due 
> to lock conflict or backup message queue overflow). Such case we break 
> iteration and save a context (detach H2 connection for further exclusive 
> usage and save current position in cursor). There is no issue since in 
> non-lazy mode the cursor internally have a list of all needed entries and 
> doesn't hold any resources but in lazy mode we may face two issues:
> 1) Schema change in between of iteration
> 2) Possible starvation because of heavy time consuming operations in cache 
> pool, which used by default for operation continuation. 
> As soon as IGNITE-9171 is implemented, possible lazy execution is had to be 
> taken into consideration. This mean:
> 1) before braking iteration we need to release all holding shared locks on on 
> being iterated tables.
> 2) before continue iteration we need to acquire shared locks on all needed 
> tables and check the schema wasn't changed in between locks were acquired.
> 3) the operation should be continued in the same pool it was started to 
> prevent possible starvation of concurrent cache operations (See IGNITE-10597).



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

Reply via email to