Le Touilleur ExpressLe Touilleur ExpressLe Touilleur ExpressLe Touilleur Express
  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

Hibernate Shards: partitionnement horizontal des données

    Home Java Hibernate Shards: partitionnement horizontal des données

    Hibernate Shards: partitionnement horizontal des données

    Par Nicolas Martignole | Java | Commentaires fermés | 21 janvier, 2008 | 0 | 1 109 affichages
         

    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
    Java, multi entity

    Recent Posts

    • GitHub Actions : le tueur de Jenkins ?

      Avouez-le : ce titre de blog est super racoleur. J’avais aussi pensé

      15 février, 2021
    • Comment recréer du lien social dans l’Entreprise avec des outils numériques en 2021

      Nous sommes en février 2021 pendant le 3ème confinement lié à la

      10 février, 2021
    • FizzBuzz en Java et Scala (surtout Scala)

      L’exercice FizzBuzz est un petit exercice très simple, à tester par exemple

      9 février, 2021

    Recent Tweets

    • RT  @QuarkusIO : We just released Quarkus https://t.co/ZkyLrP5cFs. The big change is the Fast jar packaging as default (better read the annou…

      10 hours ago
    •  @starbuxman  Très bonne idée 👍🏻

      11 hours ago
    •  @jylls35  Merci je ne savais pas 😀

      1 day ago
    • RT  @benzonico :  @nmartignole  Dans la même veine de dictons : "Il n'y a pas de bons montagnards, il y a des vieux montagnards..."

      2 days ago
    • «... un pilote vieux c’est un pilote chanceux et prudent... » (fin du tweet précédent)

      2 days ago

    Mots clés

    agile (18) ajax (11) Apple (11) architecture (6) barcamp (5) BarCampJavaParis (5) ddd (5) devoxx (33) esb (6) exo (6) flex (9) geek (5) google (11) grails (5) groovy (10) humeur (12) humour (7) independant (6) iphone (12) Java (77) javascript (7) jazoon (28) jboss (22) jboss seam (12) jsf (9) jug (16) Linux (11) mac (6) mule (5) parisjug (7) paris jug (22) pjug (6) play (8) playframework (6) portlet (5) recrutement (6) ria (8) Scala (21) scrum (44) spring (23) Startup (11) usi (21) usi2010 (9) web (16) xebia (7)

    Le Touilleur Express

    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
    Le Touilleur Express