- Expédié
- 10 août 2026 à 17:57 UTC
- Auteur
- Kamo
- Commite
- 4007c5b
Le routage d'un nouveau ticket a couru à l'intérieur de la transaction de création, donc tout ce qu'il a frappé J'ai roulé le billet avec lui et le membre demandant de l'aide a reçu "Faignu de créer ticket" avec rien de sauvé n'importe où. Deux choses l'ont frappé, les deux latents jusqu'à ce que les demandes de chat commencent à atteindre ce code - round-robin avait effectivement jamais exécuté en production, de sorte qu'il n'a jamais rencontré YugabyteDB : - getEligibleLes agents balayent toutes les rangées de droits appliqués dans l'orge et filtrés dans Java: des milliers de rangées jointes à des membres, courir tard dans une écriture transactionnelle. YugabyteDB ne peut que redémarrer de manière transparente une lecture qui est la première déclaration dans sa transaction, de sorte que celle-ci a été soulevée "Redémarrer en lecture obligatoire" (SQLState 40001). Il utilise maintenant la recherche indexée à point filtré qui SupportQueueService et SupportPendingCountService sont déjà utilisés. - Un traqueur à robin rond nouvellement créé a été immédiatement verrouillé ÉCRITURE PESSIMISIQUE. L'entité est intransversée, c'est-à-dire SELECT... POUR MISE À JOUR par ligne cette même opération non engagée n'avait qu'une seule opération inséré; il ne retourne rien et Hibernate soulève StaleObjectStateException. Rien ne peut faire face à une querelle qui n'existe pas encore - l'unique La contrainte sur TOPIC-ID est ce qui règle une course de création. Traceurs existants sont toujours verrouillés. Structurellement, le routage se produit maintenant dans sa propre transaction après que le billet a engagement (SupportController appelle routeNewTicket, retomber à annonceNewTicket si cela échoue). L'affectation est une commodité; le billet est la chose qui doit survivre. Cela donne également la grande quantité de la mission lire une une transaction dans laquelle il s'agit de la première déclaration.