Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-17845 Make Ignite Consistent Again
  3. IGNITE-17738

Cluster must be able to fix the partition inconsistency on restart/node_join by itself

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • None
    • None
    • None
    • Docs Required, Release Notes Required

    Description

      On cluster restart (because of power-off, OOM or some other problem) it's possible to have PDS inconsistent (primary partitions may contain operations missed on backups as well as counters may contain gaps even on primary).

      1) Currently, "historical rebalance" is able to sync the data to the highest LWM for every partition.
      Most likely, a primary will be chosen as a rebalance source, but the data after the LWM will not be rebalanced. So, all updates between LWM and HWM will not be synchronized.
      See PartialHistoricalRebalanceTest.java

      2) In case LWM is the same on primary and backup, rebalance will be skipped for such partition.
      See SkippedRebalanceBecauseOfTheSameLwmTest.java

      Proposals:

      1) Cheap fix
      A possible solution is for the case when the cluster failed and restarted (same baseline) is to fix the counters automatically (when cluster composition is equal to the baseline specified before the crash).

      Counters should be set as

      • HWM at primary and as LWM at backups for caches with 2+ backups,
      • LWM at primary and as HWM at backups for caches with a single backup.

      2) Complex fix (when baseline changed)
      Rebalance must honor whole counter state (LWM, HWM, gaps).
      2.0) Primary HWM must be set to the highest HWM across the copies to avoid reapplying of already applied update counters on backups.
      2.1) In case when WAL is available all entries between LWM and HWM (including) must be rebalanced to other nodes where they are required.
      Even from backups to the primary.
      Such approach may require rebalance as a prerequisite to activation finish.

      Attachments

        1. PartialHistoricalRebalanceTest.java
          11 kB
          Anton Vinogradov
        2. SkippedRebalanceBecauseOfTheSameLwmTest.java
          10 kB
          Anton Vinogradov

        Issue Links

          Activity

            People

              mmuzaf Maxim Muzafarov
              av Anton Vinogradov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h