All pages
Powered by GitBook
1 of 4

Fusion-io

This category contains information about Fusion-io support in MariaDB

Fusion-io Introduction

Fusion-io develops PCIe based NAND flash memory cards and related software that can be used to speed up MariaDB databases.

The ioDrive branded products can be used as block devices (super-fast disks) or to extend basic DRAM memory. ioDrive is deployed by installing it on an x86 server and then installing the card driver under the operating system. All main line 64-bit operating systems and hypervisors are supported: RHEL, CentOS, SuSe, Debian, OEL etc. and VMware, Microsoft Windows/Server etc. Drivers and their features are constantly developed further.

ioDrive cards support software RAID and you can combine two or more physical cards into one logical drive. Through ioMemory SDK and its APIs, one can integrate and enable more thorough interworking between your own software and the cards - and cut latency.

The key differentiator between a Fusion-io and a legacy SSD/HDD is the following: A Fusion-io card is connected directly on the system bus (PCIe), this enables high data transfer throughput (1.5 GB/s, 3.0 GB/s or 6GB/s) and the fast direct memory access (DMA) method can be used to transfer data. The ATA/SATA protocol stack is omitted and therefore latency is cut short. Fusion-io performance is dependent on server speed: the faster processors and the newer PCIe-bus version you have, the better is the ioDrive performance. Fusion-io memory is non-volatile, in other words, data remains on the card even when the server is powered off.

Use Cases

  1. You can start by using ioDrive for database files that need heavy random access.

  2. Whole database on ioDrive.

  3. In some cases, Fusion-io devices allow for atomic writes, which allows the server to safely disable the doublewrite buffer.

  4. Use ioDrive as a write-through read cache. This is possible on server level with Fusion-io directCache software or in VMware environments using ioTurbine software or the ioCache bundle product. Reads happen from ioDrive and all writes go directly to your SAN or disk.

  5. Highly Available shared storage with ION. Have two different hosts, Fusion-io cards in them and share/replicate data with Fusion-io's ION software.

  6. The luxurious Platinum setup: MariaDB Galera Cluster running on Fusion-io SLC cards on several hosts.

Atomic Writes

Starting with MariaDB 5.5.31, MariaDB Server supports atomic writes on Fusion-io devices that use the NVMFS (formerly called DirectFS) file system. Unfortunately, NVMFS was never offered under ‘General Availability’, and SanDisk declared that NVMFS would reach end-of-life in December 2015. Therefore, NVMFS support is no longer offered by SanDisk.

MariaDB Server does not currently support atomic writes on Fusion-io devices with any other file systems.

See atomic write support for more information about MariaDB Server's atomic write support.

Future Suggested Development

  • Extend InnoDB disk cache to be stored on Fusion-io acting as extended memory.

Settings For Best Performance

Fusion-io memory can be formatted with different sector size of either 512 or 4096 bytes. Bigger sectors are expected to be faster, but only if I/O is done in blocks of 4KB or multiples of that. Speaking of MariaDB: if only InnoDB data files are stored in Fusion-io memory, all I/O is done in blocks of 16K and thus 4K sector size can be used. If the InnoDB redo log (I/O block size: 512 bytes) goes to the same Fusion-io memory, then short sectors should be used.

Note: XtraDB has the experimental feature of an increased InnoDB log block size of 4K. If this is enabled, then both redo log I/O and page I/O in InnoDB will match a sector size of 4K.

As of file systems: currently XFS is expected to yield the best performance with MariaDB. However depending on the exact kernel version and version of XFS code in use, one might be affected by a bug that severely limits XFS performance in concurrent environments. This has been fixed in kernel versions above 3.5 or RHEL6 kernels kernel-2.6.32-358 or later (because of bug 807503 being fixed).

For the pitbull machine where I have run such tests, ext4 was faster than xfs for 32 or more threads:

  • up to 8 threads xfs was few percent faster (10% on average).

  • at 16 threads it was a draw (2036 tps vs. 2070 tps).

  • at 32 threads ext4 was 28% faster (2345 tps vs. 1829 tps).

  • at 64 threads ext4 was even 47% faster (2362 tps vs. 1601 tps).

  • at higher concurrency ext4 lost it’s bite, but was still constantly better than xfs.

Those numbers are for spinning disks. I guess for Fusion-io memory the XFS numbers will be even worse.

Example Configuration

GE-Fusionio-MariaDB

Card Models

