Starfish is a self-tuning system for big data analytics. Starfish builds on Hadoop while adapting to user needs and system workloads to provide good performance automatically, without any need for users to understand and manipulate the many tuning knobs in Hadoop.

The novelty in Starfish's approach comes from how it focuses simultaneously on different workload granularities---overall workload, workflows, and jobs (procedural and declarative)---as well as across various decision points---provisioning, optimization, scheduling, and data layout. This approach enables Starfish to handle the significant interactions arising among choices made at different levels.