Failure-awareness and dynamic adaptation in data scheduling