views:

36

answers:

1

A large number of clients want to check in with a server about once an hour, and don't care exactly when. The server wants to talk to all of the clients, but doesn't want to get overloaded if too many clients check in at the same time.

How should the clients schedule their checkins to keep an even load on the server?

If there's been discussion or writing on this topic before (there probably has, but I don't know what to look for), a link to it may be as good as a direct answer.


Edit: I'm interested in theory, tips, and tricks. For instance, would introducing random jitter or drift into each of the clients' check-in schedule help or hurt?

+1  A: 

If the clients chose their time within the hour using a reasonable random number generation, that ought to keep the load evenly distributed on average. Random numbers can have clustering, however. If the clients have to register/deregister with the server, the server could simply assign each a time slot to check in and then ensure an even distribution, but without some sort of coordination I don't think there's any real way for the clients to guarantee an even load.

qid