Frage

Currently studying about replication and I was wondering:

In Passive replication, we have an agreement stage where the Primary replica manager (RM) waits for ack from the backup RM, wouldn't it be possible to handle byzantine failures whereby doing some sort of consensus algorithm? (we could survive f+1 failures in a system of 2f+1)

It would make sense that this is true since in a Active replication system the Frontend of the system would be performing this.

I can find sources telling that byzantine failure can be handeled in a Active replication system, but the same sources are saying that Passive replication systems can't handle byzantine failures.

But by the example I have given, it seems like Passive replication can handle the failures.

War es hilfreich?

Lösung

Active replication is, as you said, able to handle Byzantine failures because replica managers run independently from each other, and the output of the replica managers are gathered at the front end that issued the operation. As long as there are more than two replica managers, the front end can use a majority function to decide on the "correct" value.

However, in passive replication, you can implement a consensus algorithm so all secondary replica managers can agree on an output value. The problem lies in the primary replica manager. The front end has no way to tell if a Byzantine failure has happened at the primary replica manager.

Also, note that a consensus algorithm that can agree on a value in f + 1 rounds, where f denotes the number of tolerated failures, the communication system is required to be synchronous, because termination is never guaranteed in asynchronous systems.

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top