Impact sur les Performances

La lecture pour le client

Pour les valeurs de CL :

  • ONE : Une augmentation du RF améliore les performances en lecture du point de vue du client. Il y a plus de chance que le client demande la donnée à un nœud qui la contient et donc cette dernière serait retournée plus rapidement. GAIN

  • QUORUM/ALL : Une augmentation du RF augmenterai le nombre de nœuds devant être consultés avant que la donnée ne soit retournée, ce qui augmente le temps de réponse. PERTE

L'écriture pour le client

Pour les valeurs de CL :

  • ONE : Une augmentation du RF n'impacte pas le temps mis par le cluster à valider l'écriture du client. (le noeud sur lequel la donnée va être écrite dépend de la clé de partition et non du RF). IDEM

  • QUORUM/ALL : Une augmentation du RF augmenterai le nombre de nœuds devant valider l'écriture de la donnée avant que la validation d'écriture ne soit retournée au client, ce qui augmente le temps de réponse. PERTE

Pour le cluster

  • Une augmentation du CL se traduit par davantage de communication inter-nœuds. PERTE

  • Une augmentation du RF diminue la communication inter-nœuds en lecture. GAIN

  • Une augmentation du RF augmente la communication inter-nœuds en écriture. PERTE

Fondamental

Il est donc fondamental de connaître le domaine d'application du cluster.

S'il est important que le client ait une réponse extrêmement rapide même s'il la réponse peut être erronée alors un RF élevé et un CL à ONE semblent être appropriés.

S'il est important que le client ait une réponse rapide même s'il la réponse peut être erronée alors un RF faible et un CL à ONE semblent être appropriés.

S'il est important que le client ait une réponse extrêmement fiable quitte à être lente alors un RF élevé et un CL à ALL semblent être appropriés.

Plus la tolérance aux pannes doit être faible, plus le RF doit être important et le CL faible.

Complément

Dans l'exemple précédent, avec le CL à ALL, si un des nœuds 3, 4, 5 avait été en panne, alors la requête n'aurait pas fonctionnée. En effet tous les nœuds contenant la donnée doivent répondre à la requête pour que celle-ci passe. Donc il n'y a pas de tolérance aux pannes.

Néanmoins, si nous avions mis le CL à ONE, alors il aurait pu y avoir de l'incohérence. Il aurait simplement fallu que le nœud 3 renvoie sa valeur, qui est à 4. Or la valeur vraie est 6.

Pour faire le compromis entre la tolérance aux pannes et la cohérence de données, un CL à QUORUM semble être idéal. C'est d'ailleurs le plus utilisé dans la pratique.

Remarque

En pratique, le QUORUM est souvent utilisé.