Percona Server
Percona Server — это форк (ответвление) реляционной системы управления базами данных (СУБД) MySQL, разрабатываемый и поддерживаемый компанией Percona. Основное отличие Percona Server от оригинального MySQL заключается в оптимизации производительности, улучшенной масштабируемости, расширенной диагностике и дополнительных инструментах для администрирования, при сохранении полной совместимости с синтаксисом и протоколами MySQL. Percona Server распространяется бесплатно под лицензией GNU General Public License (GPL) версии 2.
История
Проект Percona Server был основан в 2008 году компанией Percona, основанной Питером Зайцевым и Вадимом Ткаченко. Компания изначально специализировалась на консалтинге и оптимизации производительности баз данных MySQL. Разработка собственного форка была обусловлена необходимостью внедрения улучшений, которые не были приняты в основную ветку MySQL компанией Sun Microsystems (а затем Oracle Corporation) или внедрялись слишком медленно.
Первая стабильная версия Percona Server 5.0 была выпущена в 2008 году. В 2010 году, после приобретения Sun Microsystems компанией Oracle, сообщество MySQL раскололось: часть разработчиков и пользователей опасалась, что Oracle будет уделять меньше внимания открытой версии MySQL, сосредоточившись на коммерческой редакции. Это привело к росту популярности форков, включая Percona Server и MariaDB. Percona Server продолжил развиваться параллельно с MySQL, выпуская версии, соответствующие основным релизам MySQL (5.1, 5.5, 5.6, 5.7, 8.0).
Ключевые особенности и отличия от MySQL
Percona Server не является полностью самостоятельной СУБД, а представляет собой модифицированную версию MySQL. Основные отличия направлены на повышение производительности, надежности и удобства эксплуатации.
Движок XtraDB
В версиях до 8.0 основным движком хранения в Percona Server был XtraDB — форк движка InnoDB, разработанный компанией Percona. XtraDB включал ряд оптимизаций, не вошедших в оригинальный InnoDB:
- Улучшенная работа с памятью: более эффективное управление буферным пулом, адаптивный хэш-индекс.
- Оптимизация ввода-вывода: поддержка асинхронного ввода-вывода, улучшенная работа с подкачкой страниц.
- Расширенная статистика: более детальная информация о состоянии индексов и таблиц для оптимизатора запросов.
- Улучшенная производительность на многоядерных процессорах: снижение конкуренции за блокировки.
Начиная с версии 8.0, Percona Server отказался от XtraDB в пользу стандартного InnoDB, так как оригинальный движок от Oracle к тому времени догнал и превзошел XtraDB по большинству характеристик. Однако часть наработок XtraDB была перенесена в код InnoDB.
Расширенная диагностика и мониторинг
Percona Server предоставляет значительно больше информации о внутреннем состоянии сервера, чем стандартный MySQL:
- Percona Server для MySQL (PSM): набор хранимых процедур и функций для сбора статистики и управления сервером.
- Расширенный журнал медленных запросов: позволяет логировать не только запросы, превышающие порог времени, но и запросы, использующие временные таблицы, файловую сортировку, блокировки строк и т.д.
- Статистика по индексам и таблицам: детальная информация об использовании индексов, конфликтах блокировок, размерах таблиц.
- Инструменты для профилирования: встроенный профилировщик запросов, позволяющий анализировать план выполнения и время на каждом этапе.
Улучшенная производительность
- Буферизация и кэширование: улучшенное управление буферным пулом InnoDB, поддержка нескольких буферных пулов для снижения конкуренции.
- Оптимизация блокировок: уменьшение времени удержания блокировок, поддержка более гранулярных блокировок.
- Параллельное выполнение: улучшенная поддержка параллельного выполнения запросов и операций с данными.
- Оптимизация для SSD: настройки, учитывающие особенности твердотельных накопителей (например, отключение некоторых операций, неэффективных на SSD).
Дополнительные инструменты
В состав Percona Server входят или поставляются вместе с ним несколько утилит, не входящих в стандартную поставку MySQL:
- Percona Toolkit: набор командных утилит для администрирования, резервного копирования, миграции и анализа производительности (например,
pt-query-digest,pt-online-schema-change,pt-table-checksum). - Percona XtraBackup: утилита для горячего резервного копирования баз данных InnoDB без остановки сервера. XtraBackup стал стандартом де-факто для резервного копирования MySQL и его форков.
- Percona Monitoring and Management (PMM): платформа для мониторинга и управления базами данных MySQL, MariaDB и Percona Server. Включает графический интерфейс, сбор метрик, оповещения и анализ производительности.
Применение
Percona Server используется в качестве замены MySQL в тех случаях, когда требуется повышенная производительность, надежность и возможности мониторинга. Он популярен в следующих сценариях:
- Высоконагруженные веб-приложения: интернет-магазины, социальные сети, системы управления контентом (CMS), где важна скорость обработки большого количества запросов.
- Системы с интенсивной записью: логирование, аналитика, системы обработки транзакций (OLTP).
- Системы, требующие высокой доступности: используется в сочетании с инструментами репликации и кластеризации (например, Percona XtraDB Cluster).
- Миграция с MySQL: Percona Server является прямой заменой MySQL без изменения кода приложений, что упрощает переход.
Критика
Основные критические замечания в адрес Percona Server связаны с:
- Зависимостью от кода Oracle: Percona Server является форком MySQL, поэтому его развитие напрямую зависит от изменений в оригинальном коде. Компания Percona вынуждена постоянно синхронизировать свой код с кодом Oracle, что может приводить к задержкам в выпуске новых версий.
- Сложностью обновления: при переходе с одной мажорной версии на другую (например, с 5.7 на 8.0) могут возникать те же проблемы, что и при обновлении стандартного MySQL.
- Отсутствием некоторых функций: в некоторых версиях Percona Server могут отсутствовать функции, которые есть в коммерческой версии MySQL Enterprise (например, некоторые инструменты мониторинга и безопасности). Однако Percona Server предоставляет собственные альтернативы.
Интересные факты
- Percona Server является одним из трёх основных форков MySQL (наряду с MariaDB и оригинальным MySQL от Oracle).
- Компания Percona также разрабатывает Percona XtraDB Cluster — решение для кластеризации баз данных на основе технологии Galera.
- Percona Server используется в некоторых крупных проектах, включая некоторые сервисы Google, Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) и Wikipedia (в прошлом или в отдельных компонентах).
См. также
- MySQL
- MariaDB
- Percona XtraBackup
- Percona Monitoring and Management (PMM)
Источники
- Официальная документация Percona Server
- Сайт компании Percona
- Материалы конференций и докладов по базам данных (Percona Live, HighLoad++)
- Статьи и обзоры на ресурсах Habr, OpenNet, ServerWatch
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →