org.apache.cassandra.utils.memory

## Class MemtableAllocator

- java.lang.Object
- - org.apache.cassandra.utils.memory.MemtableAllocator

Direct Known Subclasses:
  MemtableBufferAllocator, NativeAllocator

    public abstract class MemtableAllocator
    extends java.lang.Object

### Nested Class Summary

Nested Classes
`static interface` `MemtableAllocator.DataReclaimer`
`static class` `MemtableAllocator.SubAllocator` Mark the BB as unused, permitting it to be reclaimed

### Field Summary

Fields
`static MemtableAllocator.DataReclaimer` `NO_OP`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`abstract Cell` `clone(Cell cell, CFMetaData cfm, OpOrder.Group writeOp)`
`abstract CounterCell` `clone(CounterCell cell, CFMetaData cfm, OpOrder.Group writeOp)`
`abstract DecoratedKey` `clone(DecoratedKey key, OpOrder.Group opGroup)`
`abstract DeletedCell` `clone(DeletedCell cell, CFMetaData cfm, OpOrder.Group writeOp)`
`abstract ExpiringCell` `clone(ExpiringCell cell, CFMetaData cfm, OpOrder.Group writeOp)`
`boolean` `isLive()`
`MemtableAllocator.SubAllocator` `offHeap()`
`MemtableAllocator.SubAllocator` `onHeap()`
`abstract MemtableAllocator.DataReclaimer` `reclaimer()`
`void` `setDiscarded()` Indicate the memory and resources owned by this allocator are no longer referenced, and can be reclaimed/reused.
`void` `setDiscarding()` Mark this allocator reclaiming; this will permit any outstanding allocations to temporarily overshoot the maximum memory limit so that flushing can begin immediately

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### NO_OP

    public static final MemtableAllocator.DataReclaimer NO_OP

### Method Detail

#### clone

    public abstract Cell clone(Cell cell,
                               CFMetaData cfm,
                               OpOrder.Group writeOp)

#### clone

    public abstract CounterCell clone(CounterCell cell,
                                      CFMetaData cfm,
                                      OpOrder.Group writeOp)

#### clone

    public abstract DeletedCell clone(DeletedCell cell,
                                      CFMetaData cfm,
                                      OpOrder.Group writeOp)

#### clone

    public abstract ExpiringCell clone(ExpiringCell cell,
                                       CFMetaData cfm,
                                       OpOrder.Group writeOp)

#### clone

    public abstract DecoratedKey clone(DecoratedKey key,
                                       OpOrder.Group opGroup)

#### reclaimer

    public abstract MemtableAllocator.DataReclaimer reclaimer()

#### onHeap

    public MemtableAllocator.SubAllocator onHeap()

#### offHeap

    public MemtableAllocator.SubAllocator offHeap()

#### setDiscarding

    public void setDiscarding()

Mark this allocator reclaiming; this will permit any outstanding allocations to temporarily overshoot the maximum memory limit so that flushing can begin immediately

#### setDiscarded

    public void setDiscarded()

Indicate the memory and resources owned by this allocator are no longer referenced, and can be reclaimed/reused.

#### isLive

    public boolean isLive()