HeterMM: applying in-DRAM index to heterogeneous memory-based key-value stores