[
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)