An algorithm to implement multithreaded active replicated servers in a transactional setting has been presented.
Replicated servers have been implemented by means of replicated groups.
Clients send requests are multicast to servers.
The multicast used is a reliable fifo and totally ordered multicast.
With this kind of multicast all the replicas observe the same external events in the same order.
Additionally, a deterministic scheduling algorithm has been used to ensure the consistency of the multithreaded replicas.
The scheduling algorithm is based on the use of three queue levels that guarantee that only the minimum set of messages is always considered both at global and transactional levels.
This scheduling approach also deals with selective reception in a deterministic way.