A Failure Detection and Notification Protocol for Distributed Computing Systems