If I understand the logic of things like SlabAllocator properly, this is 
essentially buffer space that has been allocated for the purpose and C* pulls 
off ByteBuffer hunks of it as needed.  The notion of reclaiming by the kernel 
wouldn’t apply, C* would be managing the use of the space itself.

Whether GC cycles matter at all isn’t obvious at a quick glance.  C* makes use 
of weak and phantom references so it’s possible that there is a code path where 
release of a ByteBuffer would wait upon a GC, but I can’t say for sure.

From: HImanshu Sharma <himanshusharma0...@gmail.com>
Reply-To: "user@cassandra.apache.org" <user@cassandra.apache.org>
Date: Wednesday, April 15, 2020 at 10:34 PM
To: "user@cassandra.apache.org" <user@cassandra.apache.org>
Subject: How quickly off heap memory freed by compacted tables is reclaimed

Message from External Sender
Hi

As we know data structures like bloom filters, compression metadata, index 
summary are kept off heap. But once a table gets compacted, how quickly that 
memory is reclaimed by kernel.
Is it instant or it depends when reference if GCed?

Regards
Himanshu

Reply via email to