Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Forum PHP 2025 - Les migrations DB, c'est risqué

Forum PHP 2025 - Les migrations DB, c'est risqué

Avatar for Benoit Galati

Benoit Galati

October 10, 2025
Tweet

More Decks by Benoit Galati

Other Decks in Programming

Transcript

  1. Notre histoire Création de Yousign 1ère Certification Européenne Levée de

    fonds 3,5M€ Association avec eFounders Déploiement Européen Levée de fonds 30M€
  2. clients + de 25 000 En chiffres + de 4

    M documents signés par mois
  3. Signez tous vos documents en quelques clics Simplicité Sécurité Accompagnement

    Garantissez la confidentialité des échanges Bénéficiez d’une équipe et de supports dédiés
  4. Yousign est un éditeur de logiciels, 100% français, qui propose

    des solutions de signature électronique, certifiées en France et en Europe : • Tiers de confiance • Autorité de certification • Certifié eIDAS pour : ◦ la signature électronique ◦ le cachet serveur ◦ l’horodatage Qui sommes-nous ?
  5. Facilitez-vous la vie avec Yousign Nos solutions s'adaptent aux besoins

    de chaque organisation Notre application SaaS facile à utiliser et immédiatement déployable Notre API flexible pour intégrer la signature électronique dans tous vos logiciels
  6. Acquérir un lock exclusif − même très court − est

    risqué ⏸SELECT... ⏸SELECT... ⏸SELECT... ⏸SELECT... ⏸SELECT... SELECT... SELECT... SELECT... SELECT... SELECT... ALTER TABLE... 👉 Tout accès est bloqué tant que le ALTER TABLE n’est pas passé. ⚠ Les connexions se stackent ⚠ Risque d’épuisement du pool de connexions, de CPU, de RAM et in fine de crash applicatif. ⏸
  7. Points forts et points faibles de la lib ✅ Auto-retry

    si lock timeout ✅ Simple et efficace −> juste une lib à installer ✅ Charge cognitive à 0 pour les dev ❌ Backfill à gérer soit même ❌ Toujours besoin de gérer la rétro-compatibilité applicative
  8. Beaucoup d’autres solutions • xataio/pgroll (PG Only) • github/gh-ost (MySQL

    only) • DB qui gère ça nativement comme CockroachDB • Analyse statique ◦ Squawk: a linter for Postgres migrations & SQL
  9. Must READ pour PostgreSQL • PostgreSQL doc: Multiversion Concurrency Control

    • PostgreSQL doc: lock behavior: it will help you understand a lot of things about PG locks. For example, some DDL queries require an exclusive lock on a table. When the table is concurrently accessed and modified by other processes, acquiring the lock may take a while. The lock request is waiting in a queue and it may also block other queries on this table once it has been enqueued.