The Streaming Batch Model for Efficient and Fault-Tolerant Heterogeneous Execution