A programming model and foundation for lineage-based distributed computation. (12th March 2018)