For many years computer applications organized their data between two tiers: memory and storage. The emerging non-volatile memory technologies introduce a third tier.
Non-volatile memory is accessed like volatile memory, using processor load and store instructions, but it retains its contents across power loss like storage.
SAP HANA is at the forefront and pioneers by adopting the latest hardware technologies of Non-Volatile RAM (NVRAM) to evolve in-memory computing even further. Intel DIMM based on 3D XPoint™ technology is fully aligned with the SNIA programming models for NVM and provides support for Block, File, Volume, and Persistent Memory (PM) File mode. SAP HANA focus is on leveraging memory mapping in NVM.PM.FILE mode which enables direct access to persistent memory using CPU instructions.
NVM technology has higher (than DRAM) latencies resulting in slightly lower performance, but it offers cost-efficient store of large data while still providing real-time access.
Key business drivers for bringing NVM to in-memory computing:
- As data volumes keep growing, in-memory databases like SAP HANA require larger capacities. DRAM scaling has slowed significantly and will offer lower capacities.
- Without NVM each restart for an IMDB can take upto 1 hour to load TBs of data to memory.
An excellent candidate for placement in NVRAM is the MAIN-part of SAP HANA column store. It is heavily optimized in terms of compression, leading to a very stable – non-volatile – data structure. Furthermore, the main contains well over 90% of the data footprint in most SAP HANA databases, which means it offers a lot of potential. The main is only changed during the delta merge. Since this process is asynchronous, it significantly lowers the impact of slower write transactions on NVRAM compared to DRAM. Especially since these changes must be written to the – SSD-based – persistency layer anyway. Fewer writes are also favorable in terms of endurance, since NVRAM has a limited number of P/E cycles. Read access to the main involves mostly sequential scan operations, where cache line pre-fetching will mitigate the higher latency of NVRAM.
This design fits HANAs architecture almost perfectly. The separation of write-optimized Delta and read-optimized Main and the characteristics of both areas match the respective strengths and weaknesses of both, DRAM and NVRAM, excellently.
The non-volatility of NVRAM means that, at startup, all data in the column store main (90%+ of all data!) will already be in memory. No more exhausting reloading from the persistency and full performance right from the beginning.
For more details look at SAP HANA Adoption of Non-Volatile Memory.