Это сообщение от Вадима Ткаченко из MySQL Performance Blog.
После публикации Роэля, Percona Server на Raspberry Pi: ваш собственный сервер баз данных MySQL , я подумал, на каком другом сумасшедшем гаджете я могу запустить Percona Server ? И, имея планшет Android Asus Nexus 7, я решил попробовать.
Все, что ниже, содержит риск того, что вы сломаете свой планшет, если вы не знаете, что делаете, поэтому имейте в виду.
Во-первых, нам нужен рутированный планшет, скорее всего с кастомным ПЗУ. Я лично использую SmoothROM, который уже поставляется с рутом и надлежащим ядром.
Далее мы устанавливаем среду Linux, я использовал приложение Linux Deploy для развертывания Ubuntu 12.04 LTS. Он не удаляет текущее ПЗУ и работает, как обычное приложение для Android. Процесс прост, но трудоемок. Потребовалось около 30 минут, чтобы загрузить и установить все необходимые пакеты. Когда установка завершена и Linux запущен, мы можем подключиться к планшету по SSH и получить знакомую оболочку Linux.
Отныне это выглядит как обычная установка Linux, с той разницей, что это архитектура ARMv7, поэтому мы не сможем загрузить обычные 32- или 64-битные двоичные файлы, созданные для архитектуры Intel. И у нас нет ARM-файлов Percona Server, поэтому нам нужно будет собирать их из исходников.
Итак, мы устанавливаем среду сборки
apt-get install build-essential cmake libncurses5-dev bison libaio-dev
скачать исходный код Percona Server
wget http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.29-29.4/source/Percona-Server-5.5.29-rel29.4.tar.gz
распаковать и собрать. Нет, не все так просто, к сожалению, в клиентском плагине есть ошибка: непереносимый код (не работает на ARM), который не позволяет строить из простых источников.
Нам нужно применить небольшой патч к источнику, который доступен здесь .
После этого для сборки бинарных файлов:
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_CONFIG=mysql_release -DFEATURE_SET=community -DWITH_EMBEDDED_SERVER=OFF make -j2 make install
и если все пойдет как надо /usr/local/mysql
, у нас будут двоичные файлы , которые мы начнем
mysql> show variables like 'version%'; +-------------------------+------------------------------+ | Variable_name | Value | +-------------------------+------------------------------+ | version | 5.5.29 | | version_compile_machine | armv7l | | version_compile_os | Linux | +-------------------------+------------------------------+
И быстрый бесполезный тест CPU, просто чтобы понять уровень производительности планшетных процессоров:
Processor : ARMv7 Processor rev 9 (v7l) processor : 0 BogoMIPS : 1993.93 mysql> SELECT BENCHMARK(10000000,ENCODE('hello','goodbye')); +-----------------------------------------------+ | BENCHMARK(10000000,ENCODE('hello','goodbye')) | +-----------------------------------------------+ | 0 | +-----------------------------------------------+ 1 row in set (5.12 sec)
сравнить с сервером Cisco UCS:
model name : Intel(R) Xeon(R) CPU X5670 @ 2.93GHz bogomips : 5851.73 mysql> SELECT BENCHMARK(10000000,ENCODE('hello','goodbye')); +-----------------------------------------------+ | BENCHMARK(10000000,ENCODE('hello','goodbye')) | +-----------------------------------------------+ | 0 | +-----------------------------------------------+ 1 row in set (1.46 sec)
Следующим шагом является объединение двух планшетов и запуск Percona XtraDB Cluster , но есть еще одна ошибка. Не удается создать галерею на архитектуре ARM, которая должна быть исправлена ранее.
Сейчас мне трудно думать о практическом применении запуска базы данных на планшете, но это было больше, чтобы проверить возможности мобильных гаджетов, которые, я могу сказать, впечатляют.