Maintains stats on the RWStore allocations, useful for tuning Allocator
sizes and tracking store efficiency.
It can also track reallocation patterns that are lost in static snapshots
of current usage.
Stats are retained on external requests and also on internal allocator
totalSlots represents the total reserved slots in all the AllocationBlocks
for the associated FixedAllocators.
slotAllocations is the total of all allocations made
slotDeletes is the total of all slot deletions
Therefore the total of currently allocated slots is
slotAllocations - slotDeletes
sizeAllocations is the total in bytes of the actual data stored in the
sizeDeletes is the total in bytes of the actual data that has been deleted
Therefore the size of the total in bytes stored in currently allocated slots is
sizeAllocations - sizeDeletes
Collected statistics are against each Allocation Block size:
AllocatorSizeThe #of bytes in the allocated slots issued by this allocator.
AllocatorCountThe #of fixed allocators for that slot size.
SlotsAllocatedCumulative allocation of slots to date in this slot size (regardless of the transaction outcome).
%SlotsAllocatedSlotsAllocated/(Sum of SlotsAllocated across all slot sizes).
SlotsRecycledCumulative recycled slots to date in this slot size (regardless of the transaction outcome).
SlotsChurnHow frequently slots of this size are re-allocated (SlotsAllocated/SlotsReserved).
SlotsInUseSlotsAllocated - SlotsRecycled (net slots in use for this slot size).
%SlotsInUseSlotsInUse / (total SlotsInUse across all slots sizes).
MeanAllocation((Total application bytes used across all allocations for this slot size) / SlotsAllocated).
SlotsReservedThe #of slots in this slot size which have had storage reserved for them.
%SlotsUnusedThe percentage of slots of this size which are not in use (1-(SlotsInUse/SlotsReserved)).
BytesReservedThe space reserved on the backing file for those allocation slots (AllocatorSlots * SlotsReserved).
UsedStoreThe #of bytes in the allocated slots.
%SlotWasteHow well the application data fits in the slots (BytesAppData/(SlotsInUse*AllocatorSize)).
%AppDataHow much of your data is stored by each allocator (BytesAppData/Sum(BytesAppData)).
%StoreFileHow much of the backing file is reserved for each allocator (BytesReserved/Sum(BytesReserved)).
%StoreWasteHow much of the total waste on the store is waste for this allocator size ((BytesReserved-BytesAppData)/(Sum(BytesReserved)-Sum(BytesAppData))).