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

Vyacheslav Koptilin commented on IGNITE-12042:
----------------------------------------------

Hi [~xtern],

Well, technically it can be done in that way. I have only one following 
concern. Let's assume the size of an entry is greater than the page size and 
only one page was written, for example, and after that OutOfMemoryException was 
thrown by allocateDataPage().
So, we have partially-written entry, and I am not sure it is a recoverable case.

It seems to me, the proposed change 
(\{{IgniteCacheDatabaseSharedManager#ensureFreeSpaceForInsert}}) is a more 
predictable way to handle this case, moreover it allows to use cache.get() and 
cache.remove() operations even if {{IgniteOutOfMemoryException}} was thrown.

> Atempt to remove entries from fully populated data region may result in 
> IgineOutOfMemoryException
> -------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-12042
>                 URL: https://issues.apache.org/jira/browse/IGNITE-12042
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 2.7
>            Reporter: Vyacheslav Koptilin
>            Assignee: Vyacheslav Koptilin
>            Priority: Major
>             Fix For: 2.8
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Removing entries from non-persistent data region may require allocating a new 
> data page in order to move a tracked page from one bucket of the free-list to 
> another one.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to