Название базовой системы (платформы): | MySQL |
Разработчики: | MariaDB (ранее SkySQL) |
Дата последнего релиза: | 2015/10/17 |
Технологии: | СУБД |
Содержание |
MariaDB — ответвление СУБД MySQL, разрабатываемое сообществом и фирмой SkySQL.
Описание
Разработчик продукта компания Monty Program Ab во главе с Майклом Вайдениусом.
Толчком к созданию СУБД послужила необходимость обеспечения свободного статуса СУБД (под лицензией GPL), в противовес неопределенной политике лицензирования MySQL компанией Oracle. Продукт распространяется и используется согласно лицензии GNU GPL v.2, GNU LGPL.
Система написана с использованием: C, C++, Perl, Bash. Продукт работает под управлением ОС Linux и UNIX-подобных, Windows.CommuniGate Pro: итоги первого года работы законного правообладателя
Действующая на 30 января 2014 года версия 5.5.35.
2014: MariaDB Enterprise 1.0
23 января 2014 года компания SkySQL и сообщество разработчиков СУБД MariaDB представили новый открытый продукт MariaDB Enterprise 1.0 - СУБД высокого уровня готовности.
MariaDB Enterprise поддерживает технологию кластерной репликации Galera Cluster и помогает упростить и ускорить развёртывание.
Система предоставляет средства для организации синхронной репликации данных между несколькими узлами (применяется топология active-active multi-master, позволяющая чтение и запись для любого узла), при которой все узлы всегда содержат актуальные данные. На разных узлах транзакции могут выполняться в параллельном режиме, гарантируя при этом неизменность состояния кластера в целом, независимо от выполняемых в данный момент транзакций. Репликация выполняется в параллельном режиме, на уровне строк, с передачей только информации об изменениях.
В основе MariaDB Enterprise - MariaDB Manager - интерфейс для мониторинга и управления, состоящий из компонентов:
- Базовая прослойка с реализацией API;
- Monitor - движок для сбора данных, устанавливаемый на управляющем узле кластера, производящий опрос СУБД на узлах кластера и осуществляющий накопление, сохранение и анализ статистики;
- WebUI - web-интерфейс администратора кластера, устанавливаемый на управляющем узле;
- Agent - набор скриптов, устанавливаемый на каждом узле кластера и позволяющий взаимодействовать с узлом через API;
Исходные тексты компонентов MariaDB Enterprise опубликованы под лицензией GPL v2. Готовые сборки (пока только для CentOS 6.x) предоставляются через соответствующий репозиторий после бесплатной регистрации.
2015: Вышел стабильный релиз MariaDB 10.1
17 октября 2015 года MariaDB Foundation выпустила первый стабильный выпуск ветки СУБД MariaDB 10.1, в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей[1].
Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с полностью открытым и прозрачным процессом разработки, не зависящим от отдельных вендоров. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL 7, SUSE 12, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian 9). Система внедрена в проектах: Wikipedia, Google Cloud SQL и Nimbuzz.
Основные улучшения MariaDB 10.1
- Поддержка шифрования таблиц и логов транзакций, которое позволяет защититься от утечки данных в случае кражи жесткого диска, но бесполезно в ситуации получения контроля над работающей СУБД, например, в результате атаки через подстановку SQL-запроса или взлома системы. При включении шифрования накладные расходы увеличиваются на 3-5%. Ключи шифрования имеет смысл хранить на отдельном защищённом сервере с включением системы ротации ключей, подразумевающей периодическое перешифрование с новым ключом после устаревания текущего ключа. Поддержка шифрования реализована в хранилищах XtraDB и InnoDB. Предлагается несколько схем: шифрование выбранных таблиц, шифрование всех таблиц в БД и шифрование всех таблиц за исключением выбранных. Благодаря шифрованию лога транзакций защита также обеспечивается в системах с репликацией;
- Включение в базовую поставку технологии синхронной multi-master (active-active) репликации Galera, ранее предлагаемой в рамках отдельного продукта MariaDB Galera Cluster. Galera расширяет возможности СУБД MariaDB средствами синхронной репликации, при которой все узлы всегда содержат актуальные данные, т.е. гарантируется отсутствие потерянных транзакций, так как транзакция фиксируется только после распространения данных по всем узлам. При этом, в рамках транзакции операции выполняются сразу, задержка из-за ожидания подтверждения возникает только при выполнении операции "commit". Репликация выполняется в параллельном режиме, на уровне строк, с передачей только информации об изменениях. Управление принадлежностью узлов кластеру выполняется автоматически, сбойные узлы сразу исключаются из кластера без участия администратора, новые узлы при необходимости можно подключить на лету без дополнительной переконфигурации;
- Возможность репликации данных c MySQL 5.6 при включении на MySQL поддержки GTID, т.е. MySQL теперь может использоваться в роли master-сервера для MariaDB. Указанная возможность позволяет существенно упростить тестирование в процессе миграции с MySQL на MariaDB;
- Поддержка сжатия страниц данных для хранилищ InnoDB и XtraDB. От ранее доступного механизма сжатия (row_format=compressed) новый метод отличается возможностью выбора различных алгоритмов сжатия (zlib, lz4, lz0, lzma, bzip2 и snappy) и иной организацией процесса работы с упакованными данными. Если в традиционной реализации в буфере находятся как сжатые, так и ещё не упакованные данные, то новая схема подразумевает нахождение в буфере только распакованных данных - страницы сжимаются перед записью в хранилище и распаковываются после чтения. Новый метод наиболее эффективен при использовании SSD-накопителей или NVM-памяти. Наилучшие результаты наблюдаются при использовании плат FusionIO;
- Реализована система дефрагментации хранилищ InnoDB, основанная на наработках, предоставленных компанией Facebook. Ранее, при удалении строк из InnoDB они лишь помечались удалёнными и становились доступны для новых записей без фактического освобождения блоков на диске и без возвращения дискового пространства системе. Выполнение "OPTIMIZE TABLE" решает указанную проблему, но путём полного перестроения таблицы с копированием имеющихся данных на новое место, т.е. требует наличия большого объёма свободного дискового пространства. После включения в файле конфигурации поддержки дефрагментации (innodb-defragment=1), выполнение команды "OPTIMIZE TABLE" не приводит к копированию в новые таблицы, а реализуется через механизм перемещения записей;
- Реализован "оптимистичный" режим параллельной репликации, который значительно упрощён по сравнению с появившимися в MariaDB 10.0 средствами параллельной репликации slave-серверов. В частности, обеспечена возможность параллельного применения к slave-серверу любых операций INSERT/UPDATE/DELETE, даже если они пока не завершены на master-сервере;
- Возможность проверки степени надёжности задаваемого пароля при помощи плагинов simple_password_check и cracklib_password_check;
- Внесена порция оптимизаций производительности, позволивших снизить нагрузку на CPU и увеличить эффективность работы на многоядерных системах. Тестирование показало прирост числа обрабатываемых транзакций от 135 до 190% и возможность обработки более миллиона OLTP-операций в секунду;
- Добавлены команды "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", позволяющей определить роль по умолчанию, применяемую ко всем новым соединениям;
- Поддержка systemd.
Примечания
Подрядчики-лидеры по количеству проектов
SAP CIS (САП СНГ) (38)
Softline (Софтлайн) (35)
РДТЕХ (33)
BeringPro (БерингПойнт) ранее BearingPoint Russia (28)
ФОРС - Центр разработки (25)
Другие (741)
Сапиенс солюшнс (Sapiens solutions) (7)
BeringPro (БерингПойнт) ранее BearingPoint Russia (3)
Navicon (Навикон) (3)
Softline (Софтлайн) (2)
Wone IT (Ван Ай Ти Трейд, ранее SoftwareONE Россия, СофтвэрУАН и Awara IT Russia, Авара Ай Ти Солюшенс) (2)
Другие (35)
Группа Борлас (Borlas) (1)
Диасофт (Diasoft) (1)
КРИТ (KRIT) (1)
Корус Консалтинг (1)
Arenadata (Аренадата Софтвер) (1)
Другие (20)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
Oracle (44, 179)
SAP SE (6, 178)
Microsoft (23, 142)
PostgreSQL Global Development Group (14, 129)
Постгрес профессиональный (ППГ, Postgres Professional) (6, 41)
Другие (265, 252)
SAP SE (3, 11)
Microsoft (3, 11)
PostgreSQL Global Development Group (3, 10)
Oracle (2, 4)
Постгрес профессиональный (ППГ, Postgres Professional) (2, 3)
Другие (10, 13)
PostgreSQL Global Development Group (4, 9)
Постгрес профессиональный (ППГ, Postgres Professional) (2, 6)
VK Tech (ранее VK Цифровые технологии, ВК Цифровые технологии и Mail.ru Цифровые технологии) (2, 3)
Arenadata (Аренадата Софтвер) (3, 2)
Oracle (2, 2)
Другие (9, 9)
PostgreSQL Global Development Group (3, 13)
Постгрес профессиональный (ППГ, Postgres Professional) (1, 6)
Arenadata (Аренадата Софтвер) (3, 5)
Apache Software Foundation (ASF) (3, 4)
Тантор Лабс (Tantor Labs) (2, 3)
Другие (8, 10)
PostgreSQL Global Development Group (4, 12)
Arenadata (Аренадата Софтвер) (3, 7)
VMware (2, 7)
Постгрес профессиональный (ППГ, Postgres Professional) (2, 6)
Диасофт (Diasoft) (1, 3)
Другие (7, 8)
Распределение систем по количеству проектов, не включая партнерские решения
Oracle Database - 106
Microsoft SQL Server - 104
SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 103
PostgreSQL СУБД - 81
SAP HANA (High Performance Analytic Appliance) - 72
Другие 382
Microsoft SQL Server - 9
SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 8
PostgreSQL СУБД - 7
SAP HANA (High Performance Analytic Appliance) - 3
Oracle Database - 3
Другие 21
Postgres Pro СУБД - 5
ADB - Arenadata DB - 2
PostgreSQL СУБД - 2
Tarantool Платформа in‑memory вычислений - 2
Oracle Database - 2
Другие 13
Postgres Pro СУБД - 6
PostgreSQL СУБД - 4
Tantor СУБД - 3
ADB - Arenadata DB - 3
Apache Kafka - 2
Другие 10
ADB - Arenadata DB - 6
PostgreSQL СУБД - 5
Postgres Pro СУБД - 4
Diasoft Digital Q.Database - 3
СберТех: Platform V Pangolin - 2
Другие 10