A method and system are disclosed for enforcing consistency among replicas of a server through the reliable and ordered delivery of client requests via an ordering multicast protocol in association with a deterministic and pre-emptive scheduler in a computer network having at least one client connected to a replicated server. The scheduler enforces an execution order that conforms with the request ordering specified by the multicast protocol. The deterministic scheduler subdivides execution streams into instruction slices such that the number of instructions within each slice is pre-determined. An instruction counter is used to generate an interrupt at the expiration of an instruction slice. A thread is scheduled at the beginning of an instruction slice, such that all scheduling decisions are identical among all server replicas. Therefore, all scheduling decisions are identical everywhere, eliminating the nondeterminism due to time-based scheduling of traditional thread schedulers. The deterministic scheduler also accepts new client requests and creates a thread for every m instruction slices using call admission control windows by waiting for a new multicast request. The new multicast may contain no new requests, in which case the scheduler continues scheduling the existing threads. Otherwise, the thread scheduler admits the new requests and creates new threads to execute them in the order specified by the multicast protocol.
|Original language||English (US)|
|IPC||G06F 15/ 177 A I|
|State||Published - Jul 16 2002|