Hibernate : stratégies de chargement et de cache performantes

12

Click here to load reader

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

Page 1: Hibernate : stratégies de chargement et de cache performantes

Alain Hélaïli – [email protected] SE Manager

Hibernate, stratégies de chargement et de cache performantes

Geneva JUG – 28/09/2010

Page 2: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 3: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 4: Hibernate : stratégies de chargement et de cache performantes

Environnement de tes t

• Environnement de test• Hibernate, Spring, JSF

• Build Maven

• Tests JUnit

Page 5: Hibernate : stratégies de chargement et de cache performantes

Environnement de tes t

Page 6: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 7: Hibernate : stratégies de chargement et de cache performantes

Stratég ies de récupération

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

Page 8: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 9: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 10: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 11: Hibernate : stratégies de chargement et de cache performantes

Agenda

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

Page 12: Hibernate : stratégies de chargement et de cache performantes

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