Emerging non-volatile memories (NVMs) like battery-backed DRAM and phase-change memory offer durability at higher speeds than traditional storage. Each technology represents a different point in the cost, performance and endurance space. In this paper, we propose that storage intensive applications use more than one kind of NVM in configurable proportions to strike a balance between cost, performance and endurance.
Furthermore, in virtualized environments, we show that a fixed ratio of different NVMs across co-located applications may not be ideal. We propose a new resource allocation and scheduling algorithm to enable cloud providers to help co-located applications use different proportions of NVM while meeting latency and capacity requirements. We evaluate the proposed design by simulating several storage intensive workloads and demonstrate average cost savings of 33% for cloud providers while degrading performance by only 4% and not violating any service-level agreements. Compared to conventional scheduling algorithms, the proposed scheduling algorithm reduces a cloud provider’s penalty cost and operation cost by more than 20%, 50%, and 50% at low, medium, and
high server loads.