blob: 107d248ed6b45b2e46cf9a746d7e261e3baf0388 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Apache.Ignite.Core
{
using System;
/// <summary>
/// Memory usage metrics.
/// </summary>
public interface IDataRegionMetrics
{
/// <summary>
/// Gets the memory policy name.
/// </summary>
string Name { get; }
/// <summary>
/// Gets the count of allocated pages.
/// </summary>
long TotalAllocatedPages { get; }
/// <summary>
/// Gets a total number of pages used for storing the data.
/// </summary>
long TotalUsedPages { get; }
/// <summary>
/// Gets the size of allocated pages in bytes.
/// </summary>
long TotalAllocatedSize { get; }
/// <summary>
/// Gets the allocation rate, in pages per second.
/// </summary>
float AllocationRate { get; }
/// <summary>
/// Gets the eviction rate, in pages per second.
/// </summary>
float EvictionRate { get; }
/// <summary>
/// Gets the percentage of pages fully occupied by entries that are larger than page.
/// </summary>
float LargeEntriesPagesPercentage { get; }
/// <summary>
/// Gets the page fill factor: free space to overall size ratio across all pages.
/// </summary>
float PageFillFactor { get; }
/// <summary>
/// Gets the number of dirty RAM pages.
/// </summary>
long DirtyPages { get; }
/// <summary>
/// Gets the rate (pages per second) at which pages get replaced with other pages from persistent storage.
/// </summary>
float PageReplaceRate { get; }
/// <summary>
/// Gets the average age (in milliseconds) for pages being replaced from persistent storage.
/// </summary>
float PageReplaceAge { get; }
/// <summary>
/// Gets the count of pages loaded to RAM.
/// </summary>
long PhysicalMemoryPages { get; }
/// <summary>
/// Gets the size of pages loaded to RAM in bytes.
/// </summary>
long PhysicalMemorySize { get; }
/// <summary>
/// Gets checkpoint buffer size in pages.
/// Deprecated, always returns 0. Use <see cref="UsedCheckpointBufferPages"/> instead.
/// </summary>
[Obsolete("Deprecated, always returns 0. Use UsedCheckpointBufferPages instead.")]
long CheckpointBufferPages { get; }
/// <summary>
/// Gets checkpoint buffer size in bytes.
/// </summary>
long CheckpointBufferSize { get; }
/// <summary>
/// Gets used checkpoint buffer size in pages.
/// </summary>
long UsedCheckpointBufferPages { get; }
/// <summary>
/// Gets used checkpoint buffer size in bytes.
/// </summary>
long UsedCheckpointBufferSize { get; }
/// <summary>
/// Gets memory page size in bytes.
/// </summary>
int PageSize { get; }
/// <summary>
/// Gets the number of read pages from last restart.
/// </summary>
long PagesRead { get; }
/// <summary>
/// Gets the number of written pages from last restart.
/// </summary>
long PagesWritten { get; }
/// <summary>
/// Gets the number of replaced pages from last restart.
/// </summary>
long PagesReplaced { get; }
/// <summary>
/// Gets total offheap size in bytes.
/// </summary>
long OffHeapSize { get; }
/// <summary>
/// Gets total used offheap size in bytes.
/// </summary>
long OffheapUsedSize { get; }
}
}