Designing Scalable Storage Systems For Non-Volatile Memory