1. A method comprising: identifying, using one or more processors of a computing system, a first job and a set of one or more antecedent jobs of the first job, wherein each antecedent job in the set of one or more antecedent jobs has been executed to completion or failure and produced data that was directly or indirectly consumed by the first job; identifying, using the one or more processors, a second job in the set of one or more antecedent jobs, wherein the second job produced invalid data that was directly or indirectly consumed by the first job; identifying, using the one or more processors, a set of one or more descendant jobs of the second job, wherein each descendant job in the set of one or more descendant jobs has been executed to completion or failure and directly or indirectly consumed the invalid data produced by the second job; and invalidating, using the one or more processors, the second job and each descendant job in the set of one or more descendant jobs.