There are several card models. ioDrive is older generation, ioDrive2 is newer. SLC sustains more writes. MLC is good enough for normal use.

  1. ioDrive2, capacities per card 365GB, 785GB, 1.2TB with MLC. 400GB and 600GB with SLC, performance up to 535000 IOPS & 1.5GB/s bandwidth

  2. ioDrive2 Duo, capacities per card 2.4TB MLC and 1.2TB SLC, performance up to 935000 IOPS & 3.0GB/s bandwidth

  3. ioDrive, capacities per card 320GB, 640GB MLC and 160GB, 320GB SLC, performance up to 145000 IOPS & 790MB/s bandwidth

  4. ioDrive Duo, capacities per card 640GB, 1.28TB MLC and 320GB, 640GB SLC, performance up to 285000 IOPS & 1.5GB/s bandwidth

  5. ioDrive Octal, capacities per card 5TB and 10TB MLC, performance up to 1350000 IOPS & 6.7GB/s bandwidth

  6. ioFX, a 420GB QDP MLC workstation product, 1.4GB/s bandwidth

  7. ioCache, a 600GB MLC card with ioTurbine software bundle that can be used to speed up VMware based virtual hosts.

  8. ioScale, 3.2TB card, building block to enable all-flash data center build out in hyperscale web and cloud environments. Product has been developed in co-operation with Facebook.

Additional Software

  • directCache - transforms ioDrive to work as a read cache in your server. Writes go directly to your SAN

  • ioTurbine - read cache software for VMware

  • ION - transforms ioDrive into a shareable storage

  • ioSphere - software to manage and monitor several ioDrives

See Also

  • FusionIO atomic-series devices

This page is licensed: CC BY-SA / Gnu FDL

MariaDB 10.0.15 Fusion-io Changelog

DownloadRelease NotesChangelogFusion-io Introduction

Release date: 12 Dec 2014

For the highlights of this release, see therelease notes.

