• [^] # Re: Avantages / Inconvénients face aux REDIS, MongoDB, ou CouchDB...

    Posté par (site web personnel) . En réponse à la dépêche Libération de FoundationDB. Évalué à 10.

    Globalement, FoundationDB apporte surtout pour les ops : meilleure fiabilité et scalabilité.

    Memcached et Redis stockent l'ensemble des données en mémoire vive, il faut donc avoir plus de mémoire vive sur son cluster de serveurs que de données que l'on veut stocker. Il n'y a pas de garantie de ne pas avoir de perte en cas de crash d'un serveur.

    CouchDB ou MongoDB sont des bases de données de type documents. Elles n'ont pas de notion de transactions : si plusieurs documents sont modifiés, il est possible de se retrouver dans un état où seul l'un de ces documents a été modifié mais pas les autres. Si on prend l'exemple classique d'un mouvement bancaire entre 2 comptes, on peut se retrouver avec un compte qui a été débité mais l'autre compte n'a pas été crédité, l'argent s'est envolé.

    Memcached, Redis, CouchDB et MongoDB sont plus attirants pour les développeurs. Ils proposent un modèle de données de plus haut niveau, plus de fonctionnalités et de types de requêtes. FoundationDB est plus attirant pour les ops : il sait rebalancer les données au sein d'un cluster si on ajoute ou retire un serveur (ou même juste parce qu'il détecte un « hot spot », un serveur qui contient des données beaucoup plus utilisées que d'autres et qui travaille donc plus), il est beaucoup plus robuste (ACID). FoundationDB pourrait devenir intéressant/compétitif pour les développeurs si des layers viennent apporter des modèles de plus haut niveau comparable aux modèles documents de CouchDB et MongoDB. Pour le moment, ce n'est pas encore le cas mais l'ouverture du code est toute récente et il faut laisser un peu de temps à d'éventuels développeurs de s'approprier l'outil.