The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

31.03.2014 17:21  Стабильный выпуск СУБД MariaDB 10.0

После полутора лет разработки увидел свет первый стабильный выпуск новой ветки СУБД MariaDB 10.0, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров. MariaDB уже поставляется вместо MySQL в таких дистрибутивах, как RHEL 7, Fedora, openSUSE, Slackware и Arch Linux. Состоятельность проекта и способность обеспечить соответствующую корпоративным стандартам техническую поддержку подтверждены миграцией на MariaDB таких крупных проектов, как Wikipedia, Google Cloud SQL и Nimbuzz.

Выпуск MariaDB 10.0 продолжает развитие кодовой базы MariaDB 5.5 и содержит ряд возможностей, бэкпортированных из ветки MySQL 5.6. Прошлые ветки MariaDB нумеровались синхронно с ветками MySQL, на которых они были основаны, но начиная с представленного выпуска MariaDB уже не является просто набором патчей, применённых поверх MySQL, а содержит достаточно большой набор дополнительных функций и возможностей, реализованных иначе, чем в MySQL (например, пул тредов, поддержка микросекунд и аннотированные запросы). Изменился также и метод синхронизации с кодовой базой MySQL, отныне первичным в разработке является код MariaDB, в который бэкпортируются новшества MySQL. В связи с этим, чтобы более явно обозначить независимость разработки от MySQL было решено присвоить очередному релизу MariaDB номер 10.

Ключевые улучшения MariaDB 10.0:

  • Новое хранилище Connect, позволяющее организовать доступ к произвольным локальным или удалённым данным, в виде, как если бы они были сохранены в таблице. Например можно ассоциировать содержимое виртуальной таблицы с данными из файла в определённом формате;
  • Новое хранилище Cassandra Storage Engine (SE), добавляющее в MariaDB и MySQL поддержку средств для доступа к данным, хранимым в распределённой БД Apache Cassandra. Используя Cassandra SE разработчики получают возможность обращаться к данным и добавлять данные в БД Cassandra при помощи обычных SQL-запросов. При этом используемая в Cassandra модель хранения данных в виде семейства столбцов (ColumnFamily) отображается в форме свойственных для MariaDB/MySQL таблиц, для которых можно применять стандартные SQL-директивы SELECT, INSERT, DELETE и UPDATE, а также выполнять операции объединения (JOIN) с другими таблицами.
  • Интеграция хранилища SPIDER с реализацией системы шардинга, позволяющей разносить большие таблицы на несколько серверов. С точки зрения формирования запросов такие таблицы не отличаются от обычных локальных таблиц, но фактически при использовании SPIDER разные порции данных, составляющих одну таблицу, хранятся на разных серверах. Для обеспечения высокой доступности таблиц, распределённых по серверам при помощи SPIDER, могут применяться новые средства репликации.
  • Хранилище Sequence для формирования виртуальных таблиц, заполненных возрастающими или убывающими последовательностями (например, seq_1_to_5 или seq_5_to_1_step_2).
  • Улучшенная реализация динамических столбцов, позволяющих получить различный набор "виртуальных столбцов" для каждой строки в таблице. Добавлена поддержка запросов в формате JSON и возможность интеграции с БД Cassandra;
  • Многочисленные оптимизации производительности, позволяющие в MariaDB 10 добиться многократного ускорения некоторых операций по сравнению с MySQL и прошлыми ветками MariaDB. Среди ключевых оптимизаций отмечается поддержка параллельной репликации и развитие системы групповых коммитов. Добавлены дополнительные оптимизации выполнения вложенных запросов, например преобразование выражений "NOT EXISTS" в блоки "IN";
  • Улучшены средства репликации. Обеспечена защита работы реплицируемых slave-серверов от проблем в случае краха. Добавлена поддержка репликации данных от нескольких master-серверов (multi-source репликации). Из примеров использования multi-source репликации упоминается решение задач сбора в одном месте данных, разнесённых на разные машины, с целью выполнения аналитических запросов или для создания резервной копии;
  • Поддержка глобальных идентификаторов транзакций;
  • Возможность использования проверки IF (NOT) EXIST для выражений ALTER TABLE;
  • Улучшенный вывод сообщений об ошибках. Все числовые номера ошибок теперь сопровождаются пояснительными текстами.
  • Поддержка выражения "SHOW EXPLAIN FOR thread_id" для анализа запроса, выполняемого в заданной нити. Так как "SHOW EXPLAIN" учитывает план выполнения оптимизатором реального запроса, он позволяет получить более близкие к реальности показатели, чем выполнение запроса внутри "EXPLAIN";
  • В InnoDB добавлены дополнительные оптимизации, позволяющие зметно ускорить выполнения транзакций, не выполняющих операции записи и изменения данных. Для выполнения транзакций в режиме чтения добавлена новая команда "TRANSACTION READ ONLY";
  • Оптимизировано выполнение конструкции "LIMIT ... ORDER BY";
  • Поддержка автоматического обновления времени (timestamp) в DATETIME;
  • Хранимые в памяти таблицы с эффективной поддержкой типов VARCHAR и BLOB;
  • Универсальная система накопления статистики об активности и наполнении таблиц для использования оптимизатором запросов, реализованная без привязки к конкретным движкам хранения;
  • Поддержка анализа потребления памяти в привязке к отдельной нити;
  • Значительное ускорение работы конструкций ALTER TABLE для хранилищ Aria и MyISAM при наличии проверки уникальных ключей;
  • Улучшения портированные из MySQL 5.6:
    • Обновлённый вариант хранилища InnoDB.
    • Поддержка движка PERFORMANCE_SCHEMA и связанной с ним базы performance_schema, предоставляющей низкоуровневые средства для мониторинга за выполнением запросов и различными событиями при работе СУБД;
    • Режим только для чтения для транзакций в InnoDB, поддержка выражения "TRANSACTION READ ONLY";
    • Оптимизации скорости выполнения запросов вида "ORDER BY ... LIMIT".
    • Поддержка "--plugin-load-add";
    • Возможность выполнения "ALTER TABLE" на лету;
    • Установка привилегий для временных таблиц;
    • Расширения, связанные с поддержкой кодировок;
    • Выражение "GET DIAGNOSTICS";
    • Временные литералы (например, TIME'12:34:56').



