IGNITE-10639 Improvements in doc for clearly explain things
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9298b2de Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9298b2de Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9298b2de Branch: refs/heads/ignite-10639 Commit: 9298b2dece47cf17ba55f2d6e5d29a864922ea09 Parents: 30dc030 Author: Dmitriy Pavlov <[email protected]> Authored: Wed Dec 19 15:34:25 2018 +0300 Committer: Dmitriy Pavlov <[email protected]> Committed: Wed Dec 19 15:34:25 2018 +0300 ---------------------------------------------------------------------- .../pagemem/PagesWriteSpeedBasedThrottle.java | 4 +++- .../cache/persistence/pagemem/README.md | 21 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/9298b2de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java index 2dd8127..9e4975c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteSpeedBasedThrottle.java @@ -29,7 +29,9 @@ import org.apache.ignite.internal.util.typedef.internal.U; /** * Throttles threads that generate dirty pages during ongoing checkpoint. * Designed to avoid zero dropdowns that can happen if checkpoint buffer is overflowed. - * Uses average checkpoint write speed and moment speed of marking pages as dirty. + * Uses average checkpoint write speed and moment speed of marking pages as dirty.<br> + * + * See also: <a href="https://github.com/apache/ignite/tree/master/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem#speed-based-throttling">Speed-based throttling description</a>. */ public class PagesWriteSpeedBasedThrottle implements PagesWriteThrottlePolicy { /** Maximum dirty pages in region. */ http://git-wip-us.apache.org/repos/asf/ignite/blob/9298b2de/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md index 57e623d..722050c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/README.md @@ -2,11 +2,28 @@ Apache Ignite Native Peristence Page Memory ------------------------------------------- This package contains page memory implementation for case persitence is enabled. -Speed Based Throttling ----------------------- + +Throttling +---------- +Throttling is an intentional slowdown of operation in the grid to equate throughput of the storage and speed of user operations. + +Throttling is implemented at physical level of operations, so it operated not with user entries, but with page memory pages. + For an introduction, please see [wiki PagesWriteThrottling](https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood#IgnitePersistentStore-underthehood-PagesWriteThrottling) +There are two types of throttling implemented in Apache Ignite: +* Checkpoint buffer overflow protection. + +This CP Buffer throttling is enabled by default. It is activated if CP buffer is close to being filled. +In this case, there is an exponential backoff at 2/3 when filling reached. +Since the CP buffer is being cleaned as the checkpoint progresses, this more or less behaves like trotting. + +* the whole region marked dirty protection. +This type of throttling protects region segments from being completely filled by dirty pages when checkpoint progress is far from completion. + +## Speed Based Throttling + If throttling is enabled in User configuration, then Speed based throttling is applied. Speed based throttling is implemented by
