Hello!
I think it's a sensible explanation.
Regards,
--
Ilya Kasnacheev
ср, 6 янв. 2021 г. в 14:32, Raymond Wilson :
> I checked our code that creates the primary data region, and it does set
> the minimum and maximum to 4Gb, meaning there will be 1,000,000 pages in
> that region.
>
> The sec
I checked our code that creates the primary data region, and it does set
the minimum and maximum to 4Gb, meaning there will be 1,000,000 pages in
that region.
The secondary data region is much smaller, and is set to min/max = 128 Mb
of memory.
The checkpoints with the "too many dirty pages" reaso
Hello!
I guess it's pool.pages() * 3L / 4
Since, counter intuitively, the default ThrottlingPolicy is not
ThrottlingPolicy.DISABLED. It's CHECKPOINT_BUFFER_ONLY.
Regards,
--
Ilya Kasnacheev
чт, 31 дек. 2020 г. в 04:33, Raymond Wilson :
> Regards this section of code:
>
> maxDirty
Regards this section of code:
maxDirtyPages = throttlingPlc != ThrottlingPolicy.DISABLED
? pool.pages() * 3L / 4
: Math.min(pool.pages() * 2L / 3, cpPoolPages);
I think the correct ratio will be 2/3 of pages as we do not have a
throttling policy defined
Hi Zhenya,
The matching checkpoint finished log is this:
2020-12-15 19:07:39,253 [106] INF [MutableCacheComputeServer] Checkpoint
finished [cpId=e2c31b43-44df-43f1-b162-6b6cefa24e28, pages=33421,
markPos=FileWALPointer [idx=6339, fileOff=243287334, len=196573],
walSegmentsCleared=0, walSegmentsCo
All write operations will be blocked for this timeout :
checkpointLockHoldTime=32ms (Write Lock holding) If you observe huge amount of
such messages : reason=' too many dirty pages ' may be you need to store
some data in not persisted regions for example or reduce indexes (if you use
them
Correct code is running from here:
if (checkpointReadWriteLock.getReadHoldCount() > 1 ||
safeToUpdatePageMemories() || checkpointer.runner() == null)
break;
else {
CheckpointProgress pages = checkpointer.scheduleCheckpoint(0, "too many
dirty pages");
and near you can see that :
maxDirty