Ранее реализованные улучшения, отличающие MariaDB от MySQL:

  • Дополнительные движки хранилищ:
    • Aria (ранее Maria) - основанное на MyISAM высоконадежное хранилище, отличающееся повышенной устойчивостью и сохранению целостности данных после краха, при полной совместимости с MyISAM. Благодаря ведению лога операций, в случае краха производится откат результатов выполнения текущей операции. Также поддерживается возможность восстановления состояния из любой точки в логе операций (включая поддержку CREATE/DROP/RENAME/TRUNCATE).
    • XtraDB - движок основанный на коде InnoDB-plugin и полностью совместимый с ним, но отличающийся заметно более высокой производительностью, благодаря интеграции патчей от компаний Google и Percona. В частности, в XtraDB улучшен механизм работы с памятью, улучшена работа подсистемы ввода/вывода InnoDB, добавлена поддержка нескольких потоков чтения и записи, поддержка управления пропускной способностью, реализация упреждающей выборкой данных (read-ahead), адаптивная установка контрольных точек (adaptive checkpointing), расширены возможности по масштабированию для больших проектов, система организации блокировок адаптирована для работы на системах с большим числом CPU, добавлены дополнительные возможности для накопления и анализа статистики.
    • PBXT (PrimeBase XT) - хранилище, разработанное с нуля и поддерживающее мультиверсионный метод организации хранения данных MVCC (multi-version concurrency control), позволяющий избавиться от блокировок при выполнении операций чтения. PBXT поддерживает ACID-совместимые транзакции, быстрый откат транзакций и восстановление после некорректного завершения работы сервера. Имеются средства для обеспечения ссылочной целостности данных, поддержка определения внешних ключей (foreign key), каскадных обновлений и удалений данных. Поддерживается возможность прямого потокового ввода и вывода бинарных данных (BLOB) в БД;
    • FederatedX - позиционируется в качестве замены разработанного в Sun Microsystems и уже не поддерживаемого хранилища Federated. FederatedX позволяет организовать обращение к удаленным таблицам как к локальным. Имеется поддержка транзакций, одновременной установки нескольких соединений к удаленной СУБД, использования операций "LIMIT";
    • OQGRAPH - хранилище для организации иерархических (древовидных) структур и сложных графов (узлов, имеющих множество связей);
    • Sphinx - хранилище для построения поисковых движков. Встроенный Sphinx-клиент позволяет MariaDB обмениваться данными с searchd, выполнять поисковые запросы и получать результаты поиска;
  • Интеграция более эффективного аналога коммерческого дополнения "Thread Pool", представляемого в продукте MySQL Enterprise. Thread Pool представляет собой реализацию новой высокомасштабируемой модели многопоточной обработки, нацеленной на сокращение издержек при обслуживании соединений клиентов и при ответвлении выполняющих запросы потоков. Наиболее заметное повышение производительности демонстрируется при выполнении высоконагруженных web-приложений, обслуживающих большое число параллельных запросов, в сочетании с работой на серверах, имеющих 16 и более процессорных ядер;
  • Включение в состав библиотеки с реализацией неблокирующего клиенского API. Неблокирующий API позволяет отправить запрос к СУБД и не дожидаясь его завершения сразу перейти к дальнейшим действиям. После того как будет готов результат запроса, приложение будет информировано через callback-вызов. Подобный подход оправдан когда нужно выполнить одновременно несколько независимых запросов к базе, обратиться к нескольким СУБД или сформировать запросы из приложений, изначально написанных в соответствии с неблокирующим стилем разработки, например, использующих libevent или event loop. Новый API реализован исключительно на уровне клиентской библиотеки и не требует от сервера какой-либо дополнительной функциональности, что позволяет использовать неблокирующий API с любыми выпусками MariaDB и MySQL. Библиотека также полностью совместима с уже собранными приложениями на уровне API и ABI;
  • Виртуальные столбцы, содержимое которых формируется на основе заданного выражения, рассчитываемого во время выполнения;
  • Расширенная статистика об активности клиентов, пользователей, индексов и таблиц;
  • Сегментированный кэш MyISAM-ключей - глобальный мьютекс разбит на несколько мьютексов, что дает существенный прирост производительности (до 70%) в системах с большой нагрузкой из параллельных запросов;
  • Подключаемые модули аутентификации - возможность реализации плагинов, которые могут добавлять новые методы аутентификации в MariaDB;
  • Привязанные к типу хранилищ выражения "CREATE TABLE", дающие возможность определить передаваемые хранилищу дополнительные атрибуты для каждого поля, индекса или таблицы;
  • Возможность создания пула потоков, позволяющего использовать заданное число mysql-нитей для обработки всех запросов, вместо механизма "одна нить на одно соединение". В итоге можно значительно увеличить производительность БД, обрабатывающих большое число соединений или имеющих большое число длительно выполняющихся запросов;
  • Ликвидация таблиц - новый вид оптимизации операций по объединению таблиц (JOIN), позволяющий исключить обращения к некоторым таблицам, на которые ссылается запрос пользователя;
  • HandlerSocket - реализация интерфейса прямого доступа к таблицам InnoDB/XtraDB в стиле NoSQL-систем. Поддерживаются такие операции, как добавление, обновление, чтение и удаление ключа;
  • Поддержка динамических столбцов, позволяющих получить различный набор "виртуальных столбцов" для каждой строки в таблице;
  • Добавлено множество патчей, созданных компанией Percona и сообществом независимых разработчиков. Например, добавлен патч для выявления узких мест при работе с базой. Кроме отслеживания запросов выполняющихся более заданного времени, поддерживается занесение в лог информации о запросах приводящих к перебору большого числа строк, сложным сортировкам, задействованию временного файла на диске или удовлетворяющих параметрам заданного фильтра (qc_miss, full_scan, full_join, tmp_table, tmp_table_on_disk, filesort, filesort_on_disk). В отличии от стандартного механизма ведения лога медленных запросов, msl оперирует не секундами, с округлением в большую сторону, а отрезками 0.005 сек.


  1. Главная ссылка к новости (https://blog.mariadb.org/the-m...)
  2. OpenNews: Увидел свет открытый продукт MariaDB Enterprise 1.0
  3. OpenNews: Компании Monty Program Ab и SkySQL объявили о слиянии с целью объединения усилий по развитию СУБД MariaDB
  4. OpenNews: Основная инфраструктура Wikipedia переведена с MySQL на MariaDB
  5. OpenNews: Первый стабильный выпуск кластерной СУБД MariaDB Galera
  6. OpenNews: Facebook представил WebScaleSQL, высоко масштабируемый вариант MySQL
Лицензия: CC-BY
Тип: Интересно
Ключевые слова: mariadb, mysql, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, A.Stahl, 18:10, 31/03/2014 [ответить] [смотреть все]
  • –5 +/
    Эй, бородастые-свитерастые Можно ей уже пользоваться Насколько я понял задумка... весь текст скрыт [показать]
     
     
  • 2.2, ATgroup09, 18:17, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Уже год как пользуюсь параллельно с MySQL Танцев с бубном в плане переноса и ... весь текст скрыт [показать] [показать ветку]
     
  • 2.3, Лишение, 18:24, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    10-я ветка лишилась обратной совместимости, вот так.
     
     
  • 3.4, Девственно, 18:25, 31/03/2014 [^] [ответить] [смотреть все]  
  • +5 +/
    Прошу прощения — не лишилась.
     
  • 3.18, NikolayV81, 09:21, 01/04/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Она не будет синхронно с mysql развиваться.
     
  • 2.8, noize, 19:07, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    используем у себя в конторе в полный рост, проблем не знаем
     
  • 2.13, umbr, 22:27, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    5.5 - полет нормальный, 10-ю пока не тестил.
     
  • 1.5, Аноний, 18:32, 31/03/2014 [ответить] [смотреть все]  
  • +/
    Последний раз когда я щупал мускуль, он не осилил полнотекстовый поиск. Интересно сейчас что-нить поменялось?
    <TrollMode>Чем только люди не занимаются, чтобы не ставить постгрес</TrollMode>
     
     
  • 2.17, rshadow, 23:21, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Поиск с морфологией приделывается через сфинкс...
     
     
  • 3.22, Аноний, 10:32, 01/04/2014 [^] [ответить] [смотреть все]  
  • +/
    Cфинкс это отдельный движок, а я хотел чтоб из коробки все работало Но таки гуг... весь текст скрыт [показать]
     
  • 1.6, Аноним, 18:42, 31/03/2014 [ответить] [смотреть все]  
  • +/
    тестируя запросы на MariaDB , и залив на продакшн где MySQL некоторые из запросо... весь текст скрыт [показать]
     
     
  • 2.7, Xasd, 19:04, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    после этого сообщение -- начинает складываться ассоциация что MySQL это этакая р... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, ананим, 22:43, 31/03/2014 [^] [ответить] [смотреть все]  
  • +/
    Неудивительно. Они одноклассники.
     
     
  • 4.24, Аноним, 11:47, 01/04/2014 [^] [ответить] [смотреть все]  
  • +/
    С SYBASE не путай.
     
     
  • 5.27, ананим, 13:02, 01/04/2014 [^] [ответить] [смотреть все]  
  • +/
    Ха! Я и не путаю.
     
  • 1.9, Аноним, 19:15, 31/03/2014 [ответить] [смотреть все]  
  • –2 +/
    А поцчему не 459 ... весь текст скрыт [показать]
     
     
  • 2.10, 172 New Bond Street, 19:37, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Чтобы никто не догадался
     
  • 2.19, NikolayV81, 09:25, 01/04/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    вероятно клоны 5 х будут развиваться параллельно с Oracle My SQL, ну и что-бы ... весь текст скрыт [показать] [показать ветку]
     
  • 1.11, Аноним, 21:10, 31/03/2014 [ответить] [смотреть все]  
  • –1 +/
    Вот бы еще где нормальное сравнение с Percona найти...
     
  • 1.12, Аноним, 21:13, 31/03/2014 [ответить] [смотреть все]  
  • –1 +/
    Подскажите, в MariaDB можно в пределах одной таблицы сделать партиции типа Innod... весь текст скрыт [показать]
     
     
  • 2.14, ананим, 22:39, 31/03/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А вьюху из 2-х таблиц уже не судьба?
     
     
  • 3.21, Аноним, 10:28, 01/04/2014 [^] [ответить] [смотреть все]  
  • +/
    1 Партицированная таблица одна, через VIEW их надо создавать вручную, много, да... весь текст скрыт [показать]
     
     
  • 4.23, NikolayV81, 11:17, 01/04/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    ИМХО эта не задача базы данных А сохранность данных в структуре таблице и в... весь текст скрыт [показать]
     
  • 4.28, ананим, 13:06, 01/04/2014 [^] [ответить] [смотреть все]  
  • +/
    Бред Зыж Что значит вручную Для этого и придумали хранимые процедуры, триггеры... весь текст скрыт [показать]
     
     
  • 5.29, Аноним, 19:45, 01/04/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Это всё костыли База должна уметь гибко подстраиваться под данные, которые в не... весь текст скрыт [показать]
     
     
  • 6.31, ананим, 21:49, 01/04/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    База данных должна хранить данные.
    Вот и храни. В 2-х таблицах.
     
     
  • 7.32, ананим, 21:52, 01/04/2014 [^] [ответить] [смотреть все]  
  • +/
    Зыж
    Это ещё про материализованные вьюхи не говорил.

    Ззыж
    Но для неофитов придумывать костыли — самое то.
    Потом же костыльно и отлаживать.

     
  • 7.35, Аноним, 16:08, 06/04/2014 [^] [ответить] [смотреть все]  
  • +/
    Это уже давно не так Современная база должна не только хранить данные, но и упр... весь текст скрыт [показать]
     
  • 6.34, XoRe, 19:13, 04/04/2014 [^] [ответить] [смотреть все]  
  • +/
    > Это всё костыли. База должна уметь гибко подстраиваться под данные, которые в
    > ней требуется хранить.

    Интересное мнение :)

     
  • 1.16, Аноним, 23:19, 31/03/2014 [ответить] [смотреть все]  
  • +/
    Пару интересных патчей - http mysql taobao org index php Patch_source_code Opt... весь текст скрыт [показать]
     
  • 1.20, NikolayV81, 09:33, 01/04/2014 [ответить] [смотреть все]  
  • –1 +/
    А про докручивание до ума обновления и вставки данных в триггерах уровня таблицы изменяющих данные в той же таблице так и не слышно :(
     
  • 1.25, Аноним, 12:02, 01/04/2014 [ответить] [смотреть все]  
  • –1 +/
    Это такая тонкая первоапрельская шутка, да Да ... весь текст скрыт [показать]
     
     
  • 2.26, Могикан, 12:31, 01/04/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    31-ая мартовская

    "31.03.2014 17:21  Стабильный выпуск СУБД MariaDB 10.0 "

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor