Evitaţi tranzacţiile care otrăvesc DDL şi Harden multi-pod curse

FixSecurityService
Expediere
20 aprilie 2026 la 20:43 UTC
Autor
Kamo
Comite
d3249b4

Precedentul auto-vindecare pune DDL într-o sincronizare @TransactionalAll(). Atunci când un ALTER TABELUL ADD CONTRAINT tras asupra unei constrângeri existente (caz normal după prima boot, sau pod pierdut într-o cursă multi-pod), runIdempotent înghiţit Java Excepție Fiecare apel JPA ulterioare apoi a lovit tranzacţia curentă este anulată, comenzi ignorate până la sfârșitul blocului de tranzacții ,", luând pod în jos pe fiecare repornire. Modificări: - Sincronizarea: Fiecare fază se desfășoară cu propria sa autonomie: DDL auto-commite pe declarație în afara oricărui TX de primăvară, astfel încât Un singur eşec nu poate otrăvi nimic. - să asigure că UniqueConstraint() verifică acum pg constraint înainte de a încerca ADD, Deci eroarea "există deja" nu se aprinde niciodată la reporniri normale. - Auto-injectare (@Lazy sine) astfel încât sub-metodele " @Transactional de fapt incendii prin proxy de primăvară (precedentul acest lucru.sincOrgRoleRights() apel bypassed AOP). - Documentat analiza rasei simultane: DDL serializat de CRDB, DELETE idepotent, introduce rasa-sigur prin intermediul CONFLICT nu face nimic.

Toate modificările

Ca ceea ce vezi de transport maritim?

Fiecare dintre aceste actualizări aterizează automat în spațiul de lucru. Începe gratuit și urmăriți-l crească săptămână după săptămână.

Pornește gratuit pentru totdeaunaVezi prețurile