Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express
Next Previous

Hibernate Shards: partitionnement horizontal des données

21 janvier, 2008

Dans la finance, les progiciels financiers gèrent des volumes de données énormes. Et souvent pour des raisons de sécurité, les données doivent être réparties sur plusieurs sites physiques. Imaginez si une banque privé ou un headgefund perdait ses données dans un incendie… Chez nous, notre produit historique est capable de gérer des données multi-sites (multi entities en anglais). Depuis que nous avons commencé à migrer vers une architecture SOA basée sur Java, l’accès aux données s’effectue via un ORM (Hibernate). J’ai trouvé ce matin sur le blog de Xebia qu’Hibernate dispose d’un module permettant d’adresser le partitionnement des données horizontales: Hibernate Shards.

Hibernate Shards (fragements en anglais) était à l’origine un projet de Google.
C’est une extension d’Hibernate Core conçu pour encapsuler et minimiser
la complexité de travailler avec des données fragmentées (horizontalement partitionnées).
L’API est assez simple et nécessite Java 5 minimum.

Si vous connaissez les interfaces par défaut d’Hibernate qui sont:


  • org.hibernate.Session
  • org.hibernate.SessionFactory

  • org.hibernate.Criteria

  • org.hibernate.Query

  • Hibernate Shards ajoute les objets suivants qui permettent d’interagir avec les données:

    org.hibernate.shards.session.ShardedSession

  • org.hibernate.shards.ShardedSessionFactory

  • org.hibernate.shards.criteria.ShardedCriteria

  • org.hibernate.shards.query.ShardedQuery

    Cependant chaque application Java étant architecturée différemment, Shards propose aussi des classes supplémentaires qui vous permettront de mettre en place votre stratégie de partitionnement personnalisée.


  • org.hibernate.shards.strategy.selection.ShardSelectionStrategy

  • org.hibernate.shards.strategy.resolution.ShardResolutionStrategy

  • org.hibernate.shards.strategy.access.ShardAccessStrategy

  • Hibernate Shards permet aussi de mettre en place ce que l’on appelle la « refragmentation »(resharding). Imaginez que vous créer votre site de ventes aux enchèeres ou de rencontre. La base de données explose car votre site a du succès. Grâce à ce concept vous pourrez mettre en place des bases supplémentaires sans trop de soucis… Attention c’est loin d’être facile mais c’est faisable.

    Articles similaires:

    Default ThumbnailHibernate : le chargement tardif c'est extra Default ThumbnailHibernate : gérer le chargement des associations efficacement Default ThumbnailExemple Mule : lire un fichier CSV et écrire vers une base de données Default ThumbnailAnalyse de données avec PivotTable

    Derniers articles

    • Monolithic software in the healthcare industry

      Un monolithe, c’est quoi ?

      Dans cet article, je vous propose de découvrir ce qu’est un monolithe,

      12 juillet, 2023
    • Vis ma vie de Staff/Principal Engineer

      Suite de l’article précédent sur le Staff Engineer. Aujourd’hui, voyons un peu

      20 juillet, 2022
    • Inari

      Devenir Staff Engineer : comment et pourquoi ?

      Après une dizaine d’années en tant que développeur, vous serez un jour

      17 juillet, 2022

    Tweets @nmartignole

    Mots clés

    Apple (32) Architecture (13) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (15) Perso (266) Recrutement (3) Scala (30) scrum (43) Société (3) Startup (20) Web 2.0 (67)

    Le Touilleur Express

    Blog par Nicolas Martignole

    Contactez-moi : nicolas@touilleur-express.fr

    Suivez-moi sur Twitter : @nmartignole

    Copyright© 2008 - 2020 Nicolas Martignole | Tous droits réservés
    • A propos de l’auteur
    • A propos du Touilleur Express
    • Log In
    • My Account
    • My Profile
    • Reset Password

    Le Touilleur Express