После полутора лет разработки увидел свет первый стабильный выпуск новой ветки СУБД MariaDB 10.1, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL 7, SUSE 12, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian 9) и внедрён в таких крупных проектах, как Wikipedia (https://www.opennet.me/opennews/art.shtml?num=36759), Google Cloud SQL (https://www.opennet.me/opennews/art.shtml?num=37905) и Nimbuzz (https://www.opennet.me/opennews/art.shtml?num=36506).Ключевые улучшения (https://mariadb.com/kb/en/mariadb/what-is-mariadb-101/) MariaDB 10.1 (https://mariadb.com/kb/en/mariadb/mariadb-1018-release-notes/):
- Поддержка шифрования (https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/) таблиц и логов транзакций, которое позволяет защититься от утечки данных в случае кражи жесткого диска, но бесполезны в ситуации получения контроля над СУБД, например, в результате атаки через подстановку SQL-запроса. При включении шифрования накладные расходы увеличиваются на 3-5%. Ключи шифрования имеет смысл хранить на отдельном защищённом сервере с включением системы ротации ключей, подразумевающей перешифрование с новым ключем после устаревания текущего ключа. Поддержка шифрования реализована в хранилищах XtraDB и InnoDB. Предлагается несколько схем: шифрование выбранных таблиц, шифрование всех таблиц в БД, и шифрование всех таблиц за исключением выбранных. Благодаря шифрованию лога транзакций, защита также обеспечивается в системах с репликацией;- Включение в базовую поставку технологии синхронной multi-master (active-active) репликации Galera (https://mariadb.com/kb/en/galera/), ранее предлагаемой в рамках отдельного продукта MariaDB Galera Cluster. Galera расширяет возможности СУБД MariaDB средствами синхронной репликации, при которой все узлы всегда содержат актуальные данные, т.е. гарантируется отсутствие потерянных транзакций, так как транзакция фиксируется только после распространения данных по всем узлам. При этом, в рамках транзакции операции выполняются сразу, задержка из-за ожидания подтверждения возникает только при выполнении операции "commit". Репликация выполняется в параллельном режиме, на уровне строк, с передачей только информации об изменениях. Управление принадлежностью узлов кластеру выполняется автоматически, сбойные узлы сразу исключаются из кластера без участия администратора, новые узлы при необходимости можно подключить на лету без дополнительной переконфигурации;
- Поддержка (https://mariadb.com/kb/en/mariadb/compression/) сжатия страниц данных для хранилищ InnoDB и XtraDB. От ранее доступного механизма сжатия (row_format=compressed) новый метод отличается возможностью выбора различных алгоритмов сжатия (zlib, lz4, lz0, lzma, bzip2 и snappy) и иной организацией процесса работы с упакованными данными. Если в традиционной релизации в буфере находятся как сжатые, так и ещё не упакованные данные, то новая схема подразумевает нахождение в буфере только распакованных данных - страницы сжимаются перед записью в хранилище и распаковываются после чтения. Новый метод наиболее эффективен при использовании SSD-накопителей или NVM-памяти. Наилучшие результаты наблюдаются (https://mariadb.com/kb/en/mariadb/fusion-io-introduction/) при использовании плат FusionIO;
- Возможность (https://mariadb.atlassian.net/browse/MDEV-4487) реплицирования данных c MySQL 5.6 при включении на MySQL поддержки GTID, т.е. MySQL теперь может использоваться в роли master-сервера для MariaDB. Указанная возможность позволяет существенно упростить тестирование в процессе миграции с MySQL на MariaDB;
- Реализован (https://mariadb.com/kb/en/mariadb/parallel-replication/#opti...) "оптимистический" режим параллельного реплицирования, который значительно упрощён по сравнению с появившимися в MariaDB 10.0 средствами параллельной репликации slave-сереров. В частности, обеспечена возможность параллельного применения к slave-сервеу любых опеораций INSERT/UPDATE/DELETE, даже если они пока не завершены на master-сервере;
- Возможность (https://mariadb.com/kb/en/mariadb/password-validation/) проверки степени надёжности задаваемого пароля при помощи плагинов e simple_password_check и cracklib_password_check;
- Внесена порция оптимизаций производительности, позволивших снизить нагрузку на CPU и увеличить эффективность работы на многоядерных системах;
- Реализована (https://mariadb.com/kb/en/mariadb/defragmenting-innodb-table.../) система дефрагментации хранилищ InnoDB, основанная на наработках, предоставленных компанией Facebook. Ранее, при удалении строк из InnoDB они лишь помечались удалёнными и становились доступны для новых записей без фактического освобождения блоков на диске и без возвращения дискового пространства системе.
Выполнение "OPTIMIZE TABLE" решает указанную проблему, но путём полного перестроения таблицы с копированием имеющихся данных на новое место. После включения в файле конфигурации поддержки дефрагментации (innodb-defragment=1), выполнение команды "OPTIMIZE TABLE" не приводит к копированию в новые таблицы, а реализуется через механизм перемещения записей;
- Добавлены (https://mariadb.com/kb/en/mariadb/explain-format-json/) команды "EXPLAIN FORMAT=JSON" и "ANALYZE FORMAT=JSON", при которых вывод с оценкой характеристик запроса формируется в формате JSON. Штатный вывод команды ANALYZE теперь походит на вывод EXPLAIN, но включает полученные в результате выполнения запроса данные (число прочитанных строк и т.п.);
- Средства для пространственной привязки (Spatial Reference) данных геоинформационных систем. Реализация новых функций для работы с пространственными координатами: ST_Boundary,
ST_ConvexHull,
ST_IsRing,
ST_PointOnSurface,
ST_Relate;
- Поддержка выражений "IF EXISTS", "IF NOT EXISTS" и "OR REPLACE" в директивах "CREATE DATABASE",
CREATE FUNCTION UDF",
CREATE ROLE",
CREATE SERVER",
CREATE USER",
CREATE VIEW",
DROP ROLE",
DROP USER",
CREATE EVENT", "DROP EVENT"
CREATE INDEX", "DROP INDEX"
CREATE TRIGGER" и "DROP TRIGGER";- Поддержка команд SHOW и FLUSH для плагинов, например, "SHOW LOCALES", "SHOW QUERY_RESPONSE_TIME", "FLUSH QUERY_RESPONSE_TIME";
- Поддержка директивы "SET DEFAULT ROLE (https://mariadb.com/kb/en/mariadb/set-default-role/)", позволяющей определить роль по умолчанию, применяемую ко всем новым соединениям;
- Добавлена поддержка systemd;
С ранее реализованными возможностями MariaDB и отличиями от MySQL можно познакомиться в тексте анонса (https://www.opennet.me/opennews/art.shtml?num=39444#note) MariaDB 10.URL: https://blog.mariadb.org/mariadb-10-1-is-stable-ga/
Новость: http://www.opennet.me/opennews/art.shtml?num=43154
Радует развитие MariaDB и печалит, что новые значительные релизы MySQL уже почти три года не выходят.
Пока выходят новые значительные релизы PostgreSQL, печалиться не о чем.
нельзя просто так взять и заменить mysql на postgresql везде и сразу.
Не сразу, а уже за почти 3 года.
Заменил последнюю установку ещё в 2010.
> нельзя просто так взять и заменить mysql на postgresql везде и сразу.Рвет Машка Постгрю как Тузик грелку по репликациям, у Постгри до сих пор не появилось нормальной репликации, одни недоподелия )))))
Коичи Сузуки едва ли с Вами согласится.
>> нельзя просто так взять и заменить mysql на postgresql везде и сразу.
> Рвет Машка Постгрю как Тузик грелку по репликациям, у Постгри до сих
> пор не появилось нормальной репликации, одни недоподелия )))))Полноте врать. Репликация нормальная. А вот Jsonb действительно рвет Json.
Какая? Глючный, выедающий память и тормозной Рубиреп или Букардо, или еще какое-то аналогичное тригерное поделие? Или встроенная потоковая, которая позволяет создать только "запасной" сервер, который при вылете основного нужно еще и конфигурить?
Вы о чем?
В PostgreSQL нет и никогда не будет того, что есть в MySQL и её форках.
души?
что же это?
какая разница? это же комплимент.
Например отсутствие движков memory, archive, tokudb, каждый из которых на порядок обходит postgres в решении своей задачи. Структура postgres фиксирована, и из-за идеологии некоторый функционал никогда не будет реализован. В MySQL - пожалуйста, бери любые движки, комбинируй, и получишь решение любой задачи.
> и получишь решение любой задачи.Проблемы при репликации проседание перфоманса, Адъ и Израиль.
Проблемной репликация получилась только потому, что не было создано единого унифицированного интерфейса, и задачу переложили непосредственно на движки.
производительности. проседание производительности. перфоменс - это когда говно на золотом блюде или мошонку к мостовой прибивают.
>>решение любой задачиРасскажи про это Ларри. И заодно Билли.
> что же это?Нормальной репликации )))
> В PostgreSQL нет и никогда не будет того, что есть в MySQL и её форках.В этом то и вся прелесть PG - в ней нет дерьма и гогнокода которые есть в рукожопых mysql и форках.
Но базовая структура у MySQL более гибкая, нежели чем у postgres. Лет через 5 MySQL обгонит postgres только потому что до сих пор не исчерпала свой потенциал, в отличие от postgres.
> Но базовая структура у MySQL более гибкая, нежели чем у postgres. Лет
> через 5 MySQL обгонит postgres только потому что до сих пор
> не исчерпала свой потенциал, в отличие от postgres.инфа 146%
Как там у постгры с синхронной мастер-мастер репликацией? Нету? До свидания.
What is Postgres-X2
...
Synchronous multi‐master configuration : Any update to any master is visible from other masters immediately
(https://github.com/postgres-x2/postgres-x2)
Продолжайте сидеть в криокамере.
Олег Бартунов- Нет-нет, уже года два это не шаманство. Можете скачать BDR, так называемая, двунаправленная репликация. Это компания «2nd Quadrant» сделала этот BDR, он уже используется в продакшене у людей, и потихонечку часть его уже начинает входить обратно в «Postgres». Грубо говоря, через релиз, через два BDR будет уже полностью в «Postgres».
> Олег Бартунов
> - Нет-нет, уже года два это не шаманство. Можете скачать BDR, так
> называемая, двунаправленная репликация. Это компания «2nd Quadrant» сделала
> этот BDR, он уже используется в продакшене у людей, и потихонечкуЭто тот, который "мы тут эта, мон шер, не обеспечиваем полной/обычной семантики SQL на этих master-master, Вам надо *просто* *переписать* Ваши приложения. *Просто* скажите Вашим програмёрам."? Не шаманство -- продаётся хорошоу.
> часть его уже начинает входить обратно в «Postgres».
Молодцы! Сделали streaming replication, который работает, как streaming replication, выглядит, как streaming replication, но при этом logical decoding + UDR. Прогресс...
> Грубо говоря, через релиз, через два BDR будет уже полностью в «Postgres».
Да-да, после 9.3 уже несколько data loss починили, вроде, вылезшие оттуда. Уже скоро можно. Да!
>В этом то и вся прелесть PG - в ней нет дерьма и гогнокодакак и в любом другом софте, в ней свои тараканы. Религиозная ветка на другом домене :)
Специальные олимпиады по узкоспециализированный применению PostgreSQL? Аноним только за!
глюкавая хрень, гонятся за фишками а толку 0
критические баги не фиксятпруф:
https://mariadb.atlassian.net/browse/MDEV-8525
безобидный запрос роняет сервер в сегфолт,
ИМХО любой запрос (даже самый хитровыгнутый) ни в коем случае не должен ронять серверв продакшне этому г-ну не место
дискуссию о пригодности mysql/mariadb к серьёзным делам не навязывать плиз
В 10.1 защита стека, он не падает по умолчанию Увы...
https://mariadb.com/kb/en/mariadb/mariadb-1010-release-notes/
> роняет сервер в сегфолтОн не сможет так просто упасть в сегфолт как раньше,
Рантайм в ветке 10.1.0+ код запрещает разыменования; повреждение памяти / выход за границы.
А MEMORY так и не поддерживает varchar и blob, развивают откровенно фигню
В официальном ченжлоге потеряны еще примерно 80 изменений по сравнению с выпуском 10.0
> В официальном ченжлоге потеряны еще примерно 80 изменений по сравнению с выпуском
> 10.0* https://mariadb.com/kb/en/mariadb/what-is-mariadb-100/
* https://mariadb.com/kb/en/mariadb/mariadb-1011-release-notes/
* https://mariadb.com/kb/en/mariadb/mariadb-1012-release-notes/
* https://mariadb.com/kb/en/mariadb/mariadb-1013-release-notes/
* https://mariadb.com/kb/en/mariadb/mariadb-1014-release-notes/
* https://mariadb.com/kb/en/mariadb/mariadb-1015-release-notes/
* https://mariadb.com/kb/en/mariadb/mariadb-1016-release-notes/
* https://mariadb.com/kb/en/mariadb/mariadb-1017-release-notes/
Ну попробуйте выудить оттуда что-то хоть как-то интересное
> Реализован "оптимистичный" режим параллельного реплицирования
> Возможность проверки степени надёжности задаваемого пароля
> Поддержка выражений "IF EXISTS", "IF NOT EXISTS" ...
> Поддержка systemdПоработали на славу...
Нужно просто признать, после быстрого рывка и громких обещаний проект MariaDB заглох
В заголовке ошибка - релиз не может быть стабильным, т.к. в трекере висят незакрытые критические баги
ошибка не в заголовке, а в разработчиках, это они назвали релиз стабильным
> MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL 7, SUSE 12, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian 9)
> Debian 9Верни машину времени на место!
Debian 9 уже реальность для разработчиков https://wiki.debian.org/DebianStretch
Во время подготовки Debian 8 решили растянуть миграцию на MariaDB на два релиза, в Debian 8 добавили MariaDB, но пока оставили MySQL и намерены выкинуть его в Debian 9.
Негр Оракла, перелогинся!
Я был зело "за" mariadb, и уже в планах было потихоньку мигрировать подальше от оракала и мускула на десятке локалхостов, но в процессе тестирования нарвался на десяток неприятных багов, все из которых есть в жире в открытом состоянии (см #5 для примера).Короче сильно сырое оно и рано его многие дистры начали пихать дефолтом.
А погромизды вместо того чтоб _критические_ баги позакрывать страдают фичами и поддержками системдоса.
Короче пока никакого доверия к этой шарашке, но надежда на них всё ещё есть, а вдруг возьмутся за голову и поймут что в движке БД первым делом идёт надёжность и стабильность, а потом уже фичи в вакууме.
Неистово плюсую.!!!!
Надёжность, стабильность и хороший оптимизатор запросов- все что надо от СУБД.
Прекрасно! Перевел сотни рабочих мест на нашем предприятии с MySQL на MariaDB. :)
Это тоже самое, что писать - заставил все машины ездить по новому асфальту.
О, ещё один диванный эксперт подтянулся. Ну расскажи, расскажи, что же это за такие "рабочие места" и почему на каждом требуется база данных. Про проблемы миграции расскажи, а мы с товарищами послушаем и попкорном похрустим.
> диванный эксперт подтянулсяДа он постоянно сотни рабочих мест на что-то переводит. Не надо внимания обращать.
> и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz.Везде в Google Cloud SQL написано про MySQL ни слова про МашкуДБ
https://mariadb.com/kb/en/mariadb/google-summer-of-code-2015/
> Google Summer of CodeВопрос был про реальное использование в гугле.
ок, соглашусь, не говорит о реальном, почему то думал, что легко найти подтверждение о реальном использовании. а тут только гадать..
Есть и вот такое https://www.reactos.org/wiki/Google_Summer_of_Code_2011_proj...
Как это характеризует практическое применение reactos в гугловых сервисах? Правильно - никак.
>После празработкиЧто-то они там совсем не торопятся :).
По поводу Galera лучше обратить внимание вот на это: https://aphyr.com/posts/327-call-me-maybe-mariadb-galera-clu...
Угу, блокировки - проблема любых кластеров. На большинстве софта, умеющего повторять транзакции, впрочем, кроме падения производительности, ничем не проявится.
> Угу, блокировки - проблема любых кластеров.Не любых, а только тех, где не подумали (или сэкономили) про нормальный интерконнект.
Да. А плохой напор воды - проблема квартир, где сэкономили на покупке дивана.