Skip to content

IGNITE-28671 Describe healthy cluster behavior in general tips guide#13130

Open
w3ll1ngt wants to merge 11 commits into
apache:masterfrom
w3ll1ngt:ignite-28671
Open

IGNITE-28671 Describe healthy cluster behavior in general tips guide#13130
w3ll1ngt wants to merge 11 commits into
apache:masterfrom
w3ll1ngt:ignite-28671

Conversation

@w3ll1ngt

@w3ll1ngt w3ll1ngt commented May 13, 2026

Copy link
Copy Markdown
Contributor

Thank you for submitting the pull request to the Apache Ignite.

In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:

The Contribution Checklist

  • There is a single JIRA ticket related to the pull request.
  • The web-link to the pull request is attached to the JIRA ticket.
  • The JIRA ticket has the Patch Available state.
  • The pull request body describes changes that have been made.
    The description explains WHAT and WHY was made instead of HOW.
  • The pull request title is treated as the final commit message.
    The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
  • A reviewer has been mentioned through the JIRA comments
    (see the Maintainers list)
  • The pull request has been checked by the Teamcity Bot and
    the green visa attached to the JIRA ticket (see tab PR Check at TC.Bot - Instance 1 or TC.Bot - Instance 2)

Notes

If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com #ignite channel.

Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
@sonarqubecloud

Copy link
Copy Markdown

Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the general performance tips documentation to include guidance on assessing Apache Ignite cluster health, and adjusts the page title wording to “General Performance Tips”.

Changes:

  • Rename the document title from “Generic Performance Tips” to “General Performance Tips”.
  • Add a new “How to assess cluster health” section describing practical signals and checks (cluster state/baseline, idle_verify, rebalance convergence, queues, transactions/queries, persistence checkpoint pressure, and logs).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
w3ll1ngt and others added 2 commits July 17, 2026 15:25
copilot' grammar changes

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@w3ll1ngt
w3ll1ngt requested a review from zstan July 17, 2026 13:07
* The cluster is in the intended link:monitoring-metrics/cluster-states[state] and serves only the operations allowed by that state.
* Baseline topology, when it is used or managed manually, matches the expected data-bearing server nodes.
* Data remains consistent: link:tools/control-script#verifying-partition-checksums[`idle_verify`] reports no partition conflicts when the cluster is idle.
* Expected nodes are present, and no node segmentation or repeated membership churn is reported.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"repeated membership churn" - i don`t listen this term before, what does it mean ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

churn-change describes sitations that happens in the set of participating nodes participating nodes due to joins, graceful leaves, and failures. For example, a high churn rate can increase costs or decrease service quality. src:

as for this article, i'll replace it with more common wording

* Data remains consistent: link:tools/control-script#verifying-partition-checksums[`idle_verify`] reports no partition conflicts when the cluster is idle.
* Expected nodes are present, and no node segmentation or repeated membership churn is reported.
* link:configuring-caches/partition-loss-policy[Lost partitions] are absent.
* Long-running transactions, Partition Map Exchange (PME), rebalancing, checkpointing, and executor queues converge instead of accumulating.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All this terms need to be covered\documentally extended somehow ? PME - what does it mean ? Long-running transactions - how it can be detected ? and so on ...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there will be detailed explanation of this metrics later on in arictle, but here is the first use of it in text. so i've linked it to their doc origins

Comment on lines +67 to +69
Use several signals together.
A simple client connection or SQL liveness check can prove only that a particular client or query path is reachable; it does not check user partitions, backup consistency, baseline membership, or all server nodes.
Similarly, `control.(sh|bat) --cache idle_verify` is an important consistency check, but it is still not a complete health check.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I misunderstand this section at all ( It gives nothing only confusing a reader, need to be refactored or removed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

last line removed. finally

Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc Outdated
Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc

[source,text]
----
LastCheckpointTotalPagesNumber

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plz also show "ignite.log" output for checkpoint operations, how it looks

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment thread docs/_docs/perf-and-troubleshooting/general-perf-tips.adoc
* repeated striped-pool starvation warnings;
* unexpected node restarts.

Ignite reports critical failures to the configured failure handler; depending on the handler, the result can be node invalidation, failover handling, node stop, or JVM termination.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh ! seems we need to mention failure handler and it`s configurations policies here ? wdyt ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done with crosslinking

Monitor membership from all expected monitoring points, and use logs and failure handling to detect segmentation and discovery failures.

CDC is a feature-specific check, not part of a universal cluster health definition.
If CDC is enabled, monitor `ignite-cdc.log`, WAL gaps, and consumption lag.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

