In some circumstances there could be a state when direct buffers (instantiated for IO purposes) hold too many memory and to get this memory back JVM calls System.gc() (as was mentioned earlier by Ivan Daschinsky):

ByteBuffer.allocateDirect(capacity)
    new DirectButeBuffer(capacity)
        Bits.reserveMemory(size, cap)
...
            System.gc() // if optimistic attempts to reserve required memory failed

See also:
[1] http://www.mastertheboss.com/other/java-stuff/troubleshooting-outofmemoryerror-direct-buffer-memory

See

16.05.2021 01:21, Valentin Kulichenko пишет:
Hi Ilya,

Out of curiosity - what are the potential problems with memory buffers that
you're referring to?

-Val

On Fri, May 14, 2021 at 5:06 AM Ilya Korol <llivezk...@gmail.com> wrote:

Hi, everyone.

There is a proposal to remove suggestion that user should disable
explicit GC calls in https://issues.apache.org/jira/browse/IGNITE-14720.

Nowadays people usually don't use this facility directly without huge
need (at least we hope so), so this suggestion doesn't bring much
profit, but instead could lead to potential problems with reclaiming
memory used by direct memory buffers.

I'm going to fix this.

Is there any objections (suggestions)?


Reply via email to