Theres a read barrier to stop reclaiming a memtable when there are requests actively reading it. The MemtableReclaimMemory pool offloads that wait instead of blocking the caller. It in itself is not going to use any cpu or increase load. It will however block the releasing of the memtable resources which might cause additional heap allocation pressure. Its more likely a symptom of GCs or reads being slow than the cause of the issue however.


On Mon, May 1, 2017 at 9:01 PM, Pranay akula <> wrote:
Hi Alain,

when  "MemtableReclaimMemory"  Pending Tasks increasing, its slowly backing up reads and writes mostly writes. yes i am seeing bit high GC pressure, currently we are using 24Gb Heap  and G1GC collection. I tried changing Memtable flush threshold it did helped a little but not much. I am not seeing any Errors in the Logs.


On Thu, Apr 27, 2017 at 6:08 AM, Alain RODRIGUEZ <> wrote:
Hi Pranay,

According to, "MemtableReclaimMemory" is the thread pool used for "Making unused memory available". I don't know much about it since it was never an issue for me. Neither did I heard much about it.

  • Are pending tasks staying high for a long period? `watch -d nodetool tpstats`
  • What are your GC settings?
  • Any other threads pending, blocked or dropped?
  • Do you have errors or warnings in your logs?
  • Any GC pressure? (monitored through charts or logs at INFO level, or WARN on recent versions)

Alain Rodriguez - @arodream -

The Last Pickle - Apache Cassandra Consulting

2017-04-16 16:04 GMT+02:00 Pranay akula <>:

what is MemtableReclaimMemory mean in nodetooltpstats ?? does this mean trying to flushing memtable from memory to SStables.

I can see sometimes increase in pending tasks of  MemtableReclaimMemory in nodetool tpstats, at that time i can see increase in load on those nodes.

Does decreasing memtable_cleanup_threshold will help ??