theme is not covered at all )) may be it`s ok for this doc but if you have more info - plz append it

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

appended

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 3 changed files in this pull request and generated no new comments.

w3ll1ngt and others added 2 commits July 21, 2026 07:18
Co-authored-by: Evgeniy Stanilovskiy <stanilovsky@gmail.com>

== How to assess cluster health

Cluster health is a complex thing. Apache Ignite is capable of demonstrating great performance across different scenarios with varying loads. Therefore, in general terms, a healthy cluster is one whose behavior aligns with your expectations. However, there are some universal aspects that apply to all deployments and warrant attention.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Cluster health is a complex thing. Apache Ignite is capable of demonstrating great performance across different scenarios with varying loads. Therefore, in general terms, a healthy cluster is one whose behavior aligns with your expectations. However, there are some universal aspects that apply to all deployments and warrant attention.
Cluster health is a complex set of metrics and states that need to be analyzed together. Apache Ignite is capable of demonstrating great performance across different scenarios with varying loads. Therefore, in general terms, a healthy cluster is one whose behavior aligns with your expectations. However, there are some universal aspects that apply to all deployments and warrant attention.

* Data remains consistent: link:tools/control-script#verifying-partition-checksums[`idle_verify`] reports no partition conflicts when the cluster is idle.
* Expected nodes are present, and no unexpected repeated node `JOIN`, `LEFT`, or `FAIL` events or node segmentation are reported.
* link:configuring-caches/partition-loss-policy[Lost partitions] are absent.
* The number and age of link:tools/control-script#transaction-management[long-running transactions] do not keep increasing; active link:data-modeling/data-partitioning#partition-map-exchange[Partition Map Exchanges (PMEs)] complete; link:monitoring-metrics/new-metrics-system#monitoring-rebalancing[rebalancing] finishes; link:monitoring-metrics/new-metrics-system#monitoring-checkpointing-operations[checkpoint-related metrics] and link:monitoring-metrics/new-metrics#thread-pools[executor queue sizes] return to their usual ranges after the link:monitoring-metrics/new-metrics-system#monitoring-topology[topology] has stabilized and the application workload has returned to its expected level.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* The number and age of link:tools/control-script#transaction-management[long-running transactions] do not keep increasing; active link:data-modeling/data-partitioning#partition-map-exchange[Partition Map Exchanges (PMEs)] complete; link:monitoring-metrics/new-metrics-system#monitoring-rebalancing[rebalancing] finishes; link:monitoring-metrics/new-metrics-system#monitoring-checkpointing-operations[checkpoint-related metrics] and link:monitoring-metrics/new-metrics#thread-pools[executor queue sizes] return to their usual ranges after the link:monitoring-metrics/new-metrics-system#monitoring-topology[topology] has stabilized and the application workload has returned to its expected level.
* The number and timeout of link:tools/control-script#transaction-management[long-running transactions] do not keep increasing; active link:data-modeling/data-partitioning#partition-map-exchange[Partition Map Exchanges (PMEs)] complete; link:monitoring-metrics/new-metrics-system#monitoring-rebalancing[rebalancing] finishes; link:monitoring-metrics/new-metrics-system#monitoring-checkpointing-operations[checkpoint-related metrics] and link:monitoring-metrics/new-metrics#thread-pools[executor queue sizes] return to their usual ranges after the link:monitoring-metrics/new-metrics-system#monitoring-topology[topology] has stabilized and the application workload has returned to its expected level.


The command compares partition update counters and partition hashes between primary and backup copies.
Run it only when data updates are stopped.
If updates are active, the command can report false conflicts because copies are changing while hashes are being calculated.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If updates are active, the command can report false conflicts because copies are changing while hashes are being calculated.
If updates are active, the command can report false positive conflicts because copies are changing while hashes are being calculated.

ORDER BY STATE, CACHE_GROUP_ID, PARTITION_ID, NODE_ID;
----

In steady state, this query usually should not return `MOVING`, `RENTING`, or `LOST` rows.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In steady state, this query usually should not return `MOVING`, `RENTING`, or `LOST` rows.
In stable cluster state, this query usually should not return `MOVING`, `RENTING`, or `LOST` rows.

* `io.datastorage.LastCheckpointTotalPagesNumber`
* `io.datastorage.LastCheckpointFsyncDuration`

It looks like this in ignite.log

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
It looks like this in ignite.log
Corresponding records in <SOME_formatting ? bold ? italic ?>ignite.log looks like as follows:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants