New APIs for Fusion’s Virtual Storage Layer (VSL) allow developers to optimize applications for Fusion’s ioMemory tier. Using these APIs, developers exploit native properties of ioMemory, which are normally hidden when flash is used as a transparent SSD block device. The Fusion-io Atomic Multi-block Writes API is a prime example. Fusion has built an extension to the MySQL InnoDB storage engine leveraging this API.
Atomic writes guarantee consistency and integrity of data for operations in which a process simultaneously writes multiple non-contiguous storage blocks as a single transaction. Atomicity ensures that operations are completed in their entirety or not at all. MySQL databases normally provide atomicity via a double write buffer that requires all writes happen twice. Fusion’s Atomic Writes extension eliminates the need for this double-write buffer cache, moving the atomicity burden from the application layer into the storage stack. This greatly improves performance, reduces code complexity, and can even double the flash hardware endurance.
Figure 1. Fusion’s Atomic Writes moves the Atomic Write Primitive into the storage stack
Testing of the InnoDB extension observed the following compared to a conventional MySQL environment:
To activate the Atomic Writes feature, database architects apply the extension to the InnoDB transactional storage engine for MySQL, which then creates a new InnoDB source image. Fusion-io is actively collaborating with the MySQL community to make the new Atomic Writes features accessible for widespread use.
Interested in Atomic Writes? Contact a Fusion-io representative, 801.424.5500 or firstname.lastname@example.org.