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

Denis Chudov reassigned IGNITE-21618:
-------------------------------------

    Assignee: Denis Chudov

> In-flights for read-only transactions
> -------------------------------------
>
>                 Key: IGNITE-21618
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21618
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Denis Chudov
>            Assignee: Denis Chudov
>            Priority: Major
>              Labels: ignite-3
>
> *Motivation*
> We need to make solid mechanism of closing read-only transactions' resources 
> (scan cursors, etc.) on remote servers after tx finish. Resources are 
> supposed to be closed by the requests from coordinator sent from a separate 
> cleanup thread after the tx is finished, to maximise the performance of the 
> tx finish itself and because these requests are needed only for resource 
> cleanup. But we need to prevent a race, such as:
>  * tx request supposing to create a scan cursor on remote server is sent
>  * tx is finished
>  * cleanup thread sends cleanup request
>  * cleanup request reaches remote server
>  * tx request reaches the remote server and opens a cursor that will never be 
> closed.
> We need to ensure that cleanup request will be not sent until the coordinator 
> receives responses for all requests that sent before tx finish, and no 
> requests are allowed after tx finish. Something similar to RW inflight 
> requests counter for RO is to be done.
> *Definition of done*
> Cleanup request from cleanup thread will be not sent until the coordinator 
> receives responses for all requests that sent before tx finish, and no 
> requests are allowed after tx finish.



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

Reply via email to