2.10 and 2.13, the same result.

在 2022/9/19 16:54, Alexander Polovtcev 写道:
Which version of Ignite do you use?

On Mon, Sep 19, 2022 at 11:38 AM 38797715 <[email protected]> wrote:

    for example:

    start a node by ignite.sh.

    then:

    CREATE TABLE City (
      ID INT,
      Name VARCHAR,
      CountryCode CHAR(3),
      District VARCHAR,
      Population INT,
      PRIMARY KEY (ID, CountryCode)
    ) WITH "template=partitioned, backups=1, affinityKey=CountryCode,
    CACHE_NAME=City, KEY_TYPE=demo.model.CityKey,
    VALUE_TYPE=demo.model.City";


    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (1,'Kabul','AFG','Kabol',1780000);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (2,'Qandahar','AFG','Qandahar',237500);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (3,'Herat','AFG','Herat',186800);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (4,'Mazar-e-Sharif','AFG','Balkh',127800);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (5,'Amsterdam','NLD','Noord-Holland',731200);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (6,'Rotterdam','NLD','Zuid-Holland',593321);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (7,'Haag','NLD','Zuid-Holland',440900);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (8,'Utrecht','NLD','Utrecht',234323);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (9,'Eindhoven','NLD','Noord-Brabant',201843);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (10,'Tilburg','NLD','Noord-Brabant',193238);
    INSERT INTO City(ID, Name, CountryCode, District, Population)
    VALUES (11,'Groningen','NLD','Groningen',172701);

    SELECT * FROM sys.metrics WHERE name LIKE 'io.dataregion.default%';

    io.dataregion.default.OffHeapSize    104857600
    io.dataregion.default.PhysicalMemoryPages    2066
    io.dataregion.default.EmptyDataPages    0
    io.dataregion.default.UsedCheckpointBufferSize    0
    io.dataregion.default.TotalThrottlingTime    0
    io.dataregion.default.PagesReplaced    0
    io.dataregion.default.EvictionRate    0
    io.dataregion.default.InitialSize    104857600
    io.dataregion.default.DirtyPages    0
    io.dataregion.default.MaxSize    8589934592
    io.dataregion.default.PagesWritten    0
    io.dataregion.default.PagesReplaceRate    0
    io.dataregion.default.PagesRead    0
    io.dataregion.default.PagesFillFactor 0.9997031688690186
    io.dataregion.default.TotalAllocatedPages    2066
    io.dataregion.default.PhysicalMemorySize    8511920
    io.dataregion.default.PagesReplaceAge    0
    io.dataregion.default.AllocationRate    2066
    io.dataregion.default.OffheapUsedSize    8511920
    io.dataregion.default.LargeEntriesPagesCount    0
    io.dataregion.default.TotalAllocatedSize    8511920
    io.dataregion.default.CheckpointBufferSize    0

    TotalUsedSize - (TotalAllocatedSize - PagesFillFactor *
    TotalAllocatedSize)

    = 8511920 - (8511920 - 0.9997031688690186 * 8511920) = 8509392


    delete from city;

    SELECT * FROM sys.metrics WHERE name LIKE 'io.dataregion.default%';

    io.dataregion.default.OffHeapSize    104857600
    io.dataregion.default.PhysicalMemoryPages    2075
    io.dataregion.default.EmptyDataPages    0
    io.dataregion.default.UsedCheckpointBufferSize    0
    io.dataregion.default.TotalThrottlingTime    0
    io.dataregion.default.PagesReplaced    0
    io.dataregion.default.EvictionRate    0
    io.dataregion.default.InitialSize    104857600
    io.dataregion.default.DirtyPages    0
    io.dataregion.default.MaxSize    8589934592
    io.dataregion.default.PagesWritten    0
    io.dataregion.default.PagesReplaceRate    0
    io.dataregion.default.PagesRead    0
    io.dataregion.default.PagesFillFactor    1.0
    io.dataregion.default.TotalAllocatedPages    2075
    io.dataregion.default.PhysicalMemorySize    8549000
    io.dataregion.default.PagesReplaceAge    0
    io.dataregion.default.AllocationRate    9
    io.dataregion.default.OffheapUsedSize    8549000
    io.dataregion.default.LargeEntriesPagesCount    0
    io.dataregion.default.TotalAllocatedSize    8549000
    io.dataregion.default.CheckpointBufferSize    0


    TotalUsedSize - (TotalAllocatedSize - PagesFillFactor *
    TotalAllocatedSize)

    =8549000 - (8549000 - 1.0 * 8549000) = 8549000

    Instead, the value becomes larger?


    在 2022/9/19 15:13, Alexander Polovtcev 写道:
    Sorry, I messed up the metric names a little bit, we should use
    the size metrics, not the page metrics. So the correct formula
    would be: `TotalUsedSize - (TotalAllocatedSize - PagesFillFactor
    * TotalAllocatedSize)`

    On Sun, Sep 18, 2022 at 4:29 PM 38797715 <[email protected]> wrote:

        I've checked TotalUsedPages in ignite.dataRegionMetrics(), it
        is found that the logic of this metric is consistent with
        OffheapUsedSize, that is, the value will not be updated after
        data deletion.

        在 2022/9/18 19:42, Alexander Polovtcev 写道:
        Hello, you can check out "TotalUsedPages" and
        "TotalUsedSize" metrics that can be found in the Data Region
        metrics. However, please keep in mind that this does not
        take page fragmentation into account.

        On Sat, Sep 17, 2022 at 2:35 PM 38797715 <[email protected]>
        wrote:

            Hi team,

            We found that if the delete operation is executed, the
            memory space corresponding to the data will not be
            released, and this space will be reused later.

            Therefore, metrics such as OffheapUsedSize will become
            inaccurate.

            So, how to calculate the exact amount of memory occupied
            by data in a cache or a dataregion?



-- With regards,
        Aleksandr Polovtcev



-- With regards,
    Aleksandr Polovtcev



--
With regards,
Aleksandr Polovtcev

Reply via email to