TeraHeap extends the JVM to use a second, high-capacity heap over a fast storage device that coexists with the regular heap. TeraHeap provides direct access to objects on the second heap. It also reduces GC cost by fencing the garbage collector from scanning the second heap. TeraHeap leverages frameworks’ property of choosing specific objects for off-heap placement and offers frameworks a hint-based interface for moving such objects to the second heap.