You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ignite TC Bot (Jira)" <ji...@apache.org> on 2022/04/04 06:40:00 UTC

[jira] [Commented] (IGNITE-16582) Improve behavior of speed-based throttling when dirty pages ratio is low

    [ https://issues.apache.org/jira/browse/IGNITE-16582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17516637#comment-17516637 ] 

Ignite TC Bot commented on IGNITE-16582:
----------------------------------------

{panel:title=Branch: [pull/9924/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/9924/head] Base: [master] : New Tests (5)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}PDS 5{color} [[tests 1|https://ci.ignite.apache.org/viewLog.html?buildId=6497936]]
* {color:#013220}IgnitePdsTestSuite5: SpeedBasedThrottleIntegrationTest.speedBasedThrottleShouldBeActivatedWhenNeeded - PASSED{color}

{color:#00008b}PDS (Unit Tests){color} [[tests 4|https://ci.ignite.apache.org/viewLog.html?buildId=6497893]]
* {color:#013220}IgnitePdsUnitTestSuite: IgniteThrottlingUnitTest.shouldNotThrottleWhenWritingFasterThanCPSpeedButThereAreManyCleanPages - PASSED{color}
* {color:#013220}IgnitePdsUnitTestSuite: IgniteThrottlingUnitTest.doNotThrottleWhenDirtyPagesRatioIsTooHigh - PASSED{color}
* {color:#013220}IgnitePdsUnitTestSuite: IgniteThrottlingUnitTest.shouldThrottleWhenWritingTooFast - PASSED{color}
* {color:#013220}IgnitePdsUnitTestSuite: IgniteThrottlingUnitTest.shouldNotThrottleWhenWritingSlowly - PASSED{color}

{panel}
[TeamCity *--&gt; Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=6497948&amp;buildTypeId=IgniteTests24Java8_RunAll]

> Improve behavior of speed-based throttling when dirty pages ratio is low
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-16582
>                 URL: https://issues.apache.org/jira/browse/IGNITE-16582
>             Project: Ignite
>          Issue Type: Improvement
>          Components: persistence
>    Affects Versions: 2.12
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>             Fix For: 2.14
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> There is a log:
> {{Throttling is applied to page modifications [}}
> percentOfPartTime=0.59, 
> markDirty=7424 pages/sec, 
> checkpointWrite=6268 pages/sec, 
> estIdealMarkDirty=0 pages/sec, 
> curDirty=0.00, 
> maxDirty=0.24, 
> avgParkTime=79770 ns, 
> {{pages: (total=67085, evicted=0, written=40916, synced=0, cpBufUsed=3, cpBufTotal=518215)]}}
> Here, it can be seen that, although there are plenty of non-dirty pages, throttling is applied. This happens because our speed-based throttling has 2 algorithms for protecting non-dirty pages from exhaustion:
>  # A more complex one that computes max allowable dirty ratio and ideal marking speed and throttles when both dirty ratio and current marking speed surpass these values
>  # A simpler one that throttles if the current marking speed is higher than the average checkpointing speed
> In the shown example the first algorithm does not throttle, but the second one does.
> It looks like the throttling is enabled too early.
> One way to solve this problem is to just disable the second algorithm as the first seems to be more adequate (but this needs careful consideration of all possible cases).
> Another way is to consider averaged marking speed instead of (or in addition to) the current marking speed when deciding whether to throttle or not.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)