После полутора лет разработки и пяти предварительных выпусков сформирован (https://mariadb.org/mariadb-10-2-6-stable-now-available/) первый стабильный релиз новой ветки СУБД MariaDB 10.2 (https://mariadb.com/kb/en/mariadb/mariadb-1026-release-notes/), в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL 7, SUSE 12, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian 9) и внедрён в таких крупных проектах, как Wikipedia (https://www.opennet.ru/opennews/art.shtml?num=36759), Google Cloud SQL (https://www.opennet.ru/opennews/art.shtml?num=37905) и Nimbuzz (https://www.opennet.ru/opennews/art.shtml?num=36506).Ключевые улучшения (https://mariadb.com/kb/en/mariadb/mariadb-1026-release-notes/) MariaDB 10.2 (https://mariadb.com/kb/en/mariadb/what-is-mariadb-102/):
- Добавлена экспериментальная поддержка движка хранения MyRocks, разработанного (https://www.opennet.ru/opennews/art.shtml?num=45064) Facebook на базе системы хранения RocksDB (https://www.opennet.ru/opennews/art.shtml?num=38499), оптимизированной для Flash-накопителей. В хранилище MyRocks применяются страницы данных плавающего размера, позволяющие избежать выравнивания по фиксированной границе блока, и модель хранения данных в форме лога (Log Structured Merge Trees), допускающая только дополнение (чистка производится сборщиком мусора);- Добавлена поддержка оконных функций (https://mariadb.com/kb/en/mariadb/window-functions-overview/), задаваемых ключевым словом OVER и позволяющих совершить вычисление над набором строк, связанных с текущей строкой. По аналогии с агрегатными функциями оконные функции позволяют обратиться к другим строкам в процессе обработки результата запроса, но в отличие от агрегатных функций они не группируют результат в одну строку;
- Поддержка (https://mariadb.com/kb/en/with/) общих табличных выражений (выражение "WITH") и рекурсивных общих табличных выражений ("WITH RECURSIVE"). Секцию WITH можно использовать для определения подзапросов как локальных временных таблиц, на которые можно много раз ссылаться в запросе. "WITH RECURSIVE" позволяет обращаться к собственному результату, например, можно организовать обход дерева в процессе выполнении запроса;
- Добавлено выражение "CONSTRAINT... CHECK (https://mariadb.com/kb/en/mariadb/constraint/)" в блоке "CREATE TABLE" для задания ограничений столбца;
- Реализована возможность указания выражений в блоке DEFAULT (https://mariadb.com/kb/en/mariadb/create-table/#default), например "b int DEFAULT (a+1)". Обеспечена поддержка указания значений DEFAULT для полей BLOB и TEXT;
- Хранилище InnoDB обновлено до выпуска из состава MySQL 5.7.18 и задействовано по умолчанию (ранее по умолчанию предлагалось хранилище XtraDB). В InnoDB добавлена поддержка пространственных индексов (spatial index);
- Добавлено выражение "SHOW CREATE USER", показывающее (https://mariadb.com/kb/en/mariadb/show-create-user/) полное выражение "CREATE USER", использованное для создания указанного пользователя;
- Для выражения "CREATE USER (https://mariadb.com/kb/en/mariadb/create-user/)" реализованы опции для ограничения потребления ресурсов и настройки tls/ssl. Например, теперь можно ограничить максимальное число запросов или соединений в час;
- Представлено новое выражение "ALTER USER (https://mariadb.com/kb/en/mariadb/alter-user/)", позволяющее внести изменения в учётную запись существующего пользователя;
- Сняты многие ограничения для виртуально вычисляемых столбцов;
- Добавлена поддержка выражения "EXECUTE IMMEDIATE (https://mariadb.com/kb/en/mariadb/execute-immediate/)" для запуска динамического SQL-выражения, созданного на лету;
- В оператор PREPARE (https://mariadb.com/kb/en/mariadb/prepare-statement/) добавлена возможность использования большинства выражений;
- Добавлены функции (https://mariadb.com/kb/en/json-functions/) для работы с данными в формате JSON;- Добавлен плагин (https://mariadb.com/kb/en/mariadb/ed25519-authentication-plugin/) аутентификации, использующий алгоритм ed25519 для хранения паролей;
- В состав сборок для Windows, CentOS, RHEL и Fedora добавлен плагин (https://mariadb.com/kb/en/aws-key-management-encryption-plugin/) для расшифровки ключей, используемых в Amazon Web Services (AWS) Key Management Service (KMS), для их последующего использования для шифрования данных в БД;
- Появилась возможность привязки нескольких разных триггеров (https://mariadb.com/kb/en/trigger-overview/) к одному событию;
- Добавлена поддержка отложенной репликации (https://mariadb.com/kb/en/mariadb/delayed-replication/), при которой состояние slave-сервера на заданный промежуток времени отстаёт от master-сервера;
- Переработана реализация выражения ANALYZE TABLE, которое теперь не блокирует таблицу во время сбора статистики;
- Библиотека wsrep, используемая для организации синхронной multi-master (active-active) репликации Galera, обновлена до выпуска 25.3.20;
- Обеспечено формирование пакетов (https://downloads.mariadb.org/mariadb/repositories/) для Ubuntu 17.04;
- В mysqldump добавлена опция "--add-drop-trigger", воспроизводящая функциональность MySQL 5.6 по добавлению в SQL-дамп выражения для удаления триггера перед его созданием;
- Добавлен скрипт mysqlbinlog (https://mariadb.com/kb/en/mysqlbinlog/) для организации непрерывного бэкапа бинарного лога;
- Добавлена поддержка OpenSSL 1.1 и LibreSSL;
- Добавлены переменные innodb_deadlock_detect (https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system...) и innodb_stats_include_delete_marked (https://mariadb.com/kb/en/mariadb/xtradbinnodb-server-system...) для отключения система определения взаимных блокировок и учёта записей, помеченных как удалённые, при расчёте статистики;
- Добавлена переменная read_binlog_speed_limit, задающая ограничение скорости с которой slave-сервер читает бинарный лог master-сервера;
- Удалена старая клиентская библиотека, поставляемая под лицензией GPL, на смену которой пришла новая библиотека (https://www.opennet.ru/opennews/art.shtml?num=35458), имеющая лицензию LGPL.
URL: https://mariadb.org/mariadb-10-2-6-stable-now-available/
Новость: https://www.opennet.ru/opennews/art.shtml?num=46585
С RocksDB там интересен рост производительности и ускорение работы, прежде всего, а не мифическое «оптимизированно для флэш-накопителей».
На хабре была хорошая статья с сравнениями(https://habrahabr.ru/post/319500/)
Хотелось бы сравнение MyRocks с TokuDB
http://smalldatum.blogspot.de/2017/08/sysbench-large-server-...
http://smalldatum.blogspot.de/2017/08/sysbench-large-server-...
> Добавлены функции для работы с данными в формате JSON;Чет я эти функции месяца полтора назад уже опробовал, какието убогие они, чуть писанины меньше относительно конката.
За что так XtraDB? Кто знает?
https://mariadb.com/kb/en/mariadb/what-is-mariadb-102/
Основные фичи XtraDB уже есть в InnoDB и авторы не видят смысла поддерживать 2 почти идентичных движка. Что не хватало в InnoDB они уже реализовали в своем форке.
XtraDB не движок а патч расшереня для innodb, всегда ваш кэп.
> За что так XtraDB? Кто знает?https://www.percona.com/software/mysql-database/percona-serv...
Ого, CTE и оконные функции!Уже похоже на настоящую РСУБД.
Такая же немасштабируемая горизонтально прелесть, которая перекладывает сложность на уровень приложения либо дохнет как только получает сколько-нибудь весомый кусок данных и поток запросов?
>> немасштабируемая горизонтальноgalera же
> Такая же немасштабируемая горизонтально прелесть, которая перекладывает сложность на
> уровень приложения либо дохнет как только получает сколько-нибудь весомый кусок данных
> и поток запросов?как там внизу - "шел 2017й год", разработчики карманной тазы-банных для небольших сайтов без претензий на мировое господство все еще пытались выпилить из ее деталей оракл. stop... oh, shit...
зато уеб-девелоперы любят...
Не забывай только, что сракл для метаданных использует BerkeleyDB
может, они ее готовить умеют? berkleyDB когда ее еще делали в berkley была (по тем временам, ни мемкэша ни sqlite даже в самых смелых мечтах еще не было) отличным хранилищем если тебе подходил формат key-value, но - для мелких задачек, умещающихся в локальной системе, не более.
Потом проект попал в руки эффективных, альтернатив во времена версии 2 толком не было, кто не опоздал родиться, тот до сих пор с содроганием вспоминает. Включая и bdb-backend самого mysql ;-)
Что там понаписали во времена "инвесторы любят большие числа" - пусть выясняют другие, я лучше в сторонке постою.
>> Такая же немасштабируемая горизонтально прелесть, которая перекладывает сложность на
>> уровень приложения либо дохнет как только получает сколько-нибудь весомый кусок данных
>> и поток запросов?
> как там внизу - "шел 2017й год", разработчики карманной тазы-банных для небольших
> сайтов без претензий на мировое господство все еще пытались выпилить из
> ее деталей оракл. stop... oh, shit...
> зато уеб-девелоперы любят...Ненене. Каждый сайт визитка должен быть на оркале. Корпоративные закупщики и прочие бенефециары всемерно одобряют.
Про CAP-теорему напомнить? Невозможно сделать инструмент одновременно и масштабируемый и обеспечивающий целостность (не eventual, а полноценно).Для разных задач - разные инструменты.
> Про CAP-теорему напомнить? Невозможно сделать инструмент одновременно и масштабируемый
> и обеспечивающий целостность (не eventual, а полноценно).
> Для разных задач - разные инструменты.Можно. Если выбрать из CAP не AP, а CP и пожертвовать доступностью.
> Для разных задач - разные инструменты.
Согласен. Но если данных много, то так или иначе придется выбирать CP или AP, потому что вертикально масштабироваться — бомба замедленного действия. И лучше этот выбор продумать или заложить заранее. И здесь Maria — не в тему. Если же данных мало, то, скорее всего, уже текущей функциональности хватает для 99.99% кейсов.
Да, имеем выбор между eventual consistency и eventual availability. Для второго РСУБД с шардингом вполне себе. Для первого - полно других инструментов.
> Да, имеем выбор между eventual consistency и eventual availability. Для второго РСУБД
> с шардингом вполне себе. Для первого - полно других инструментов.
> Для второго РСУБД с шардингом вполне себе.Вот только шардинг на РСУБД — это то еще веселье.
Уж мне ли не знать, я с этим работал еще 10 лет назад.
Отдельное веселье с mysql-ем с нетранзакционным DDL - на лету создавать дополнительные таблицы просто опасно. Приходится заранее прогнозировать и аллоцировать.Сейчас чуточку проще стало, есть всякие ProxySQL/Kingshard. Хотя, в принципе, примерно такой же код, только на уровне инфраструктурного слоя приложения, и у меня был.
>>> Для второго РСУБД с шардингом вполне себе.
>Уж мне ли не знать, я с этим работал еще 10 лет назад.Так может РСУБД все же не лучший инструмент для этих задач? Если когда данных становится много, приходится бегать с бубнами, плакать, есть кактус и пытаться всунуть в него шардинг после чего не дышать, чтобы оно не сдохло.
А когда уже не хватает серверов и приходится делать ребалансировку? А распределение таблиц так, чтобы все нужные JOIN-ы работали? А распределенные JOIN-ы, если они понадобились? Все это будет болью и мучениями.
И РСУБД нужно для этих целей выбирать потому что... ? Потому что лет 10, ну или даже 5, назад это было лучшим решением для этих целей? Когда-то лошадь была лучшим решением для быстрого перемещения на большие расстояния, если две точки соединены сушей. Вот только потом появился автомобиль, построенный на других принципах. А потом — поезд. А потом — самолет.
> Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров.зависящую только от жадности Вендиуса.. Один раз он уже продал компанию..
> Удалена старая клиентская библиотека, поставляемая под лицензией GPL, на смену которой пришла новая библиотека, имеющая лицензию LGPL.Все идет к тому что бы можно было закрывать код..
>Добавлен скрипт mysqlbinlog для организации непрерывного бэкапа бинарного лога. Скрипт поддерживает режим flashback, при помощи которого можно откатить состояние БД или отдельной таблицы на ранее созданный снапшот;шол 2017-ый год
Ужос. До 2017г каждый делал это скрипт сам.
> Из недостатков MyRocks можно отметить отсутствие поддержки внешних ключей и полнотекстовых индексов;
> отсутствие полнотекстовых индексов:(
>> Из недостатков MyRocks можно отметить отсутствие поддержки внешних ключей и полнотекстовых индексов;
>> отсутствие полнотекстовых индексов
> :(Из недостатков MyRocks можно отметить отсутствие поддержки тупо nosql хранилка.
Не шибко для полутора лет. Но теперь есть подтверждение, разработка действительно идет со скоростью улитки...
так ведь деньги получение от Sun уже проедены.. а других не дают..
Какие деньги от Sun?
apt-cache search mariadb-pluginapt-get install mariadb-plugin-rocksdb
Обновил свою 10.1.24, увидел небольшой присрост скорости (3-5%)
У меня таблица innodb с партициями по месяцам за последние 3 года - занимает около 300гб. Сервер с 32гб оперативки. В 10.1.24 innodb_buffer_pool_size=24G и все отлично работало. Так как данные часто используемые это последние 1-2 месяца. После обновления, меньше чем сутки 10.2.6 3 раза ресетнулась. Жрет оперативку и виртуальное пространство. Система ее рубит. Выставил innodb_buffer_pool_size=8G - все равно через некоторое время занимает 98% оперативки и 650 ГИГАБАЙТ виртуалки https://cloud.mail.ru/public/2wuz/vvfiCAyam
Незнаю кто мне сможет помочь, обратный откат только через бекап, а это на несколько суток. Столько времени мне никто не даст
Вот уже 666 Гигов и постоянно растет https://s.mail.ru/G2oj/5sGv2tmDq
Куда писать? Чтоб разработчики устранили баг. При ресете иногда крашатся некоторые таблицы, пока славо богу основная не крашнулась - иначе будет затык на долгое время. Сейчас спасает только ручная перезагрузка марии каждые 3-4 часа
Уже 707 гигов, доходит до 2 террабайт и марию рубит система
https://s.mail.ru/ARGV/1e7KgXiRn