Load sharing in distributed systems with failures