A Deeper Look at POWER8 CAPI and Data Engine for NoSQL
A Deeper Dive
To fully understand the Data Engine for NoSQL solution, look at its elements. The hardware, shown in Figure 1, provides a high-throughput, low-latency connection to a flash memory array to create a unique memory tier that addresses the scaling issues of NoSQL deployments. The design enables the processor main memory to provide fast response times by using main memory to cache or hold essential data. The solution provides an application with access to 40 TB of flash memory using the IBM FlashSystem 840 storage solution. Use of two flash arrays can provide 80 TB of storage. The flash array is attached using a CAPI adapter card to provide a high-bandwidth, low-latency path between the processor and the flash memory. The adapter accomplishes this by using an FPGA chip and fiber channel I/O ports. The updatable and upgradable FPGA device contains purpose-built logic for management and access control of the attached FlashSystem storage array. Providing the POWER8 processors with direct access to both DRAM and flash enables application software to adjust memory and flash usage ratios to optimize performance and cost based on the specific service-level agreements.
The Data Engine for NoSQL software, shown in Figure 2, provides the application with direct access to the flash memory through a set of developer APIs that provide a key value and raw block I/O interfaces to manage and access the data in flash memory. The total software package has four components:
- Management layer: Consists of the initialization scripts invoked at system boot and shutdown
- Master context: Daemon that initializes the adapter, completes logical unit number (LUN) discovery and mapping, performs error recovery and health checking, addresses uncorrectable errors, and manages link events on behalf of client application software
- Block I/O APIs: Handle read/write requests for specific blocks and issue commands directly to the AFU to read/write data on a logical address in flash memory as well as the responses for those requests
- Key-value storage APIs: Provide a generic key-value database that forms the bridge between Redis and the block I/O APIs
Faster and Simpler
CAPI is an IBM innovation that enables clients to accelerate workloads on FPGAs faster and simpler than ever before. CAPI is available only on POWER8 systems. Through a unique hardware investment and OS additions, CAPI on POWER8 processors provides clients with a customizable acceleration engine that runs as a peer to the POWER8 cores. It accesses memory using the same programming methods and virtual address space as the application that calls it.
With vast market opportunities for acceleration offload engines and hybrid computing, CAPI will grow in a diverse set of markets. To enable these opportunities, clients can create CAPI solutions for their own IT organizations while other partners can build prepackaged solutions to resell to clients. IBM will also sell CAPI-based IT solutions, starting with the IBM Solution for Flash Optimized NoSQL.
The Data Engine for NoSQL is one of the solutions leveraging the CAPI innovation by enabling middleware and application developers’ access to a new tier of storage based on flash technology attached to the POWER8 processor in the same memory space. This solution effectively brings flash memory “closer” to the processor. The hardware and software solution provides a cost-performance range that enables IT solution providers to optimize for their specific solution need.