ID d’incrément non séquentiels pour les commandes dans Adobe Commerce Cloud
Dans Adobe Commerce Cloud Pro, les ID d’incrément de commande, de facture, d’expédition et autres entités augmentent par étapes, par exemple 100000001 → 100000004 → 100000007 au lieu d’augmenter de 1. Ce comportement est dû à l’architecture de base de données multi-nœuds Galera utilisée dans les environnements Cloud Pro. Pour corriger ce problème, traitez les identifiants d’incrément uniquement comme des identifiants uniques et évitez de vous fier à la numérotation séquentielle.
Description description
Environnement
Adobe Commerce sur Cloud Pro avec MySQL à plusieurs nœuds (Galera Cluster)
Problème/Symptômes
Les commerçants observent que les ID d’incrément :
- Augmentation des pas (généralement +3)
- Ne pas suivre une séquence stricte
- Ignorer les valeurs
Ces comportements soulèvent des préoccupations concernant :
- Numéros de commande destinés aux clients
- Reporting interne
- Exigences d’audit et de conformité
Cause
Les environnements Cloud Pro utilisent un cluster Galera à 3 nœuds pour prendre en charge une haute disponibilité et la cohérence des données.
Pour éviter les collisions de clés primaires lors d’écritures simultanées, MySQL utilise la configuration suivante :
auto_increment_increment = 3auto_increment_offset = {1,2,3}(par nœud)
Chaque nœud génère des identifiants indépendamment dans sa propre séquence. Par exemple :
- Nœud 1 → 1, 4, 7, 10…
- Nœud 2 → 2, 5, 8, 11…
- Nœud 3 → 3, 6, 9, 12…
Par conséquent, les identifiants d’incrément sont les suivants :
- Globalement unique
- Non séquentiel lorsqu’il est considéré comme un seul flux
Comportement attendu
- Il n’est pas garanti que les ID d’incrément suivent une séquence.
- Les écarts et les augmentations de pas sont normaux.
- Ce comportement s’applique à toutes les entités qui utilisent l’incrémentation automatique.
Ce comportement se produit également en dehors des environnements en cluster en raison des éléments suivants :
- Transactions ayant échoué
- Restaurations
- Opérations simultanées
Impact
- Les fonctionnalités du système et l’intégrité des données ne sont pas affectées.
- Les identifiants restent uniques et valides pour toutes les opérations Adobe Commerce Cloud.
- Seules les attentes de numérotation séquentielle sont affectées.
Résolution resolution
Pour résoudre ce problème, procédez comme suit :
-
Évitez de vous fier à des identifiants d’incrément séquentiels.
-
Traiter les identifiants d’incrément comme des identifiants uniques et non comme des valeurs ordonnées.
-
Pour les commandes et les rapports, utilisez :
created_athorodatages- Relations d’entité ou logique commerciale
-
-
Mettre à jour les outils de reporting et d’audit.
-
Si vos outils attendent un séquencement strict :
- Mettez à jour la logique pour gérer les identifiants non contigus.
- Supprimez les dépendances sur la continuité numérique.
-
-
Implémentez un séquencement personnalisé (si nécessaire).
-
Si votre entreprise a besoin de nombres strictement séquentiels :
- Créez un générateur de séquences personnalisé (par exemple, un module personnalisé).
- Stockez la valeur en tant qu’attribut distinct (ne remplacez pas l’ID d’incrément).
- Utilisez un verrouillage approprié pour empêcher les conditions de concurrence.
-
Bonne pratique
Traitez les identifiants d’incrément comme des plaques d’immatriculation, et non comme des compteurs de tickets :
- Ils identifient les éléments de manière unique
- Ils ne garantissent pas l’ordre
Conclusion
Les identifiants d’incrément non séquentiels dans Cloud Pro sont un résultat direct de la conception de la base de données distribuée de la plateforme. Cela garantit l’évolutivité et la fiabilité, mais signifie qu’un séquencement strict n’est pas pris en charge au niveau de l’infrastructure. Pour les cas d’utilisation nécessitant une numérotation séquentielle, une solution personnalisée ou externe est requise.