Hibernate Shards: partitionnement horizontal des données

Java

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.

    Commentaires (0)

    Aucun commentaire pour le moment.