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

    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

    • L’instant T où tu poses ta dém…

      Retour d’expérience sur la démission et le moment où vous devez quitter une entreprise.

      6 likes

      24 octobre, 2024
    • The « Robinson » projection – comprendre son système d’information

      Nous sommes en juillet 2022 chez Doctolib. Je travaille sur un projet

      5 likes

      22 octobre, 2024
    • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise

      Je prépare une présentation avec mon collègue Théotime pour la conférence Cloud

      3 likes

      6 octobre, 2024

    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é (15) 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