April 18th, 2012 by Brian Beeler
Fusion-io ioMemory SDK Supports Native Flash Memory Access
Fusion-io has used DEMO Spring 2012 to launch their ioMemory SDK which offers software developers unprecedented native access to ioMemory flash storage. This means developers will be able to optimize web, enterprise and big data applications through direct access to the ioMemory layer for the first time. The net result is the tightest possible integration between these customized applications and Fusion-io's storage solutions; which leads to levels of application acceleration that simply haven't existed prior. StorageReview was on hand at today's DEMO presentation where Brent Compton, Senior Director of Product Management and Nisha Talagala, Lead Software Architect from Fusion-io showed off the benefits of the new technology with Citrusleaf's NoSQL application with their CTO and founder Brian Blukowski.
The idea of allowing direct access to the ioMemory tier isn't entirely new, Fusion-io presented at DEMO: Enterprise in January, showing they could deliver one billion IOPS running on Auto Commit Memory, which proved the benefit of running applications natively on ioMemory. Fusion-io used eight HP ProLiant DL370 servers equipped with eight ioDrive2 Duos to reach the one billion IOP barrier when transferring 64 byte data packets. The new SDK takes this dramatic acceleration opportunity and puts it in the hands of developers who want to maximize application performance.
Flash Storage to This Point
The way traditional flash devices have worked up to this point is as a standard block-device interfacing through legacy standards that introduce latency penalties along the way. As applications push the boundaries of storage devices, developers are hitting performance walls that are inherent to even high-performance storage devices.
Flash on SSDs (as the name Solid State Drive correctly implies) is hidden behind a SATA or SAS interface, obfuscating the NAND capabilities for compatibility reasons. Even as we look at current PCIe flash solutions on the market, most still use a PCIe to SAS interface to work with existing driver sets, blocking access to the flash. This is the area Fusion-io has been fundamentally different from competing solutions, giving the computer full access to the flash memory device, emulating a block-device through the ioMemory OS subsystem. It is also part of the reason why they don't call their products SSDs, but instead ioMemory Application Accelerators. Changing to a NAND native device is only a matter of adjusting the software, not completely redesigning the hardware layout.
Next Generation Flash Technologies
The ioMemory SDK libraries give direct programmatic access to flash access patterns and data organization methods. The SDK features APIs including the Key-Value Store, which will offer interfaces to reduce latency, increase memory efficiency and reduce code complexity. The directFS API provides native file-access semantics to ioMemory through a POSIX-compliant file system. Like the native API libraries, directFS is implemented directly on ioMemory, significantly reducing latency by entirely bypassing operating system buffer caches, file system and kernel block I/O layers. Fusion-io directFS will be released as a working example of an application running natively on ioMemory to help developers explore the use of Fusion-io APIs.
Growing the Market
Of course Fusion-io is primed to reap large dividends as software companies optimize their code specifically for Fusion-io's hardware, like the recently announced Fusion ioFX. As giants like Adobe roll out support for the ioFX, Fusion-io gains access to installations that they haven't had prior. While Fusion-io's largest customers like Facebook, Apple and Salesforce.com have long benefitted from customized application acceleration, the new SDK and ioFX products can pull the entire company into downstream markets that are entirely new.
Fusion-io libraries and APIs are now available through the Fusion-io Developer Program.