A system and method for effectuating distributed consensus among members of
a processor set in a multiprocessor computing system that is effective
even when only a single surviving processor is operational and is achieved
through joint implementation of a virtual state machine utilizing a
sequence of numbered input commands. System synchronization is achieved by
having all of the processors agree on the sequence of input commands so
that they execute the same virtual state machine. Input commands are
numbered consecutively and the processors use a set of shared stores (e.g.
disk drives) to communicate amongst themselves requests (i.e. ballots) for
new state machine inputs (or commands) and state machine inputs that have
already been chosen (i.e. committed commands). A consensus process is used
to decide upon (or commit) each command and this consensus is achieved
using a majority of known system stores rather than a majority of known
processors. Consequently, when consensus is achieved, it then exists on
the system stores (e.g. the disk drives) and not in the processors.
Ένα σύστημα και μια μέθοδος για τη διανεμημένη συναίνεση μεταξύ των μελών ενός επεξεργαστή θέτουν σε ένα σύστημα υπολογισμού πολυεπεξεργαστών που είναι αποτελεσματικό ακόμα και όταν μόνο ένας ενιαίος επιζών επεξεργαστής είναι λειτουργικός και επιτυγχάνεται μέσω της κοινής εφαρμογής μιας εικονικής κρατικής μηχανής που χρησιμοποιεί μια ακολουθία αριθμημένων εντολών εισαγωγής. Ο συγχρονισμός συστημάτων επιτυγχάνεται από την κατοχή όλων των επεξεργαστών συμφωνεί σχετικά με την ακολουθία εντολών εισαγωγής έτσι ώστε εκτελούν την ίδια εικονική κρατική μηχανή. Οι εντολές εισαγωγής είναι αριθμημένες κατά συνέπεια και οι επεξεργαστές χρησιμοποιούν ένα σύνολο κοινών καταστημάτων (π.χ. κινήσεις δίσκων) για να επικοινωνήσουν μεταξύ τους τα αιτήματα (δηλ. ψήφοι) για τις νέες εισαγωγές κρατικών μηχανών (ή τις εντολές) και τις εισαγωγές κρατικών μηχανών που έχουν επιλεχτεί ήδη (δηλ. δεσμευμένες εντολές). Μια διαδικασία συναίνεσης χρησιμοποιείται για να αποφασίσει για (ή να δεσμεύσει) κάθε εντολή και αυτή η συναίνεση επιτυγχάνεται χρησιμοποιώντας μια πλειοψηφία των γνωστών καταστημάτων συστημάτων παρά μια πλειοψηφία των γνωστών επεξεργαστών. Συνεπώς, όταν επιτυγχάνεται η συναίνεση, υπάρχει έπειτα στα καταστήματα συστημάτων (π.χ. οι κινήσεις δίσκων) και όχι στους επεξεργαστές.