A Dynamic Programming Algorithm for Resource Allocation with Data Cache Optimization in Big Data Scenarios | Synapse