ID incremento non sequenziali per ordini in Adobe Commerce Cloud

In Adobe Commerce Cloud Pro, gli ID di incremento di ordini, fatture, spedizioni e altre entità aumentano in passaggi quali 100000001 → 100000004 → 100000007 invece di aumentare di 1. Questo comportamento è dovuto all’architettura di database a più nodi di Galera utilizzata negli ambienti Cloud Pro. Per risolvere questo problema, considera gli ID incremento solo come identificatori univoci ed evita di fare affidamento sulla numerazione sequenziale.

Descrizione description

Ambiente

Adobe Commerce su Cloud Pro con MySQL a più nodi (cluster Galera)

Problema/Sintomi

I commercianti osservano tali ID di incremento:

  • Incremento di intervalli (comunemente +3)
  • Non seguire una sequenza rigida
  • Ignora valori

Questi comportamenti sollevano preoccupazioni su:

  • Numeri ordine rivolti al cliente
  • Reporting interno
  • Requisiti di audit e conformità

Causa

Gli ambienti Cloud Pro utilizzano un cluster Galera a 3 nodi per supportare elevata disponibilità e coerenza dei dati.
Per evitare conflitti tra chiavi primarie durante le scritture simultanee, MySQL utilizza la seguente configurazione:

  • auto_increment_increment = 3
  • auto_increment_offset = {1,2,3}(per nodo)

Ogni nodo genera gli ID in modo indipendente nella propria sequenza. Ad esempio:

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

Di conseguenza, gli ID di incremento sono:

  • Univoco a livello globale
  • Non sequenziale se visualizzato come un singolo flusso

Comportamento previsto

  • Non è garantito che gli ID incrementali seguano una sequenza.
  • Gli spazi vuoti e gli incrementi di passo sono normali.
  • Questo comportamento si applica a tutte le entità che utilizzano l’incremento automatico.

Questo comportamento si verifica anche al di fuori degli ambienti cluster a causa di:

  • Transazioni non riuscite
  • Rollback
  • Operazioni concorrenti

Impatto

  • La funzionalità del sistema e l’integrità dei dati rimangono invariate.
  • Gli ID rimangono univoci e validi per tutte le operazioni di Adobe Commerce Cloud.
  • Sono interessate solo le aspettative di numerazione sequenziale.

Risoluzione resolution

Per risolvere il problema, eseguire la procedura seguente:

  1. Evita di fare affidamento su ID incrementali sequenziali.

    • Considera gli ID incremento come identificatori univoci, non come valori ordinati.

    • Per gli ordini e i rapporti, utilizza:

      • created_at timestamp
      • Relazioni entità o logica di business
  2. Aggiornare gli strumenti di reporting e audit.

    • Se gli strumenti prevedono una rigorosa sequenza:

      • Aggiorna la logica per gestire gli ID non contigui.
      • Rimuovere le dipendenze dalla continuità numerica.
  3. Implementare la sequenza personalizzata (se richiesta).

    • Se la tua azienda richiede numeri strettamente sequenziali:

      • Crea un generatore di sequenze personalizzato (ad esempio, un modulo personalizzato).
      • Memorizza il valore come attributo separato (non sostituire l’ID incremento).
      • Utilizzare un blocco appropriato per evitare le corse automobilistiche.

Best practice

Considera gli ID incrementali come targhe, non i banchi di biglietti:

  • Identifica in modo univoco gli elementi
  • Non garantiscono l’ordine

Conclusione

Gli ID di incrementi non sequenziali in Cloud Pro sono un risultato diretto della progettazione del database distribuito della piattaforma. Questo garantisce scalabilità e affidabilità, ma non supporta la sequenza rigida a livello di infrastruttura. Per i casi d’uso che richiedono una numerazione sequenziale, è necessaria una soluzione personalizzata o esterna.

Lettura correlata

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