СУБД MySQL в реализации от Percona работает быстрее с SSD ScaleFlux и есть замеры, подтверждающие это. В сравнительных тестах ScaleFlux CSD 2000 оказался почти в 3 раза быстрее, чем Intel DC P4610 (на определенных рабочих нагрузках, разумеется).
Основная идея ScaleFlux проста — отдельные аппаратные блоки в накопителях могут выполнять некоторые операции быстрее, чем сам сервер, где эти накопители находятся: сжатие/распаковка, перекодирование видео и тому подобное. В частности, ScaleFlux CSD 2000 поддерживает аппаратное сжатие GZIP, которое эффективно удваивает емкость и обеспечивает на 40-70 процентов больше операций ввода-вывода в секунду, чем аналогичные твердотельные NVMe-накопители при смешанных рабочих нагрузках чтения-записи OLTP.
В своих совместных тестах Percona и ScaleFlux сравнили CSD 2000 с твердотельным накопителем Intel DC P4610 емкостью 3,2 Тбайт (64-слойная TLC 3D NAND + NVMe PCIe 3.1 x4). Модель CSD 2000 во многом похожа на него: интерфейс NVMe PCIe 3.0, ёмкость 4 Тбайт, чипы памяти TLC 3D NAND. Однако у неё есть FPGA, выполняющий функции обработки данных (сжатие и кодирование) и функции ускорения для баз данных.
База данных Percona имеет буфер «DoubleWrite» для защиты от потери и повреждения данных, в котором набор страниц извлекается из буфера и хранится до тех пор, пока данные не будут окончательно записаны в базу данных. Твердотельный накопитель CSD 2000 имеет функцию «атомарной записи», которая делает двойной буфер избыточным и его можно отключить, что значительно ускоряет запись в базу данных. Intel P4610 не имеет функции атомарной записи.
Ниже представлены результаты тестов двух накопителей в Sysbench, причем CSD 2000 был протестирован как с функцией двойного буфера, так и без нее, а для накопителя Intel отдельно сделан тест со сжатием данных силами самого сервера:
По диаграммам видно, что по мере увеличения потоков от 8 до 256 преимущество ScaleFlux растет, при этом атомарная запись становится значительным фактором при 64 потоках и выше (темно-синий столбец). Отключение Percona DoubleWrite позволило CSD 2000 повысить производительность при 64 потоках с 2000 запросов в секунду до более чем 2700. При количестве потоков от 64 до 128 накопитель ScaleFlux почти в три раза быстрее, чем Intel.
Идея переноса вычислений «ближе к данным» существует уже не первый год, обычно для этого в СХД используются специализированные ускорители (ASIC), расположенные в контроллерах, однако в последние годы наметилась тенденция переноса некоторых рабочих нагрузок непосредственно в устройства хранения (накопители), что дает значительный прирост производительности, разгружая контроллер СХД и центральный процессор.