Статьи

Ваш собственный сервер баз данных MySQL на планшете Android

Это сообщение от Вадима Ткаченко из MySQL Performance Blog.

Сервер Percona на Nexus 7: ваш собственный сервер баз данных MySQL на планшете Android

После публикации Роэля, 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

распаковать и собрать. Нет, не все так просто, к сожалению, в клиентском плагине есть ошибка: непереносимый код (не работает на 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, которая должна быть исправлена ​​ранее.

Сейчас мне трудно думать о практическом применении запуска базы данных на планшете, но это было больше, чтобы проверить возможности мобильных гаджетов, которые, я могу сказать, впечатляют.