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

Vladislav Pyatkov updated IGNITE-21290:
---------------------------------------
    Description: 
h3. Motivation
Open cursors require extra memory on the server side, so they should be closed 
as soon as they are no longer used. It is easy to understand on the coursor 
owner server when the coursor returns false for the hasNext invocation.
Despite the fact that all acquired transaction resources should be released 
after the transaction finalizes, it would be better to close usles coursorse 
faseter. Moreover, the agreement is fit for all types of transactions: RO, RW, 
and inplicit.


h3. Implementation notes
When the replica returns a batch, their size can be estimated, and the cursor 
can be closed if the size is less than requested.

h3. Definition of done
A cursor is closed on the server side when the client retrieves all data from 
it through any type of scan operation.
Moreover, the server-side cursors should be closed in case the cursor supplier 
is closing through the API.

  was:
h3. Motivation
Open cursors require extra memory on the server side, so they should be closed 
as soon as they are no longer used. It is easy to understand on the coursor 
owner server when the coursor returns false for the hasNext invocation.
Despite the fact that all acquired transaction resources should be released 
after the transaction finalizes, it would be better to close usles coursorse 
faseter. Moreover, the agreement is fit for all types of transactions: RO, RW, 
and inplicit.


h3. Implementation notes
A course can be closed after the _isUpperBoundAchieved_ return is false.
Cover all variant scan operations in tests.
Get rid of the nonsensical message: _ScanCloseReplicaRequest_

h3. Definition of done
A cursor is closed on the server side when the client retrieves all data from 
it through any type of scan operation.


> Scan cursors do not close after being fully read in transactions
> ----------------------------------------------------------------
>
>                 Key: IGNITE-21290
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21290
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>
> h3. Motivation
> Open cursors require extra memory on the server side, so they should be 
> closed as soon as they are no longer used. It is easy to understand on the 
> coursor owner server when the coursor returns false for the hasNext 
> invocation.
> Despite the fact that all acquired transaction resources should be released 
> after the transaction finalizes, it would be better to close usles coursorse 
> faseter. Moreover, the agreement is fit for all types of transactions: RO, 
> RW, and inplicit.
> h3. Implementation notes
> When the replica returns a batch, their size can be estimated, and the cursor 
> can be closed if the size is less than requested.
> h3. Definition of done
> A cursor is closed on the server side when the client retrieves all data from 
> it through any type of scan operation.
> Moreover, the server-side cursors should be closed in case the cursor 
> supplier is closing through the API.



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

Reply via email to