Nicht sequenzielle Inkrement-IDs für Bestellungen in Adobe Commerce Cloud

In Adobe Commerce Cloud Pro erhöhen sich die Auftrags-, Rechnungs-, Versand- und anderen Entitäteninkrement-IDs in Schritten wie 100000001 → 100000004 → 100000007, anstatt um 1. Dieses Verhalten tritt aufgrund der Galera-Multi-Node-Datenbankarchitektur auf, die in Cloud Pro-Umgebungen verwendet wird. Um dies zu beheben, behandeln Sie Inkrement-IDs nur als eindeutige Kennungen und vermeiden Sie die Verwendung einer sequenziellen Nummerierung.

Beschreibung description

Umgebung

Adobe Commerce on Cloud Pro mit Multi-Node MySQL (Galera-Cluster)

Problem/Symptome

Händler beachten, dass IDs erhöht werden:

  • Zunahme der Schritte (häufig +3)
  • Folgen Sie keiner strikten Reihenfolge
  • Werte überspringen

Diese Verhaltensweisen geben Anlass zu Bedenken hinsichtlich:

  • Kundenseitige Bestellnummern
  • Interne Berichterstellung
  • Audit- und Compliance-Anforderungen

Ursache

Cloud Pro-Umgebungen verwenden einen Galera-Cluster mit drei Knoten, um hohe Verfügbarkeit und Datenkonsistenz zu unterstützen.
Um Kollisionen mit Primärschlüsseln beim gleichzeitigen Schreiben zu vermeiden, verwendet MySQL die folgende Konfiguration:

  • auto_increment_increment = 3
  • auto_increment_offset = {1,2,3}(pro Knoten)

Jeder Knoten generiert IDs unabhängig in seiner eigenen Sequenz. Beispiel:

  • Knoten 1 → 1, 4, 7, 10…
  • Knoten 2 → 2, 5, 8, 11…
  • Knoten 3 → 3, 6, 9, 12…

Inkrementieren Sie IDs daher wie folgt:

  • Global eindeutig
  • Nicht sequenziell, wenn als einzelner Stream angezeigt

Erwartetes Verhalten

  • Inkrement-IDs folgen keiner Sequenz garantiert.
  • Lücken und Schrittanstiege sind normal.
  • Dieses Verhalten gilt für alle Entitäten, die die automatische Inkrementierung verwenden.

Dieses Verhalten tritt aus folgenden Gründen auch außerhalb von Cluster-Umgebungen auf:

  • Fehlgeschlagene Transaktionen
  • Rollbacks
  • Gleichzeitige Vorgänge

Wirkung

  • Systemfunktionalität und Datenintegrität bleiben davon unberührt.
  • IDs bleiben eindeutig und gelten für alle Adobe Commerce Cloud-Vorgänge.
  • Es sind nur die Erwartungen für die sequenzielle Nummerierung betroffen.

Lösung resolution

Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  1. Vermeiden Sie es, sich auf sequenzielle Inkrement-IDs zu verlassen.

    • Inkrement-IDs als eindeutige Kennungen, nicht als geordnete Werte behandeln.

    • Verwenden Sie für die Sortierung und das Reporting:

      • created_at Zeitstempel
      • Entitätsbeziehungen oder Geschäftslogik
  2. Aktualisieren Sie die Reporting- und Audit-Tools.

    • Wenn Ihre Tools eine strikte Sequenzierung erwarten:

      • Aktualisieren Sie die Logik zur Verarbeitung nicht fortlaufender IDs.
      • Entfernen Sie Abhängigkeiten von numerischer Kontinuität.
  3. Benutzerdefinierte Sequenzierung implementieren (falls erforderlich).

    • Wenn Ihr Unternehmen streng sequenzielle Zahlen benötigt:

      • Erstellen Sie einen benutzerdefinierten Sequenzgenerator (z. B. ein benutzerdefiniertes Modul).
      • Wert als separates Attribut speichern (die Inkrement-ID nicht ersetzen).
      • Verwenden Sie eine ordnungsgemäße Sperre, um Wettlaufsituationen zu vermeiden.

Best Practice

Inkrement-IDs wie Nummernschilder behandeln, nicht wie Ticket-Zähler:

  • Sie identifizieren Elemente eindeutig
  • Sie garantieren keine Ordnung

Zusammenfassung

Nicht sequenzielle Inkrement-IDs in Cloud Pro sind ein direktes Ergebnis des verteilten Datenbankdesigns der Plattform. Dies gewährleistet Skalierbarkeit und Zuverlässigkeit, bedeutet jedoch, dass eine strikte Sequenzierung auf Infrastrukturebene nicht unterstützt wird. Für Anwendungsfälle, die eine sequenzielle Nummerierung erfordern, ist eine benutzerdefinierte oder externe Lösung erforderlich.

Verwandtes Lesen

recommendation-more-help
experience-cloud-kcs-help-kbarticles