Project Tungsten focuses on substantially improving the efficiency of memory and CPU for Spark applications, to push performance closer to the limits of modern hardware. This effort includes three initiatives:1. Memory Management and Binary Processing: leveraging application semantics to manage memory explicitly and eliminate the overhead of JVM object model and garbage collection2. Cache-aware computation: algorithms and data structures to exploit memory hierarchy3. Code generation: using code generation to exploit modern compilers and CPUsProject Tungsten will be the largest change to Spark’s execution engine since the project's inception. In this talk, we will give an update on its progress and dive into some of the technical challenges we are solving.