Le DJ qui voulait être cohérent
Jojo Beat et Jojo EnMousse, les deux DJs qui souhaitent mettre en place une plate-forme de partage de musique entre les différents DJs du monde n'arrivent pas à se mettre d'accord sur comment configurer leur cluster.
Jojo Beat est persuadé qu'il va y avoir énormément de monde qui va utiliser cette plate-forme, et pense qu'il serait bon d'avoir un système robuste face aux pannes, et qui puisse être le plus cohérent possible, quitte à perdre un peu de performance.
Jojo EnMousse lui par contre pense que l'équipement qu'ils achètent est le plus haut de gamme, qu'il ne tombera jamais en panne, et que ça ne sert à rien de perdre de la performance. Pour lui, autant ne pas répliquer les données, cela ne sert à rien.
Ainsi, n'arrivant pas à se mettre d'accord, les deux essaient de mettre en place les solutions, afin de montrer à l'autre qu'il a tort.
Commençons dans un premier temps à nous pencher sur la solution que Jojo Beat souhaite mettre en place, à savoir avoir un système cohérent et robuste face aux pannes.
Question
Il faut commencer par vérifier que nos nœuds dans le cluster de CCM fonctionnent toujours. Pour cela, utiliser la commande "ccm status".
Question
Se connecter au nœud 1 avec CQLSH afin de pouvoir commencer à faire des requêtes.
Question
Question
Question
Question
Quitter CQLSH avec la commande "quit". Puis afficher la table des tokens dans le cluster.
Question
Nous pouvons savoir exactement dans quel nœud va être répliquée une insertion avec la commande suivante.
Testez la commande suivante. Qu'en déduisez vous ?
Question
Maintenant que nous savons que notre dernier insert se trouve dans les nœuds 3 / 4 / 5, imaginons que le nœud 3 tombe en panne. Pourrons nous toujours avoir accès aux valeurs de la table remix sachant que le Consistency Level est à ONE ?
Question
Vérifiez le Consistency Level.
Question
Question
Faites plusieurs updates, et regarder les modifications faites dans la table system.hints.
Question
Question
Quittez CQLSH. Remettez le nœud 3 en route, et reconnectez vous au nœud 1 en CQLSH. Regardez le contenu de la table system.hints. Que déduisez-vous ?