Lorsque vous utilisez des opérations JOIN sur plusieurs tables avec des sources de données ApsaraDB RDS for MySQL ou PolarDB for MySQL, Data Transmission Service (DTS) synchronise la table principale et les tables secondaires vers OpenSearch. Les mises à jour des tables secondaires peuvent générer de nombreuses écritures dans la table principale, ce qui risque de dépasser le débit requis pour une synchronisation en temps réel.
Fonctionnement de l'amplification des écritures
Lors d'une jointure entre une table principale et une table secondaire, OpenSearch génère une table large combinant les enregistrements des deux sources.
Les mises à jour de la table principale suivent une relation un-à-un : chaque ID de clé primaire correspond à exactement un enregistrement dans la table large. Ainsi, la modification d'un enregistrement de la table principale n'affecte qu'un seul enregistrement de la table large.
Les mises à jour des tables secondaires peuvent suivre une relation un-à-plusieurs. Si le ratio entre les enregistrements de la table principale et ceux de la table secondaire est de N:1, un même ID de clé primaire présent dans la table secondaire peut correspondre à N enregistrements dans la table principale. Par conséquent, la mise à jour d'un seul enregistrement de la table secondaire peut déclencher N mises à jour dans la table large.
La figure suivante illustre la jointure entre une table principale et une table secondaire :

La figure suivante présente la relation N:1 et son effet cascade sur les mises à jour :

Limites de débit
| Limite | Seuil | Conséquence en cas de dépassement |
|---|---|---|
| Mises à jour combinées des tables principales et secondaires | ≤ 1 500 transactions par seconde (TPS) | La synchronisation en temps réel n'est plus garantie pour aucune des tables |
| Mises à jour des tables secondaires déclenchant des mises à jour de la table principale | ≤ 1 000 TPS | La synchronisation des données depuis la table principale et les tables secondaires peut subir des retards |
| Ratio d'enregistrements principal/secondaire (N:1) | N ≤ 10 | Une valeur N plus élevée amplifie la diffusion des écritures et accroît le risque de dépasser les limites TPS mentionnées ci-dessus |
Réduire la latence de synchronisation
En cas de retard de synchronisation, ouvrez un ticket pour ajuster la limite TPS applicable aux mises à jour des tables secondaires. Ces deux options impliquent un compromis entre la latence de la table principale et celle des tables secondaires :
Option 1 : Augmenter la limite TPS des tables secondaires
Ouvrez un ticket pour relever le plafond TPS maximal autorisé pour les mises à jour des tables secondaires. Cette configuration accélère la synchronisation des tables secondaires, mais l'augmentation du volume d'écritures propagées risque de ralentir les mises à jour de la table principale. Privilégiez cette approche si la latence de la table principale reste acceptable.
Option 2 : Plafonner le débit TPS des tables secondaires
Ouvrez un ticket pour abaisser le plafond TPS maximal des mises à jour des tables secondaires. Cette mesure préserve la réactivité de la table principale au détriment de la vitesse de synchronisation des tables secondaires. Optez pour cette solution lorsque l'actualisation des données de la table principale est critique.