A method and system for forming a new cluster of servers having state data
that is consistent with the state data of a cluster that previously
existed. The previous cluster preserves its state data by recording
transactions to a log file in conjunction with a sequence number
maintained by each node. The node that recorded the transaction then
increments its copy of the sequence number and attempts to replicate the
transaction to other nodes of the cluster. If the transaction is
replicated, each other node commits the transaction and increments its
sequence number. If the node fails before it can replicate the
transaction, then no other nodes will increment their sequence numbers,
whereby the next logged transaction has the same sequence number as the
previously logged, but orphaned replicated transaction. When a new node
forms a cluster, it unrolls the log file so as to become consistent with
the state of the previous cluster. Logged transactions having duplicate
sequence numbers indicate that the first such transaction was not fully
replicated. To remain consistent, the first transaction is discarded and
not used to update the state of the new cluster.
Une méthode et un système pour former un nouveau faisceau des serveurs ayant des données d'état qui sont conformées aux données d'état d'un faisceau qui a précédemment existé. Le faisceau précédent préserve ses données d'état par des transactions d'enregistrement à un dossier de notation en même temps qu'un nombre d'ordre maintenu par chaque noeud. Le noeud qui a enregistré les incréments de transaction puis sa copie du nombre et des tentatives d'ordre de replier la transaction à d'autres noeuds du faisceau. Si la transaction est repliée, noeud commet la transaction et les incréments son nombre d'ordre. Si le noeud échoue avant qu'il puisse replier la transaction, alors autre noeud n'incrémentera pas leurs nombres d'ordre, par lequel la prochaine transaction notée ait le même nombre d'ordre comme précédemment notée, mais transaction repliée perdue ses parents. Quand un nouveau noeud forme un faisceau, il déroule le dossier de notation afin de devenir conformé à l'état du faisceau précédent. Les transactions notées ayant des nombres d'ordre doubles indiquent que le premier une telle transaction n'a pas été entièrement replié. Pour demeurer conformée, la première transaction est jetée et pas employée pour mettre à jour l'état du nouveau faisceau.