Увидел свет (http://blog.montyprogram.com/announcing-mariadb-5-5-23-ga/) релиз MariaDB 5.5.23 (http://kb.askmonty.org/en/mariadb-5523-release-notes), первый стабильный релиз ветки 5.5.x, основанной на кодовой базе MySQL 5.5 и содержащей все ранее представленные в ветке MariaDB 5.3 (http://www.opennet.dev/opennews/art.shtml?num=33267) улучшения и дополнения. Проект развивается компанией Monty Program Ab, созданной Майклом Видениусом, основателем MySQL, после его ухода из Sun Microsystems. Код MariaDB синхронизирован с кодовой базой MySQL, полностью совместим с данной СУБД и может выступать в качестве прозрачной замены MySQL 5.5, дополненной рядом расширенных функций, оптимизациями производительности, новыми движками хранилищ (FederatedX, PBXT, XtraDB, Aria, OQGRAPH, Sphinx) и патчами от сообщества независимых разработчиков.
Среди улучшений (http://kb.askmonty.org/en/what-is-mariadb-55), добавленных в MariaDB 5.5, которые отсутствуют в MariaDB 5.3 и MySQL 5.5, можно отметить:
- Интеграция более эффективного аналога коммерческого дополнения "Thread Pool", представляемого в продукте MySQL Enterprise. Thread Pool (http://kb.askmonty.org/en/thread-pool-in-mariadb-55) представляет собой реализацию новой высокомасштабируемой модели многопоточной обработки, нацеленной на сокращение издержек при обслуживании соединений клиентов и при ответвлении выполняющих запросы потоков. Наиболее заметное повышение производительности демонстрируется при выполнении высоконагруженных web-приложений, обслуживающих большое число параллельных запросов, в сочетании с работой на серверах, имеющих 16 и более процессорных ядер;
- Включение в состав библиотеки (http://kb.askmonty.org/en/non-blocking-client-library) с реализацией неблокирующего клиенского API. Неблокирующий API позволяет отправить запрос к СУБД и не дожидаясь его завершения сразу перейти к дальнейшим действиям. После того как будет готов результат запроса, приложение будет информировано через callback-вызов. Подобный подход оправдан когда нужно выполнить одновременно несколько независимых запросов к базе, когда нужно обратиться к нескольким СУБД или при формировании запросов из приложений, изначально написанных в соответствии с неблокирующим стилем разработки, например, использующих libevent или event loop. Новый API реализован исключительно на уровне клиентской библиотеки и не требует от сервера какой-либо дополнительной функциональности, что позволяет использовать неблокирующий API с любыми выпусками MariaDB и MySQL. Библиотека также полностью совместима с уже собранными приложениями на уровне API и ABI;
- Поддержка опции @@skip_replication (http://kb.askmonty.org/en/selectively-skipping-replication-o...) для выборочного пропуска изменений, которые не нужно реплицировать на другие серверы или помещать в binlog. Когда переменная установлена в значение true - данные реплицируются, а когда в flase - нет;
- Хранилище Sphinx (http://kb.askmonty.org/en/sphinxse) обновлено до версии 2.0.4 (http://sphinxsearch.com/) (ранее была интегрирована версия 0.9.9);
- В хранилищах XtraDB и InnoDB реализована поддержка расширенных ключей ("extended keys");
- Поддержка выражения INSTALL SONAME (http://kb.askmonty.org/en/install-soname), сходное по своему действию с INSTALL PLUGIN, но выполняющее действие по установке всех плагинов из указанной библиотеки;
- Новая оптимизация "LIMIT [offset, row_count] ROWS EXAMINED rows_limit" которая позволяет (http://kb.askmonty.org/en/limit-rows-examined) остановить выполнение запроса SELECT после перебора заданного через rows_limit числа столбцов;
- Возможность динамического использования переменных replicate_do_*, replicate_ignore_* и replicate_wild_*, т.е. их изменение больше не требует перезапуска сервера;
- Изменение логики работы функции mysql_real_connect(), которая теперь сохраняет в объекте MYSQL значения выставленных до вызова данной функции опций даже если вызов завершился неудачей, т.е. обнуление производится только после выполнения mysql_close().
Дополнительно можно отметить выпуск обновлений для ранее выпущенных и ещё поддерживаемых стабильных веток - MariaDB 5.3.6 (http://blog.montyprogram.com/announcing-mariadb-5-3-6/), 5.1.62 и 5.2.12 (http://blog.montyprogram.com/announcing-mariadb-5-1-62-and-5.../) в которых устранена опасная уязвимость, позволяющая клиенту при определённых обстоятельствах подсоединиться к БД без ввода корректного пароля. Данная уязвимость также присутствует в MySQL и будет устранена в ближайшем обновлении. Кроме того, выпущенном недавно MySQL 5.5.22 (http://dev.mysql.com/doc/refman/5.5/en/news-5-5-22.html) были исправлены две уязвимости, подробности о которых не приводятся.
Ранее реализованные улучшения (http://kb.askmonty.org/v/mariadb-versus-mysql), отличающие MariaDB от MySQL:
- Дополнительные движки хранилищ:
- Aria (http://www.opennet.dev/opennews/art.shtml?num=13934) (ранее Maria) - основанное на MyISAM высоконадежное хранилище, отличающиеся повышенной устойчивостью и сохранению целостности данных после краха, при полной совместимости с MyISAM. Благодаря ведению лога операций, в случае краха производится откат результатов выполнения текущей операции. Также поддерживается возможность восстановления состояния из любой точки в логе операций (включая поддержку CREATE/DROP/RENAME/TRUNCATE).
- XtraDB (http://www.opennet.dev/opennews/art.shtml?num=19449) - движок основанный на коде InnoDB-plugin и полностью совместимый с ним, но отличающийся заметно более высокой производительностью, благодаря интеграции патчей от компаний Google и Percona. В частности, в XtraDB улучшен механизм работы с памятью, улучшена работа подсистемы ввода/вывода InnoDB, добавлена поддержка нескольких потоков чтения и записи, поддержка управления пропускной способностью, реализация упреждающей выборкой данных (read-ahead), адаптивная установка контрольных точек (adaptive checkpointing), расширены возможности по масштабированию для больших проектов, система организации блокировок адаптирована для работы на системах с большим числом CPU, добавлены дополнительные возможности для накопления и анализа статистики.
- PBXT (http://www.opennet.dev/opennews/art.shtml?num=19478) (PrimeBase XT) - хранилище, разработанное с нуля и поддерживающее мультиверсионный метод организации хранения данных MVCC (multi-version concurrency control), позволяющий избавиться от блокировок при выполнении операций чтения. PBXT поддерживает ACID-совместимые транзакции, быстрый откат транзакций и восстановление после некорректного завершения работы сервера. Имеются средства для обеспечения ссылочной целостности данных, поддержка определения внешних ключей (foreign key), каскадных обновлений и удалений данных. Поддерживается возможность прямого потокового ввода и вывода бинарных данных (BLOB) в БД;
- FederatedX (https://launchpad.net/federatedx) - позиционируется в качестве замены разработанного в Sun Microsystems и уже не поддерживаемого хранилища Federated. FederatedX позволяет организовать обращение к удаленным таблицам как к локальным. Имеется поддержка транзакций, одновременной установки нескольких соединений к удаленной СУБД, использования операций "LIMIT";
- OQGRAPH (http://kb.askmonty.org/v/oqgraph) - хранилище для организации иерархических (древовидных) структур и сложных графов (узлов, имеющих множество связей);
- Sphinx (http://kb.askmonty.org/v/sphinxse) - хранилище для построения поисковых движков. Встроенный Sphinx-клиент позволяет MariaDB обмениваться данными с searchd, выполнять поисковые запросы и получать результаты поиска;
- Виртуальные столбцы (http://kb.askmonty.org/v/virtual-columns), содержимое которых формируется на основе заданного выражения, рассчитываемого во время выполнения;
- Расширенная статистика (http://kb.askmonty.org/v/user-statistics) об активности клиентов, пользователей, индексов и таблиц;
- Сегментированный кэш (http://kb.askmonty.org/v/segmented-key-cache) MyISAM-ключей...
URL: http://monty-says.blogspot.com/2012/04/lots-of-mariadb-relea...
Новость: http://www.opennet.dev/opennews/art.shtml?num=33589