[ 
https://issues.apache.org/jira/browse/IGNITE-20138?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Steshin updated IGNITE-20138:
--------------------------------------
    Description: 
We create PageMemoryImpl as:
{code:java}
 PageMemoryImpl pageMem = new PageMemoryImpl(
            wrapMetricsPersistentMemoryProvider(memProvider, regMetrics),
            calculateFragmentSizes(
                regCfg.getName(),
                dsCfg.getConcurrencyLevel(),
                cacheSize,
                chpBufSize
            ),
            cctx,
            pageMgr,
            dsCfg.getPageSize(),
            (fullId, pageBuf, tag) -> {
                regMetrics.onPageWritten();

                // Write page to disk.
                pageMgr.write(fullId.groupId(), fullId.pageId(), pageBuf, tag, 
true);

                getCheckpointer().currentProgress().updateEvictedPages(1);
            },
            trackable,
            this,
            regMetrics,
            regCfg,
            resolveThrottlingPolicy(),
            () -> getCheckpointer().currentProgress()
        );
{code}
Where `getCheckpointer()` and the `CheckpointLockStateChecker stateChecker` 
constructor parameter can be not bound to PageMemory's data region. For 
instance, defragmentation uses own region and own lightweight checkpointer. See 
IGNITE-19904


  was:
We create PageMemoryImpl as:
{code:java}
 PageMemoryImpl pageMem = new PageMemoryImpl(
            wrapMetricsPersistentMemoryProvider(memProvider, regMetrics),
            calculateFragmentSizes(
                regCfg.getName(),
                dsCfg.getConcurrencyLevel(),
                cacheSize,
                chpBufSize
            ),
            cctx,
            pageMgr,
            dsCfg.getPageSize(),
            (fullId, pageBuf, tag) -> {
                regMetrics.onPageWritten();

                // Write page to disk.
                pageMgr.write(fullId.groupId(), fullId.pageId(), pageBuf, tag, 
true);

                getCheckpointer().currentProgress().updateEvictedPages(1);
            },
            trackable,
            this,
            regMetrics,
            regCfg,
            resolveThrottlingPolicy(),
            () -> getCheckpointer().currentProgress()
        );
{code}
Where `getCheckpointer()` and the `CheckpointLockStateChecker stateChecker` 
constructor parameter can be not bound to PageMemory's data region. For 
instance, defragmentation uses own reqion and own checkpointer. See IGNITE-19904



> PageMemory should use actual dataregion's checkpointer.
> -------------------------------------------------------
>
>                 Key: IGNITE-20138
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20138
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Vladimir Steshin
>            Priority: Major
>
> We create PageMemoryImpl as:
> {code:java}
>  PageMemoryImpl pageMem = new PageMemoryImpl(
>             wrapMetricsPersistentMemoryProvider(memProvider, regMetrics),
>             calculateFragmentSizes(
>                 regCfg.getName(),
>                 dsCfg.getConcurrencyLevel(),
>                 cacheSize,
>                 chpBufSize
>             ),
>             cctx,
>             pageMgr,
>             dsCfg.getPageSize(),
>             (fullId, pageBuf, tag) -> {
>                 regMetrics.onPageWritten();
>                 // Write page to disk.
>                 pageMgr.write(fullId.groupId(), fullId.pageId(), pageBuf, 
> tag, true);
>                 getCheckpointer().currentProgress().updateEvictedPages(1);
>             },
>             trackable,
>             this,
>             regMetrics,
>             regCfg,
>             resolveThrottlingPolicy(),
>             () -> getCheckpointer().currentProgress()
>         );
> {code}
> Where `getCheckpointer()` and the `CheckpointLockStateChecker stateChecker` 
> constructor parameter can be not bound to PageMemory's data region. For 
> instance, defragmentation uses own region and own lightweight checkpointer. 
> See IGNITE-19904



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to