Data-Driven Performance Optimization For Data-Intensive Applications