Увидел свет (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.me/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.me/opennews/art.shtml?num=13934) (ранее Maria) - основанное на MyISAM высоконадежное хранилище, отличающиеся повышенной устойчивостью и сохранению целостности данных после краха, при полной совместимости с MyISAM. Благодаря ведению лога операций, в случае краха производится откат результатов выполнения текущей операции. Также поддерживается возможность восстановления состояния из любой точки в логе операций (включая поддержку CREATE/DROP/RENAME/TRUNCATE).
- XtraDB (http://www.opennet.me/opennews/art.shtml?num=19449) - движок основанный на коде InnoDB-plugin и полностью совместимый с ним, но отличающийся заметно более высокой производительностью, благодаря интеграции патчей от компаний Google и Percona. В частности, в XtraDB улучшен механизм работы с памятью, улучшена работа подсистемы ввода/вывода InnoDB, добавлена поддержка нескольких потоков чтения и записи, поддержка управления пропускной способностью, реализация упреждающей выборкой данных (read-ahead), адаптивная установка контрольных точек (adaptive checkpointing), расширены возможности по масштабированию для больших проектов, система организации блокировок адаптирована для работы на системах с большим числом CPU, добавлены дополнительные возможности для накопления и анализа статистики.
- PBXT (http://www.opennet.me/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.me/opennews/art.shtml?num=33589
Интересно почему нет в пакетной базе Debian...
Потому что никто не запилил пакет.// КО
> Потому что никто не запилил пакет.
> // КОЭто понятно. Не понятно то почему "Monty Program Ab" не хочет распространить свой продукт в более широкие массы...
P.S. Есть сторонний репозиторий:# MariaDB repository list - created 2012-04-13 01:39 UTC
# http://downloads.askmonty.org/mariadb/repositories/
deb http://mirror.de.gsnw.de:56431/mariadb/repo/5.5/debian squeeze main
deb-src http://mirror.de.gsnw.de:56431/mariadb/repo/5.5/debian squeeze main
Мощный ченжлог. Старина Видениус впахивает :)
> Мощный ченжлог. Старина Видениус впахивает :)На самом деле в данном проекте он выступает скорей спонсором, чем разработчиком.
И на том спасибо. А был бы на его месте Ваня - он бы только заграбастал и отполз в свой уголок. Правда таким в силу общей тупости такое не светит, но все-таки.
Где-нибудь тесты - сравнения MyISAM и Aria можно посмотреть?
Тестов не видел, но разработчики aria говорят, что пока производительность станет приоритетом только при разработке версии 2.5, до этого планируют чистить код и внедрять транзакционность без оглядки на производительность.Сам я пробовал парочку таблиц переводить на aria с myisam, таблицы были fixed. По скорости запросов разница на уровне погрешности. При вставке же достаточно значительно увеличилось количество операций io (по графикам очень четко видно).
Спасибо.
>При вставке же достаточно значительно увеличилось количество операций ioхм. какбы это:
>Благодаря ведению лога операций, в случае краха производится откат результатов выполнения текущей операции. Также поддерживается возможность восстановления состояния из любой точки в логе операций (включая поддержку CREATE/DROP/RENAME/TRUNCATE).намекает что чудес не бывает.
>>При вставке же достаточно значительно увеличилось количество операций io
> хм. какбы это:
>>Благодаря ведению лога операций, в случае краха производится откат результатов выполнения текущей операции. Также поддерживается возможность восстановления состояния из любой точки в логе операций (включая поддержку CREATE/DROP/RENAME/TRUNCATE).
> намекает что чудес не бывает.Здесь фокус в том, что при переводе этих же таблиц на innodb io возрастает гораздо меньше, а в innodb журнал ведется тоже.
Можете тесты не смотреть поверьте на слово MariaDB намного производительнее обычного MySQL
> Можете тесты не смотреть поверьте на слово MariaDB намного производительнее обычного MySQLВо многих случаях это так, но не всегда. Например, у меня есть запрос, который исполняется за тысячные доли секунды и включает в себя подзапрос. Когда поставил MariaDB, то этот запрос "оптимизировался" и стал выполняться так же как если бы был реализован с помощью join, в результате скорость выполнения запроса составила полторы секунды. optimizer_switch = 'semijoin=off' пришлось добавить для выправления ситуации.
> Включение в состав библиотеки с реализацией неблокирующего клиенского API.Ну наконец-то.
>> Ещё лет 10 и догонят постгрес по функционалу.
> Мля, давайте сразу оракл всем всучивать. Для хранения десятка постов в личном
> бложике, чо.как будто это что-то плохое.
Кто использовал сабж может подсказать: временные таблицы можно использовать повторно в одном запросе? В mysql для меня это большое неудобство. При запросе выдает ошибку: Can't reopen table ...