algorithme Paxos peut tolérer jusqu'à F échecs lors de l'utilisation de processeurs 2F + 1. Pour autant que je sache, cet algorithme ne fonctionne qu'avec nombre fixe de processeurs. Est-il possible d'utiliser cet algorithme dans un environnement dynamique, où des nœuds peuvent être ajoutés et supprimés dynamiques? P>
4 Réponses :
Si vous avez un nombre maximum absolu de nœuds, il devrait toujours fonctionner. Mais vous étiez laissé avec une situation dans laquelle votre noeud dynamique est 6 votre maximum est 11, donc si 1 nœud échoue à l'emploi de la chance (les nœuds inexistants échouent par défaut). Si vous enlevez et ajoutez des nœuds, vous pouvez restaurer l'état d'un nœud que vous avez supprimé à un nœud que vous ajoutez pour éviter d'être compté comme une défaillance. P>
Oui, il est possible, il y a même des papiers dessus. D'après ce que je me souviens que j'ai lu un peu sur la façon de procéder à ce qu'il a été décrit ici a été décrit ici ici http : //Research.microsoft.com/pubs/64634/web-dsn-submission.pdf espère que c'est ce que vous demandiez. Recherchez "Paxos dynamiques". P>
Dynamic Paxos est un peu effrayant :)
@Lazin en fait pas! J'utilise des Paxos dynamiques et il a été extrêmement stable. L'idée est que vous avez deux machines d'état. Le premier est ce que vous pensez généralement: l'état Paxos doit rester en phase. L'autre machine d'état est la liste des membres des nœuds. Toute instance de Paxos doit utiliser un instantané de la machine à états d'adhésion.
@MichaelDearDeuff Dynamic Paxos devient un peu effrayant lorsque vous introduisez plusieurs paxos. C'est assez trivial lorsque vous l'utilisez avec des paxos à une seule instance.
@Jonbringhurst à nouveau, je suis en désaccord: les machines d'état prennent toute la peur. La machine-machine de configuration se déplace en tandem avec l'état-machine d'application. L'état de configuration indique exactement quels accepteurs sont dans la prochaine instance Paxos. Peu importe que ce soit de base Paxos, Multa-Paxos ou Fast-Multi-Paxos.
Je me débats avec l'alpha dans Dynamic Paoxs. Il semble y avoir une certaine distance arbitraire dans des chiffres d'occurrence où vous savez que chaque nœud a appuyé sur le nouvel état de cluster. Quelqu'un peut-il élaborer comment il est déterminé ou fonctionne dans la pratique?
Aha je pense que je le vois maintenant. Il s'agit essentiellement d'un retard jusqu'à l'instance qui change l'appartenance au cluster est choisie. Ce n'est pas corrigé, c'est juste quand ça arrive. À ce stade, il est corrigé et tout nouveau chef de file d'un accident récupérera cette valeur. Donc, c'est vraiment très simple car @Michael disait.
Le papier Paxos arrondi est un peu plus facile à comprendre et permet une reconfiguration sûre (addition et soustraction de nœuds): http://research.microsoft.com/apps/pubs/default.aspx?id=101826 p>
Oui. GRYADKA est une implémentation JavaScript Paxos prenant en charge la reconfiguration dynamique en 500 lignes. Il est basé sur des idées de Paxos et de radeaux verticaux. P>
La conviction que nous devons étendre Paxos pour que l'adhésion au cluster est sur un terrain très fragile. La version Microsoft Paper de Dynamic Paxos comme indiqué dans la réponse de @ Mateusz ci-dessous suffit. Toutes les implémentations pratiques de Paxos, je suis au courant de la mise à jour de l'état distribué de manière cohérente. Cet état partagé peut trirellement être à la fois l'État de l'application et l'adhésion au cluster. Donc, plutôt que de devoir lire, comprendre et mettre en œuvre une nouvelle approche, toutes les implications pratiques peuvent utiliser "Paximatrice Paxos" et "manger leur propre nourriture pour chien" pour gérer les changements d'adhésion au cluster. Paxos a été conçu pour cela.