Skip to content

Latest commit

 

History

History
125 lines (89 loc) · 4.04 KB

20151117_ParisJUG_presentation-Hazelcast.adoc

File metadata and controls

125 lines (89 loc) · 4.04 KB

2015/11/17 - Paris JUG - Présentation Hazelcast

Table of Contents

Notes

Par Emrah Kocaman (Hazelcast integration team depuis 1,5 an)

20151117 ParisJUG presentation Hazelcast 01
  • Hazelcast = In memory data grid solution

    • IM data storage + IM data messaging + IM data computing

    • Les data sont stockés dans la heap (PAS de stockage off heap)

  • Business Model = entreprise version + training + support

  • Hazelcast is a Java library ~6Mo

    • Just 1 dependency in the pom.xml

20151117 ParisJUG presentation Hazelcast 02

Distributed application main features:

  • speed

  • scalability

  • simplicité

  • Mécanisme de listeners pour partager / écrire les data entre les nodes.

    • Un algo consistant de hash des clés (pas vraiment un round robin) permet ce partage.

    • Keys et data sont sérialisés.

    • La table de partitions est présente sur chaque node.

  • Mécanisme de backup : chaque node à un node de backup (possibilité d’avoir plusieurs backup, max 6) pour la restauration des data en cas de crash.

    • La restauration est une opération bloquante.

    • Un noeud → plusieurs partitions

    • Le node de backup sauvegarde bien sûr les données des autres noeuds (pas celles de son noeud "maître")

    • Avoir plusieurs nodes de backup pour 1 node permet de pouvoir supporter le crash de plusieurs nodes en même temps.

    • Le nombre de partitions est fixé une fois Hazelcast démarré (défaut 271. Notre précédent hash prend donc une valeur dans cette plage).

  • Embedded Hazelcast pour le développement

  • Client server mode pour la prod (facilite la scalability)

  • Multicast par défaut pour le networking.

    • TCP/IP et AWS également possibles.

  • Hazelcast features : portage pour d’autres frameworks, ex Hibernate 2nd level cache

20151117 ParisJUG presentation Hazelcast 03
Aucun intérêt d’utiliser Hazelcast avec 1 seul node.

Belle interface de monitoring :

  • monitoring de la heap

  • répartition des data dans les partitions

  • utilisation des backups

20151117 ParisJUG presentation Hazelcast 04

3 types de configuration :

  • XML

  • programmatic

  • Spring configuration

On peut stocker les data off heap, mais c’est une fonctionnalité de la version entreprise.

Hazelcast serialization :

  • either java.io.serializable: not SO performant, but standard

  • or Java.io.externalizable: far more efficient, but you have to implement the logic yourself

  • Hazelcast DataSerializable: perf ~ externalizable, don’t use reflection for deserialization, but Hazelcast specific.

  • IdentifiedDataSeralizable: utilise des IDs, empreinte mémoire plus faible (conseillé par Emrah pour la prod)

  • Portable: again Hazelcast specific

  • Pluggable (ex: Kryo)

→ Compression possible avec Serializable et externalizable, MAIS plombe les perfs.

Hazelcast architecture

20151117 ParisJUG presentation Hazelcast 05