Hibernate : stratégies de chargement et de cache performantes

Post on 05-Jul-2015

689 views 2 download

description

Hibernate est un framework puissant et complexe, et son rôle dans les applications transactionnelles modernes en fait la brique critique du point de vue de la performance applicative. Alain vous propose d’examiner ensemble, et de l’intérieur grâce à dynaTrace, les impacts des best practices et anti-patterns sur une application spring-hibernate soumise à de la charge.

Transcript of Hibernate : stratégies de chargement et de cache performantes

Alain Hélaïli – alain.helaili@dynatrace.comEMEA SE Manager

Hibernate, stratégies de chargement et de cache performantes

Geneva JUG – 28/09/2010

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Environnement de tes t

• Environnement de test• Hibernate, Spring, JSF

• Build Maven

• Tests JUnit

Environnement de tes t

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Stratég ies de récupération

• Lazy• Join• Batch• Fetch profile• Lazy property

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Agenda

• Environnement de test• Stratégies de récupération (Fetching)• Cache de Session• Cache de requêtes• Cache de 2nd niveau• Cascade

Conclus ion

• Représentativité du jeu de données• Relation 1-n : en cible, plutôt 1-3 ou 1-100?

• Représentativité du volume de données• Volume cible doit être connu dès la phase de conception

• Volume au démarrage et volume après 1 an, 2 ans…

• Anticiper les use-cases et donc les optimisations• Mesurer les tests – pas uniquement OK/KO