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.

    0 no like

    Derniers articles

    • Capabilities.txt : ou comment expliquer les capacités de votre site web à un Agent

      Dans cet article, je vous propose de découvrir et de réfléchir à

      4 likes

      3 août, 2025
    • Le développement augmenté, un avis politiquement correct, mais bon…

      Puisque chacun y va de sa vidéo YouTube sur le génial Claude

      3 likes

      31 juillet, 2025
    • Comment j’ai codé un MVP en une vingtaine d’heures avec Claude Code

      Jeudi dernier, j’étais dans les bureaux de Back Market Paris, avec quelques

      2 likes

      30 juillet, 2025

    Mots clés

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

    Le Touilleur Express

    Blog par Nicolas Martignole

    Contactez-moi : nicolas@touilleur-express.fr

    Suivez-moi sur X (Twitter) : @nmartignole

    Copyright© 2008 - 2024 Nicolas Martignole | Tous droits réservés
    • A propos de l’auteur
    • A propos du Touilleur Express
    • Reset Password

    Le Touilleur Express