Getting the most out of flash storage


Keep in mind that CPUs never read information from storage; instead, everything must pass through system memory first. To assist in the process, native PCIe NAND flash devices present storage to the application or database like a disk drive, but they actually deliver the data to the system memory via Direct Memory Access, or DMA. This guarantees the lowest latency transactions between data storage and CPU processing.

By offering server CPUs unrestricted access to flash, native PCIe implementations increase application and database performance 10x. The difference between this cut-through approach and other solid-state offerings is the improvement to application throughput and not just raw media performance. Data placement in the server without legacy storage protocols allows applications to fully utilize server CPUs by not forcing them to wait for slow access to data, as shown in Figure 3.

A native PCIe NAND flash device can be used as a disk drive or a caching device. Both provide significant advantages to conventional disk-based systems.

In disk drive mode, a NAND flash PCIe device can store data as if it were a disk drive itself. This is ideal for databases where the entire data set can be placed on one or more PCIe devices. NAND flash PCIe devices can be aggregated with host OS software or built-in volume management functionality, such as (ASM). Using high- capacity native NAND flash PCIe devices, it is possible to get well over 10 terabytes in a single server -- plenty of capacity to cover a broad market for this approach. Even if the entire data set cannot be placed in flash, most databases allow for the placement of active files such as index files or "hot" tables to be manually placed on a specific data store.