Toshiba Revs Up SQL Server With Flash Accelerator
Toshiba and SanDisk are partners in the manufacturing of NAND flash memory but in January, Toshiba acquired OCZ Storage Solutions, a maker of flash-based SAS and SATA drives and PCI flash cards, and with the just-completed acquisition of Fusion-io, SanDisk now sells SAS and SATA flash drives as well as PCI flash cards. PCZ has just upgraded its ZD-XL flash cards, which have been tuned specifically to accelerate Microsoft SQL Server databases.
Specifically, the new ZD-XL SQL Accelerator 1.5 flash card from Toshiba's OCZ unit is tuned up to take advantage of many of the new features of the SQL Server 2014 database that Microsoft released in March. Fusion-io has been working with the MySQL community to tightly couple its ioMemory flash cards with that open source database, and has similarly worked with Microsoft to accelerate SQL Server 2014.
The ZD-XL PCI flash cards are based on Toshiba's 19 nanometer multi-level cell NAND flash and come in a fully height, half-length form factor that plugs into a PCI-Express 2.0 x8 slot and that looks like a SATA device as far as the operating system or hypervisor is concerned. The ZD-XL SQL Accelerator 1.5 comes in three capacities: 800 GB, 1.6 TB, and 3.2 TB. With the fattest 3.2 TB model, the maximum read throughput is 2.900 MB/sec and the maximum write throughput is 2,200 MB/sec. With 8 KB file sizes, it can sustain up to 31,000 I/O operations per second on random writes and up to 155,000 IOPS on random reads.
While the hardware is interesting, it is the integration with SQL Server 2014 that allows Toshiba to charge a premium for this flash card. There are a couple of scenarios where adding flash underneath SQL Server can radically boost performance:
The OCZ card supports the Buffer Pool Extension (BPE) feature of SQL Server 2014, which allows database pages to be stored on flash memory for faster access than is possible from disk. (Like many orders of magnitude faster.) The BPE feature activates flash pools at the SQL Server instance level, but the OCZ card offers finer-grained control and can move buffer pools for specific databases into flash for acceleration. Incidentally, this feature of the ZD-XL SQL Accelerator 1.5 card can be used to extend Buffer Pool Extension support to earlier releases of SQL Server, including SQL Server 2008 and SQL Server 2012.
The controller embedded in the OCZ flash card allows for the flash memory to be deployed as a local flash volume, which can be used for databases that fit inside of the card's capacity, or as a flash cache for disk-based database volumes. (You can also combine the two approaches.) When a database is larger than the flash capacity, the card uses a feature called Direct Pass Caching Technology, which knows the difference between transactional and analytical databases, which have different query access patterns, and uses this knowledge to move data from disk arrays underlying the databases to the flash memory. The card's controller is also aware of the AlwaysOn high availability clustering feature of SQL Server, allowing for data stored on a card in the primary server to be replicated to a card (either synchronously or asynchronously, depending on the distance and latency) in a secondary machine. The active/active feature of AlwaysOn clustering allows for data to be written and read from the primary machine and for read-only queries to be run on the secondary machine. Finally, the ZD-XL SQL Accelerator 1.5 card has remote flash services, which allows for an outboard server or enclosure equipped with flash cards to function as flash storage for SQL Server for blade and rack servers that may not have room for the flash cards to be put under their metal skins. This remote flash is enabled through the Direct Pass Caching Technology engine in the OCZ controller.
So where does the SQL Server rubber meet the OCZ flash card road? Toshiba did some internal transaction processing tests simulating the TPC-C benchmark. Here is the first one:
On a machine with 50 virtual users, the baseline machine using disks without any flash acceleration was able to handle a mere 44,831 transactions per minute, but as you can see, putting the ZD-XL SQL Accelerator 1.5 card inside of the server running SQL Server 2012 (it is not clear why the test was not run on SQL Server 2014) allows the same server to handle over 1 million transactions per minute, or a factor of 22X improvement in throughput. And putting the flash card in a remote server and linking to it over the network using the Direct Pass Caching Technology engine boosted the performance to 821,976 transactions per minute, or an 18X improvement.
On a separate test, the server node running SQL Server put its data on a storage area network and the OCZ flash card was set up to be a flash cache for the SAN, keeping hot data closer to the server. Here's how the performance scaled as virtual users were added to the system, both with and without flash caching:
The ZD-XL SQL Accelerator 1.5 card is supported on Windows Server 2008, 2012, and 2012 R2 versions and their Hyper-V equivalents including the Hyper-V 3.0 that is paired with Windows Server 2012. It can also be deployed in conjunction with VMware's ESXi 4.1, 5.0, 5.1, and 5.5 hypervisors, and as noted above, can host databases created by SQL Server 2008 R2, 2012, 20012 R2, and 2014.
The 800 GB version of the flash card costs $2,944, while the 1.6 TB version costs $4,758 and the 3.2 TB version costs $8,167. (Those are single-unit manufacturer's suggested retail prices through Toshiba channel partners.) Just for the sake of comparison and fun, it takes 121 disk drives to match the IOPS of the 3.2 TB version of the card, which consumes 22 watts. Those 121 disk drives consume 1.77 kilowatts and while they do have 36.3 TB pf capacity, they also cost $48,842. Obviously, the capacity is cheaper with disk, but the IOPS is cheaper with flash and the space is a lot smaller and so is the power consumption.