Doctolib
Pendant 10 ans, Flora a travaillé sur la programmation et l'interactivité des robots Nao et Pepper (Aldebaran Robotics). Elle jonglait alors entre des enjeux de justesse d'expérience interactive naturelle et de performance d'embarqué. L'élaboration d'un CMS web permettant aux utilisateurs de créer et de modifier facilement le contenu de leurs robots en temps réel, l'a fait glisser petit à petit dans le monde du développement web full stack. Elle est maintenant Senior Software Engineer chez Doctolib depuis 2 ans, focalisée sur l'optimisation de l'utilisation de sa base de données.
Twitter : @flora_briand
Au cours du temps, nos bases de données grossissent. Viennent alors les problématiques de performance. Une solution classique consiste à rajouter des index. Ceux-ci jouent effectivement un rôle crucial sur les performances, mais ils peuvent également être contre-productifs. Les pièges classiques : ajouter un index à chaque nouvelle requête, mal les définir ou les laisser vieillir sans s'en occuper.
Chez Doctolib nous avons une BDD Postgres de 30To, avec des pics quotidiens de 250k requêtes par seconde. La plus grosse table fait 6To, elle a 30 index.
Alors comment nous sommes-nous outillés pour améliorer l'usage de nos index et réduire leur nombre ? Nous parlerons de représentativité de tests, de pièges SQL, de write-amplification, de benchmark d'index, et des défis que notre équipe a rencontrés pendant quelques mois.