LE_STATUS_INIT(LE_APPLY_GC_BYTES_IN,LEAF_ENTRY_APPLY_GC_BYTES_IN,PARCOUNT,"size of leafentries before garbage collection (during message application)");
LE_STATUS_INIT(LE_APPLY_GC_BYTES_OUT,LEAF_ENTRY_APPLY_GC_BYTES_OUT,PARCOUNT,"size of leafentries after garbage collection (during message application)");
LE_STATUS_INIT(LE_NORMAL_GC_BYTES_IN,LEAF_ENTRY_NORMAL_GC_BYTES_IN,PARCOUNT,"size of leafentries before garbage collection (outside message application)");
LE_STATUS_INIT(LE_NORMAL_GC_BYTES_OUT,LEAF_ENTRY_NORMAL_GC_BYTES_OUT,PARCOUNT,"size of leafentries after garbage collection (outside message application)");
CT_STATUS_INIT(CT_POOL_CLIENT_NUM_THREADS,CACHETABLE_POOL_CLIENT_NUM_THREADS,UINT64,"client pool: number of threads in pool");
CT_STATUS_INIT(CT_POOL_CLIENT_NUM_THREADS_ACTIVE,CACHETABLE_POOL_CLIENT_NUM_THREADS_ACTIVE,UINT64,"client pool: number of currently active threads in pool");
CT_STATUS_INIT(CT_POOL_CLIENT_QUEUE_SIZE,CACHETABLE_POOL_CLIENT_QUEUE_SIZE,UINT64,"client pool: number of currently queued work items");
CT_STATUS_INIT(CT_POOL_CLIENT_MAX_QUEUE_SIZE,CACHETABLE_POOL_CLIENT_MAX_QUEUE_SIZE,UINT64,"client pool: largest number of queued work items");
CT_STATUS_INIT(CT_POOL_CLIENT_TOTAL_ITEMS_PROCESSED,CACHETABLE_POOL_CLIENT_TOTAL_ITEMS_PROCESSED,UINT64,"client pool: total number of work items processed");
CT_STATUS_INIT(CT_POOL_CLIENT_TOTAL_EXECUTION_TIME,CACHETABLE_POOL_CLIENT_TOTAL_EXECUTION_TIME,UINT64,"client pool: total execution time of processing work items");
CT_STATUS_INIT(CT_POOL_CACHETABLE_NUM_THREADS,CACHETABLE_POOL_CACHETABLE_NUM_THREADS,UINT64,"cachetable pool: number of threads in pool");
CT_STATUS_INIT(CT_POOL_CACHETABLE_NUM_THREADS_ACTIVE,CACHETABLE_POOL_CACHETABLE_NUM_THREADS_ACTIVE,UINT64,"cachetable pool: number of currently active threads in pool");
CT_STATUS_INIT(CT_POOL_CACHETABLE_QUEUE_SIZE,CACHETABLE_POOL_CACHETABLE_QUEUE_SIZE,UINT64,"cachetable pool: number of currently queued work items");
CT_STATUS_INIT(CT_POOL_CACHETABLE_MAX_QUEUE_SIZE,CACHETABLE_POOL_CACHETABLE_MAX_QUEUE_SIZE,UINT64,"cachetable pool: largest number of queued work items");
CT_STATUS_INIT(CT_POOL_CACHETABLE_TOTAL_ITEMS_PROCESSED,CACHETABLE_POOL_CACHETABLE_TOTAL_ITEMS_PROCESSED,UINT64,"cachetable pool: total number of work items processed");
CT_STATUS_INIT(CT_POOL_CACHETABLE_TOTAL_EXECUTION_TIME,CACHETABLE_POOL_CACHETABLE_TOTAL_EXECUTION_TIME,UINT64,"cachetable pool: total execution time of processing work items");
CT_STATUS_INIT(CT_POOL_CHECKPOINT_NUM_THREADS,CACHETABLE_POOL_CHECKPOINT_NUM_THREADS,UINT64,"checkpoint pool: number of threads in pool");
CT_STATUS_INIT(CT_POOL_CHECKPOINT_NUM_THREADS_ACTIVE,CACHETABLE_POOL_CHECKPOINT_NUM_THREADS_ACTIVE,UINT64,"checkpoint pool: number of currently active threads in pool");
CT_STATUS_INIT(CT_POOL_CHECKPOINT_QUEUE_SIZE,CACHETABLE_POOL_CHECKPOINT_QUEUE_SIZE,UINT64,"checkpoint pool: number of currently queued work items");
CT_STATUS_INIT(CT_POOL_CHECKPOINT_MAX_QUEUE_SIZE,CACHETABLE_POOL_CHECKPOINT_MAX_QUEUE_SIZE,UINT64,"checkpoint pool: largest number of queued work items");
CT_STATUS_INIT(CT_POOL_CHECKPOINT_TOTAL_ITEMS_PROCESSED,CACHETABLE_POOL_CHECKPOINT_TOTAL_ITEMS_PROCESSED,UINT64,"checkpoint pool: total number of work items processed");
CT_STATUS_INIT(CT_POOL_CHECKPOINT_TOTAL_EXECUTION_TIME,CACHETABLE_POOL_CHECKPOINT_TOTAL_EXECUTION_TIME,UINT64,"checkpoint pool: total execution time of processing work items");
FT_STATUS_INIT(FT_MSN_DISCARDS,MESSAGES_IGNORED_BY_LEAF_DUE_TO_MSN,PARCOUNT,"messages ignored by leaf due to msn");
FT_STATUS_INIT(FT_TOTAL_RETRIES,TOTAL_SEARCH_RETRIES,PARCOUNT,"total search retries due to TRY_AGAIN");
FT_STATUS_INIT(FT_SEARCH_TRIES_GT_HEIGHT,SEARCH_TRIES_GT_HEIGHT,PARCOUNT,"searches requiring more tries than the height of the tree");
FT_STATUS_INIT(FT_SEARCH_TRIES_GT_HEIGHTPLUS3,SEARCH_TRIES_GT_HEIGHTPLUS3,PARCOUNT,"searches requiring more tries than the height of the tree plus three");
FT_STATUS_INIT(FT_NUM_PIVOTS_FETCHED_QUERY,PIVOTS_FETCHED_FOR_QUERY,PARCOUNT,"pivots fetched for query");
FT_STATUS_INIT(FT_BYTES_PIVOTS_FETCHED_QUERY,PIVOTS_FETCHED_FOR_QUERY_BYTES,PARCOUNT,"pivots fetched for query (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_PIVOTS_FETCHED_QUERY,PIVOTS_FETCHED_FOR_QUERY_SECONDS,TOKUTIME,"pivots fetched for query (seconds)");
FT_STATUS_INIT(FT_NUM_PIVOTS_FETCHED_PREFETCH,PIVOTS_FETCHED_FOR_PREFETCH,PARCOUNT,"pivots fetched for prefetch");
FT_STATUS_INIT(FT_BYTES_PIVOTS_FETCHED_PREFETCH,PIVOTS_FETCHED_FOR_PREFETCH_BYTES,PARCOUNT,"pivots fetched for prefetch (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_PIVOTS_FETCHED_PREFETCH,PIVOTS_FETCHED_FOR_PREFETCH_SECONDS,TOKUTIME,"pivots fetched for prefetch (seconds)");
FT_STATUS_INIT(FT_NUM_PIVOTS_FETCHED_WRITE,PIVOTS_FETCHED_FOR_WRITE,PARCOUNT,"pivots fetched for write");
FT_STATUS_INIT(FT_BYTES_PIVOTS_FETCHED_WRITE,PIVOTS_FETCHED_FOR_WRITE_BYTES,PARCOUNT,"pivots fetched for write (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_PIVOTS_FETCHED_WRITE,PIVOTS_FETCHED_FOR_WRITE_SECONDS,TOKUTIME,"pivots fetched for write (seconds)");
// Basements: For queries, aggressive fetching in prelocked range, prefetching, or writing.
FT_STATUS_INIT(FT_NUM_BASEMENTS_FETCHED_NORMAL,BASEMENTS_FETCHED_TARGET_QUERY,PARCOUNT,"basements fetched as a target of a query");
FT_STATUS_INIT(FT_BYTES_BASEMENTS_FETCHED_NORMAL,BASEMENTS_FETCHED_TARGET_QUERY_BYTES,PARCOUNT,"basements fetched as a target of a query (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_BASEMENTS_FETCHED_NORMAL,BASEMENTS_FETCHED_TARGET_QUERY_SECONDS,TOKUTIME,"basements fetched as a target of a query (seconds)");
FT_STATUS_INIT(FT_NUM_BASEMENTS_FETCHED_AGGRESSIVE,BASEMENTS_FETCHED_PRELOCKED_RANGE,PARCOUNT,"basements fetched for prelocked range");
FT_STATUS_INIT(FT_BYTES_BASEMENTS_FETCHED_AGGRESSIVE,BASEMENTS_FETCHED_PRELOCKED_RANGE_BYTES,PARCOUNT,"basements fetched for prelocked range (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_BASEMENTS_FETCHED_AGGRESSIVE,BASEMENTS_FETCHED_PRELOCKED_RANGE_SECONDS,TOKUTIME,"basements fetched for prelocked range (seconds)");
FT_STATUS_INIT(FT_NUM_BASEMENTS_FETCHED_PREFETCH,BASEMENTS_FETCHED_PREFETCH,PARCOUNT,"basements fetched for prefetch");
FT_STATUS_INIT(FT_BYTES_BASEMENTS_FETCHED_PREFETCH,BASEMENTS_FETCHED_PREFETCH_BYTES,PARCOUNT,"basements fetched for prefetch (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_BASEMENTS_FETCHED_PREFETCH,BASEMENTS_FETCHED_PREFETCH_SECONDS,TOKUTIME,"basements fetched for prefetch (seconds)");
FT_STATUS_INIT(FT_NUM_BASEMENTS_FETCHED_WRITE,BASEMENTS_FETCHED_FOR_WRITE,PARCOUNT,"basements fetched for write");
FT_STATUS_INIT(FT_BYTES_BASEMENTS_FETCHED_WRITE,BASEMENTS_FETCHED_FOR_WRITE_BYTES,PARCOUNT,"basements fetched for write (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_BASEMENTS_FETCHED_WRITE,BASEMENTS_FETCHED_FOR_WRITE_SECONDS,TOKUTIME,"basements fetched for write (seconds)");
// Buffers: For queries, aggressive fetching in prelocked range, prefetching, or writing.
FT_STATUS_INIT(FT_NUM_MSG_BUFFER_FETCHED_NORMAL,BUFFERS_FETCHED_TARGET_QUERY,PARCOUNT,"buffers fetched as a target of a query");
FT_STATUS_INIT(FT_BYTES_MSG_BUFFER_FETCHED_NORMAL,BUFFERS_FETCHED_TARGET_QUERY_BYTES,PARCOUNT,"buffers fetched as a target of a query (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_MSG_BUFFER_FETCHED_NORMAL,BUFFERS_FETCHED_TARGET_QUERY_SECONDS,TOKUTIME,"buffers fetched as a target of a query (seconds)");
FT_STATUS_INIT(FT_NUM_MSG_BUFFER_FETCHED_AGGRESSIVE,BUFFERS_FETCHED_PRELOCKED_RANGE,PARCOUNT,"buffers fetched for prelocked range");
FT_STATUS_INIT(FT_BYTES_MSG_BUFFER_FETCHED_AGGRESSIVE,BUFFERS_FETCHED_PRELOCKED_RANGE_BYTES,PARCOUNT,"buffers fetched for prelocked range (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_MSG_BUFFER_FETCHED_AGGRESSIVE,BUFFERS_FETCHED_PRELOCKED_RANGE_SECONDS,TOKUTIME,"buffers fetched for prelocked range (seconds)");
FT_STATUS_INIT(FT_NUM_MSG_BUFFER_FETCHED_PREFETCH,BUFFERS_FETCHED_PREFETCH,PARCOUNT,"buffers fetched for prefetch");
FT_STATUS_INIT(FT_BYTES_MSG_BUFFER_FETCHED_PREFETCH,BUFFERS_FETCHED_PREFETCH_BYTES,PARCOUNT,"buffers fetched for prefetch (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_MSG_BUFFER_FETCHED_PREFETCH,BUFFERS_FETCHED_PREFETCH_SECONDS,TOKUTIME,"buffers fetched for prefetch (seconds)");
FT_STATUS_INIT(FT_NUM_MSG_BUFFER_FETCHED_WRITE,BUFFERS_FETCHED_FOR_WRITE,PARCOUNT,"buffers fetched for write");
FT_STATUS_INIT(FT_BYTES_MSG_BUFFER_FETCHED_WRITE,BUFFERS_FETCHED_FOR_WRITE_BYTES,PARCOUNT,"buffers fetched for write (bytes)");
FT_STATUS_INIT(FT_TOKUTIME_MSG_BUFFER_FETCHED_WRITE,BUFFERS_FETCHED_FOR_WRITE_SECONDS,TOKUTIME,"buffers fetched for write (seconds)");
// Disk write statistics.
//
// Leaf/Nonleaf: Not for checkpoint
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF,LEAF_NODES_FLUSHED_NOT_CHECKPOINT,PARCOUNT,"leaf nodes flushed to disk (not for checkpoint)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_BYTES,LEAF_NODES_FLUSHED_NOT_CHECKPOINT_BYTES,PARCOUNT,"leaf nodes flushed to disk (not for checkpoint) (bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_UNCOMPRESSED_BYTES,LEAF_NODES_FLUSHED_NOT_CHECKPOINT_UNCOMPRESSED_BYTES,PARCOUNT,"leaf nodes flushed to disk (not for checkpoint) (uncompressed bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_TOKUTIME,LEAF_NODES_FLUSHED_NOT_CHECKPOINT_SECONDS,TOKUTIME,"leaf nodes flushed to disk (not for checkpoint) (seconds)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF,NONLEAF_NODES_FLUSHED_TO_DISK_NOT_CHECKPOINT,PARCOUNT,"nonleaf nodes flushed to disk (not for checkpoint)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_BYTES,NONLEAF_NODES_FLUSHED_TO_DISK_NOT_CHECKPOINT_BYTES,PARCOUNT,"nonleaf nodes flushed to disk (not for checkpoint) (bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_UNCOMPRESSED_BYTES,NONLEAF_NODES_FLUSHED_TO_DISK_NOT_CHECKPOINT_UNCOMPRESSED_BYTES,PARCOUNT,"nonleaf nodes flushed to disk (not for checkpoint) (uncompressed bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_TOKUTIME,NONLEAF_NODES_FLUSHED_TO_DISK_NOT_CHECKPOINT_SECONDS,TOKUTIME,"nonleaf nodes flushed to disk (not for checkpoint) (seconds)");
// Leaf/Nonleaf: For checkpoint
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_FOR_CHECKPOINT,LEAF_NODES_FLUSHED_CHECKPOINT,PARCOUNT,"leaf nodes flushed to disk (for checkpoint)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_BYTES_FOR_CHECKPOINT,LEAF_NODES_FLUSHED_CHECKPOINT_BYTES,PARCOUNT,"leaf nodes flushed to disk (for checkpoint) (bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_UNCOMPRESSED_BYTES_FOR_CHECKPOINT,LEAF_NODES_FLUSHED_CHECKPOINT_UNCOMPRESSED_BYTES,PARCOUNT,"leaf nodes flushed to disk (for checkpoint) (uncompressed bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_TOKUTIME_FOR_CHECKPOINT,LEAF_NODES_FLUSHED_CHECKPOINT_SECONDS,TOKUTIME,"leaf nodes flushed to disk (for checkpoint) (seconds)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_FOR_CHECKPOINT,NONLEAF_NODES_FLUSHED_TO_DISK_CHECKPOINT,PARCOUNT,"nonleaf nodes flushed to disk (for checkpoint)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_BYTES_FOR_CHECKPOINT,NONLEAF_NODES_FLUSHED_TO_DISK_CHECKPOINT_BYTES,PARCOUNT,"nonleaf nodes flushed to disk (for checkpoint) (bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_UNCOMPRESSED_BYTES_FOR_CHECKPOINT,NONLEAF_NODES_FLUSHED_TO_DISK_CHECKPOINT_UNCOMPRESSED_BYTES,PARCOUNT,"nonleaf nodes flushed to disk (for checkpoint) (uncompressed bytes)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_TOKUTIME_FOR_CHECKPOINT,NONLEAF_NODES_FLUSHED_TO_DISK_CHECKPOINT_SECONDS,TOKUTIME,"nonleaf nodes flushed to disk (for checkpoint) (seconds)");
FT_STATUS_INIT(FT_DISK_FLUSH_LEAF_COMPRESSION_RATIO,LEAF_NODE_COMPRESSION_RATIO,DOUBLE,"uncompressed / compressed bytes written (leaf)");
FT_STATUS_INIT(FT_DISK_FLUSH_NONLEAF_COMPRESSION_RATIO,NONLEAF_NODE_COMPRESSION_RATIO,DOUBLE,"uncompressed / compressed bytes written (nonleaf)");
FT_STATUS_INIT(FT_DISK_FLUSH_OVERALL_COMPRESSION_RATIO,OVERALL_NODE_COMPRESSION_RATIO,DOUBLE,"uncompressed / compressed bytes written (overall)");
// CPU time statistics for [de]serialization and [de]compression.
FT_STATUS_INIT(FT_LEAF_COMPRESS_TOKUTIME,LEAF_COMPRESSION_TO_MEMORY_SECONDS,TOKUTIME,"leaf compression to memory (seconds)");
FT_STATUS_INIT(FT_LEAF_SERIALIZE_TOKUTIME,LEAF_SERIALIZATION_TO_MEMORY_SECONDS,TOKUTIME,"leaf serialization to memory (seconds)");
FT_STATUS_INIT(FT_LEAF_DECOMPRESS_TOKUTIME,LEAF_DECOMPRESSION_TO_MEMORY_SECONDS,TOKUTIME,"leaf decompression to memory (seconds)");
FT_STATUS_INIT(FT_LEAF_DESERIALIZE_TOKUTIME,LEAF_DESERIALIZATION_TO_MEMORY_SECONDS,TOKUTIME,"leaf deserialization to memory (seconds)");
FT_STATUS_INIT(FT_NONLEAF_COMPRESS_TOKUTIME,NONLEAF_COMPRESSION_TO_MEMORY_SECONDS,TOKUTIME,"nonleaf compression to memory (seconds)");
FT_STATUS_INIT(FT_NONLEAF_SERIALIZE_TOKUTIME,NONLEAF_SERIALIZATION_TO_MEMORY_SECONDS,TOKUTIME,"nonleaf serialization to memory (seconds)");
FT_STATUS_INIT(FT_NONLEAF_DECOMPRESS_TOKUTIME,NONLEAF_DECOMPRESSION_TO_MEMORY_SECONDS,TOKUTIME,"nonleaf decompression to memory (seconds)");
FT_STATUS_INIT(FT_NONLEAF_DESERIALIZE_TOKUTIME,NONLEAF_DESERIALIZATION_TO_MEMORY_SECONDS,TOKUTIME,"nonleaf deserialization to memory (seconds)");
FT_STATUS_INIT(FT_PRO_NUM_INJECT_DEPTH_0,PROMOTION_INJECTIONS_AT_DEPTH_0,PARCOUNT,"promotion: injections at depth 0");
FT_STATUS_INIT(FT_PRO_NUM_INJECT_DEPTH_1,PROMOTION_INJECTIONS_AT_DEPTH_1,PARCOUNT,"promotion: injections at depth 1");
FT_STATUS_INIT(FT_PRO_NUM_INJECT_DEPTH_2,PROMOTION_INJECTIONS_AT_DEPTH_2,PARCOUNT,"promotion: injections at depth 2");
FT_STATUS_INIT(FT_PRO_NUM_INJECT_DEPTH_3,PROMOTION_INJECTIONS_AT_DEPTH_3,PARCOUNT,"promotion: injections at depth 3");
FT_STATUS_INIT(FT_PRO_NUM_INJECT_DEPTH_GT3,PROMOTION_INJECTIONS_LOWER_THAN_DEPTH_3,PARCOUNT,"promotion: injections lower than depth 3");
FT_STATUS_INIT(FT_PRO_NUM_STOP_NONEMPTY_BUF,PROMOTION_STOPPED_NONEMPTY_BUFFER,PARCOUNT,"promotion: stopped because of a nonempty buffer");
FT_STATUS_INIT(FT_PRO_NUM_STOP_H1,PROMOTION_STOPPED_AT_HEIGHT_1,PARCOUNT,"promotion: stopped at height 1");
FT_STATUS_INIT(FT_PRO_NUM_STOP_LOCK_CHILD,PROMOTION_STOPPED_CHILD_LOCKED_OR_NOT_IN_MEMORY,PARCOUNT,"promotion: stopped because the child was locked or not at all in memory");
FT_STATUS_INIT(FT_PRO_NUM_STOP_CHILD_INMEM,PROMOTION_STOPPED_CHILD_NOT_FULLY_IN_MEMORY,PARCOUNT,"promotion: stopped because the child was not fully in memory");
FT_STATUS_INIT(FT_PRO_NUM_DIDNT_WANT_PROMOTE,PROMOTION_STOPPED_AFTER_LOCKING_CHILD,PARCOUNT,"promotion: stopped anyway, after locking the child");
FT_STATUS_INIT(FT_BASEMENT_DESERIALIZE_FIXED_KEYSIZE,BASEMENT_DESERIALIZATION_FIXED_KEY,PARCOUNT,"basement nodes deserialized with fixed-keysize");
FT_STATUS_INIT(FT_BASEMENT_DESERIALIZE_VARIABLE_KEYSIZE,BASEMENT_DESERIALIZATION_VARIABLE_KEY,PARCOUNT,"basement nodes deserialized with variable-keysize");
FT_STATUS_INIT(FT_PRO_RIGHTMOST_LEAF_SHORTCUT_SUCCESS,PRO_RIGHTMOST_LEAF_SHORTCUT_SUCCESS,PARCOUNT,"promotion: succeeded in using the rightmost leaf shortcut");
FT_STATUS_INIT(FT_PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_POS,PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_POS,PARCOUNT,"promotion: tried the rightmost leaf shorcut but failed (out-of-bounds)");
FT_STATUS_INIT(FT_PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_REACTIVE,RIGHTMOST_LEAF_SHORTCUT_FAIL_REACTIVE,PARCOUNT,"promotion: tried the rightmost leaf shorcut but failed (child reactive)");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_TOTAL_NODES,FLUSHER_CLEANER_TOTAL_NODES,UINT64,"total nodes potentially flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_H1_NODES,FLUSHER_CLEANER_H1_NODES,UINT64,"height-one nodes flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_HGT1_NODES,FLUSHER_CLEANER_HGT1_NODES,UINT64,"height-greater-than-one nodes flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_EMPTY_NODES,FLUSHER_CLEANER_EMPTY_NODES,UINT64,"nodes cleaned which had empty buffers");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_NODES_DIRTIED,FLUSHER_CLEANER_NODES_DIRTIED,UINT64,"nodes dirtied by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_MAX_BUFFER_SIZE,FLUSHER_CLEANER_MAX_BUFFER_SIZE,UINT64,"max bytes in a buffer flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_MIN_BUFFER_SIZE,FLUSHER_CLEANER_MIN_BUFFER_SIZE,UINT64,"min bytes in a buffer flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_TOTAL_BUFFER_SIZE,FLUSHER_CLEANER_TOTAL_BUFFER_SIZE,UINT64,"total bytes in buffers flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_MAX_BUFFER_WORKDONE,FLUSHER_CLEANER_MAX_BUFFER_WORKDONE,UINT64,"max workdone in a buffer flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_MIN_BUFFER_WORKDONE,FLUSHER_CLEANER_MIN_BUFFER_WORKDONE,UINT64,"min workdone in a buffer flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_TOTAL_BUFFER_WORKDONE,FLUSHER_CLEANER_TOTAL_BUFFER_WORKDONE,UINT64,"total workdone in buffers flushed by cleaner thread");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_NUM_LEAF_MERGES_STARTED,FLUSHER_CLEANER_NUM_LEAF_MERGES_STARTED,UINT64,"times cleaner thread tries to merge a leaf");
FL_STATUS_INIT(FT_FLUSHER_CLEANER_NUM_LEAF_MERGES_RUNNING,FLUSHER_CLEANER_NUM_LEAF_MERGES_RUNNING,UINT64,"cleaner thread leaf merges in progress");