Cluster libre de bases de données

Posté par (page perso) . Modéré par Jean-Yves B..
Tags :
0
5
mai
2003
Communauté
Le libre fait encore un grand pas en avant. En effet, jusqu'à maintenant il lui manquait des solutions de clustering de bases de données. C'est désormais chose faite grâce au consortium ObjectWeb (dans lequel on retrouve l'INRIA) : C-JDBC aka Clustered-JDBC.

Il s'agit d'un driver JDBC générique et d'un contrôleur qui assure la répartition de charge en lecture, et le broadcast en écriture. Voici donc le nouveau concept : RAIDb aka Redundant Array of Inexpensive Databases.

C-JDBC est publié sous licence LGPL.

Pas d'affolement toutefois pour la simple raison que ce n'est qu'un préversion (1.0alpha0), donc seuls les plus connaisseurs et les plus curieux pourront tester et s'y exercer, voire développer. La documentation au format DocBook est encore bien incomplète, mais existante : brochure, User's Guide et Developer's Guide.

Pour l'instant, RAIDb se limite au RAIDb-0, RAIDb-1, et RAIDb-2 (voir brochure).

Au menu : tolérance de panne, haute disponibilité, hautes performances, monitoring, journalisation, et cache de requêtes.

Cette version a été testée avec Tomcat, JOnAS, MySQL and PostgreSQL. D'excellent resultats ont été obtenus avec les benchmarks TPC-W et RUBiS.

Overview

E-business applications performance becomes quickly bounded by database throughput especially when using public domain RDBMS on regular workstations. C-JDBC is a database cluster middleware that allows any Java application (standalone application, servlet or EJB container, ...) to transparently access a cluster of databases through JDBC(tm).

You do not have to modify client applications, application servers or database server software. You just have to ensure that all database accesses are performed through JDBC.

C-JDBC provides a flexible architecture that allows you to achieve scalability, high availability and failover with your database tiers. C-JDBC instantiates the concept of RAIDb : Redundant Array of Inexpensive Databases. The database is distributed and replicated among several nodes and C-JDBC load balance the queries between these nodes.

C-JDBC is a free, open source initiative.
  • # La grenouille qui se faisait aussi grosse que le boeuf

    Posté par . Évalué à 5.

    Faudrait être plus explicite : ce n'est pas du tout un "cluster libre de bases de données". C'est juste un client capable de prendre en charge du load-balancing. Et mal en plus ; d'une part parce que le "broadcast en écriture" implique que sur une base où la majorité des accès sont en écriture, on ne gagnera pas grand'chose (je pense que les vraies bases de données distribuées, comme sait le faire Oracle, ont des caractéristiques plus intéressantes). D'autre part parce que s'il s'agit d'un simple broadcast sur les requêtes, leur résultat peut varier d'une base à l'autre (par exemple si une fonction de type RAND() est utilisée, ou si les aléas de l'ordonnancement font que deux transactions incompatibles ne sont pas exécutées dans le même ordre), et donc les bases se retrouver désynchronisées, ce qui est une catastrophe pour du load-balancing ;).
    • [^] # Re: La grenouille qui se faisait aussi grosse que le boeuf

      Posté par . Évalué à 3.

      Pour ce qui est du "C'est juste un client capable de prendre en charge du load-balancing", ce n'est pas correct puisqu'ils ont prévu un contrôleur sur lequel les clients se connectent. Celui-ci agit donc alors comme un moniteur transactionnel. En tout cas, c'est ce qui est prévu.
    • [^] # Re: La grenouille qui se faisait aussi grosse que le boeuf

      Posté par (page perso) . Évalué à 4.

      D'après ce que j'ai compris, c'est beaucoup plus qu'un broadcast sur les requêtes puisque le moteur intègre une analyse des requêtes pour les distribuer de façon "intelligente". De plus, les auteurs ont fait les benchs classiques (genre le truc de TPC) et ont obtenu un speeup très intéressant (linéaire jusqu'à 8 machines, je crois). Il y a eu une discussion à ce sujet sur theserverside (http://www.theserverside.com/home/thread.jsp?thread_id=19114&ar(...) )
    • [^] # Re: La grenouille qui se faisait aussi grosse que le boeuf

      Posté par . Évalué à 3.

      Pour répondre à "Master-dik" sur "je pense que les vraies bases de données distribuées, comme sait le faire Oracle, ont des caractéristiques plus intéressantes" :
      Ne penses-tu pas que quand Linux est arrivé, les Unix commerciaux comme Solaris, HP-UX, SCO, ... avaient des caractéristiques plus intéressantes ?

      De plus, avant d'envoyer de tels messages tu ferais bien d'aller regarder un peu la doc. Il ne s'agit pas d'un simple broadcast sur les requêtes mais d'un vrai moteur transactionnel qui analyse les requêtes, réécrit à la volée toutes les fonctions (de type date, rand, ...) qui pourraient provoquer des désynchronisations, ...

      En plus, c'est gratuit, ça marche avec n'importe quelle base de données (même Oracle!) et sans modifier l'application originale. De plus, c'est clairement annoncé comme une version alpha, donc il y a encore de quoi voire venir.
  • # Autres liens ...

    Posté par . Évalué à 1.

    A noter aussi des discussions à propos de C-JDBC:
    - sur Slashdot: http://developers.slashdot.org/article.pl?sid=03/04/30/1331227&(...)
    - sur TheServerSide: http://www.theserverside.com/home/thread.jsp?thread_id=19114(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.