[
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 reqion and own 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 bound to other 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 reqion and own checkpointer. See
> IGNITE-19904
--
This message was sent by Atlassian Jira
(v8.20.10#820010)