The revision number links will take you to the revision's page on Launchpad. On Launchpad you can view more details of the revision and view diffs of the code modified in that revision.

  • Revision #4009 Thu 2014-12-04 13:19:51 +0200

    • MDEV-7262: innodb.innodb-mdev7046 and innodb-page_compression* fail on BuildBot

  • Revision #4008 Wed 2014-12-03 13:23:42 +0200

    • Fix problem with trims.

  • Revision #4007 Wed 2014-12-03 12:05:00 +0200

    • Fix compiler error on fallocate and flags used.

  • Revision #4006 Tue 2014-12-02 20:26:21 +0200

    • Fix buildbot valgrind errors on test innodb.innodb-page_compression_tables

  • Revision #4005 [merge] Mon 2014-12-01 11:52:51 +0200

    • Merge MariaDB 10.0.15 from lp:maria/10.0 up to revision 4521

  • Revision #4004 Mon 2014-11-24 12:08:45 +0200

    • MDEV-7166: innodb.innodb-page_compression_zip fails in buildbot

  • Revision #4003 Wed 2014-11-19 20:20:31 +0200

    • MDEV-7133: InnoDB: Assertion failure in dict_tf_is_valid

  • Revision #4002 Wed 2014-11-12 10:06:39 +0200

    • MDEV-7088: Query stats for compression based on TRIM size

  • Revision #4001 Fri 2014-11-07 12:06:53 +0200

    • Move debug output inside a UNIV_DEBUG.

  • Revision #4000 Tue 2014-11-04 17:20:27 +0200

    • Fix posix_fallocate error message and add temporal debug output to resolve the problems on trim.

  • Revision #3999 Tue 2014-11-04 11:37:55 +0200

    • Fixed trim operation alligment problem.

  • Revision #3998 Wed 2014-10-29 08:51:17 +0200

    • MDEV-6648: InnoDB: Add support for 4K sector size if supported

  • Revision #3997 [merge] Mon 2014-10-20 11:34:21 +0300

    • Merge MariaDB 10.0.14 from lp:maria/10.0 up to revision 4116.

  • Revision #3996 [merge] Tue 2014-09-23 12:46:21 +0300

    • Merge MariaDB 10.0.13 i.e. lp:maria/10.0 up to revision 4346.

  • Revision #3995 Wed 2014-08-27 15:39:05 +0300

    • Fix small error on LZMA compression failure error message.

  • Revision #3994 Thu 2014-08-07 13:40:00 +0300

    • MDEV-6548: Incorrect compression on LZMA.

  • Revision #3993 Thu 2014-07-31 11:47:21 +0300

    • Merge MariaDB 10.1 -> 10.0-FusionIO

  • Revision #3992 Wed 2014-07-23 12:03:48 +0300

    • Fix default value for innodb-compression-algorithm to be 0 (uncompressed) to avoid test failures.

  • Revision #3991 Mon 2014-07-21 21:17:58 +0300

    • MDEV-6354: mplement a way to read MySQL 5.7.4-labs-tplc page compression format (Fusion-IO).

  • Revision #3990 [merge] Sat 2014-06-28 13:10:57 +0300

    • Merge lp:maria/10.0 up to MariaDB 10.0.12 i.e. revision 4252.

  • Revision #3989 Fri 2014-06-27 17:32:03 +0300

    • MDEV-6392: Change innodb_have_lzo and innodb_have_lz4 as a static variables and reduce the number of ifdef's

  • Revision #3988 Thu 2014-06-26 07:50:48 +0300

    • MDEV-6361: innodb_compression_algorithm configuration variable can be set to unsupported value.

  • Revision #3987 Mon 2014-05-26 20:42:06 +0200

    • compilation failure on Win64

  • Revision #3986 Mon 2014-05-26 20:41:10 +0200

    • use ENUM not ULONG for innodb-compression-algorithm command-line option

  • Revision #3985 Mon 2014-05-26 20:31:03 +0200

    • compilation failure on Windows

  • Revision #3984 Mon 2014-05-26 20:27:14 +0200

    • don't include the file that 1) not present everywhere 2) not used anyway

  • Revision #3983 Mon 2014-05-26 20:26:51 +0200

    • temporarily disable lzo compression

  • Revision #3982 Mon 2014-05-26 20:26:04 +0200

    • lzo.cmake: don't use the same symbol for two different tests

  • Revision #3981 Fri 2014-05-23 08:20:43 +0300

    • Fix compiler warnings.

  • Revision #3980 Thu 2014-05-22 21:03:26 +0300

    • Fix compiler error if LZO is not installed.

  • Revision #3979 Thu 2014-05-22 19:48:34 +0300

    • Fixed compiler errors caused by merge error.

  • Revision #3978 Thu 2014-05-22 16:31:31 +0300

    • Fix some compiler warnings and small errors on code.

  • Revision #3977 Fri 2014-05-16 15:30:13 +0300

    • Code cleanup after review.

  • Revision #3976 Mon 2014-04-28 07:52:41 +0300

    • Fixed small error on compression failure error text.

  • Revision #3975 Wed 2014-04-23 19:23:11 +0300

    • Fixed bug on free buffer space calculation when LZO is used. Fixed bug on function call when InnoDB plugin is used.

  • Revision #3974 [merge] Thu 2014-04-17 08:22:54 +0300

    • Merge lp:maria/10.0 up to MariaDB 10.0.10 revision 4140.

  • Revision #3973 Wed 2014-04-16 16:55:36 +0300

    • MDEV-6070: FusionIO: Failure to create a table with ATOMIC_WRITES option leaves the database in inconsistent state,

  • Revision #3972 Tue 2014-04-15 14:28:25 +0300

    • Added support for LZO compression method.

Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.

MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.

This page is licensed: CC BY-SA / Gnu FDL

MariaDB 10.0.15 Fusion-io Release Notes

Note: This page describes features in an unreleased version of MariaDB.Unreleased means there are no official packages or binaries available for download which contain the features. If you want to try out any of the new features described here you will need to get and compile the code yourself.

DownloadRelease NotesChangelogFusion-io Introduction

Release date: 12 Dec 2014

For an overview of MariaDB 10.0 Fusion-io see theFusion-io Introduction page.

Thanks, and enjoy MariaDB!

Notable Changes

Since the MariaDB 10.0.9 Fusion-io preview release, the following notable changes have been made.

  • Merged with MariaDB 10.0.15 release

  • Added support for 4K sector size if supported

    • Added status variables for 1K, 2K, 4K, 8K, 16K, and 32K trims

  • Added innodb-compression-algorithm configuration variable to select default compression method

  • Added support for

    • LZO compression

    • LZMA compression

    • bzip2 compression

Other Changes

For a complete list of changes made in MariaDB 10.0.15 Fustion-io, with links to detailed information on each push, see the changelog.

Be notified of new MariaDB Server releases automatically by subscribing to the MariaDB Foundation community announce 'at' lists.mariadb.org announcement list (this is a low traffic, announce-only list). MariaDB plc customers will be notified for all new releases, security issues and critical bug fixes for all MariaDB plc products thanks to the Notification Services.

MariaDB may already be included in your favorite OS distribution. More information can be found on the Distributions which Include MariaDB page.

This page is licensed: CC BY-SA / Gnu FDL