MariaDB
![]() |
|
|---|---|
| Розробник(и) | Monty Program Ab MariaDB Foundation |
| Перший випуск | 22 січня 2009 |
| Стабільний випуск | 5.5.30 (12 березня 2013) |
| Написано на | C, C++, Perl, Bash |
| Операційна система | крос-платформова |
| Доступні мови | англійська |
| Тип | Реляційна система керування базами даних |
| Ліцензія | GNU General Public License (version 2) |
| Сайт | mariadb.org |
MariaDB — відгалуження (форк) бази даних MySQL. MariaDB поширюється під вільною та відкритою ліцензією GPL.
Зміст |
Історія [ред.]
Поштовхом для створення MariaDB стала непевність спільноти розробників та користувачів невизначеною долею і ліцензією MySQL після її придбання Oracle. Засновник MySQL і ідеолог створення MariaDB Монті Віденіус назвав MySQL «мертвою».
Проект MariaDB почала розвивати компанія Monty Program Ab, створена Майклом Віденіусом, після його відходу з Sun Microsystems. У розробці MariaDB також брали участь компанії SkySQL і Percona, котрі розвивають власні продукти та надають сервіс супроводу та підтримки для рішень на базі MySQL.
Проект підтримує високу ступінь сумісності з MySQL , включаючи "вставку" замінних можливостей бінарним еквівалентом бібліотек і відповідністю з існуючим API і командами MySQL. Навіть перша стабільна версія СУБД отримала номер 5.2, ніби продовжуючи лінійку MySQL. MariaDB включає два нових вдосконалених рушія баз даних: Aria (раніше відомого як Maria) на заміну MyISAM, та XtraDB як заміну InnoDB. Серія MariaDB 5.2.x за функціональністю сумісна з MySQL 5.1.x і заснована на тій же кодовій базі, що дозволяє здійснити міграцію з MySQL на MariaDB без виникнення проблем з сумісністю. Незважаючи на збереження зворотної сумісності, в MariaDB додана підтримка декількох нових сховищ (FederatedX, PBXT, XtraDB, Aria, OQGRAPH, Sphinx), реалізовані додаткові оптимізації, додані нові можливості (наприклад, віртуальні стовпці та Plug-in аутентифікації) і інтегровані патчі, створені компанією Percona і співтовариством незалежних розробників.
Перші випуски MariaDB нумерувалися синхронно з гілками MySQL, на яких вони були засновані. Але в листопаді 2012, щоб явно позначити незалежність розробки від MySQL, вирішено було присвоїти черговому релізу MariaDB номер 10.0.[1] Це значить, що MariaDB вже не є просто набором патчів, застосованих поверх MySQL, а містить досить великий набір додаткових функцій і можливостей, реалізованих інакше, ніж в MySQL (наприклад, пул тредів, підтримка мікросекунд і анотовані запити). Змінився також і метод синхронізації з кодовою базою MySQL, коли первинним у розробці став код MariaDB, в який бекпортуються нововведення MySQL.
MariaDB Foundation [ред.]
У грудні Майкл Віденіус (Michael Widenius), Девід Аксмарк (David Axmark) і Аллан Ларсон (Allan Larsson), що заснували в 1995 році компанію MySQL AB, спільно з Патріком Соллнером (Patrick Sallner), директором компанії SkySQL, і Петром Зайцевим, співзасновником компанії Percona, анонсували створення нової некомерційної організації MariaDB Foundation[2][3] і передачу мільйона євро на її початковий розвиток.
В якості місії MariaDB Foundation називається розвиток технологій СУБД, включаючи реалізацію стандартів, поліпшення сумісності між різними СУБД і забезпечення зв'язку з іншими типами БД, такими як транзакційні і NoSQL системи. В якості практичної основи для реалізації задуманих планів, нова організація буде відповідати за розробку СУБД MariaDB, рецензування запропонованих нововведень, включення в кодову базу змін, організацію тестування та випуску релізів MariaDB. На плечах MariaDB Foundation також буде лежати підтримка інфраструктури проекту MariaDB і організація взаємодії з спільнотою користувачів і розробників, а також відстоювання інтересів проекту. Відтепер розробка MariaDB буде контролюватися незалежним від окремих комерційних компаній комітетом.
Особливості MariaDB [ред.]
Нові сховища даних [ред.]
З особливостей MariaDB, в порівнянні з MySQL, можна відзначити включення до складу наступних сховищ:
- Maria — засноване на MyISAM високонадійне сховище, що відрізняються підвищеною стійкістю і збереженню цілісності даних після краху, при повній сумісності з MyISAM. Завдяки веденню логу операцій, у разі краху проводиться відкат результатів виконання поточної операції. Також підтримується можливість відновлення стану з будь-якої точки в балці операцій (включаючи підтримку CREATE / DROP / RENAME / TRUNCATE).
- На заміну InnoDB використовується рушій 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) в БД
- На заміну розробленого в Sun Microsystems і вже не підтримуваного сховища Federated задіяний проект FederatedX. FederatedX дозволяє організувати звернення до віддалених таблиць як до локальних. Є підтримка транзакцій, одночасної установки декількох з'єднань до віддаленої СУБД, використання операцій "LIMIT"
- OQGRAPH — сховище для організації ієрархічних(деревовидних) структур і складних графів (вузлів, що мають безліч зв'язків);
- Sphinx — сховище для побудови пошукових рушіїв. Вбудований Sphinx-клієнт дозволяє MariaDB обмінюватися даними з searchd, виконувати пошукові запити і отримувати результати пошуку
Додатково [ред.]
- Віртуальні стовпці, вміст яких формується на основі заданого виразу, що розраховується під час виконання
- Розширена статистика про активність клієнтів, користувачів, індексів і таблиць
- Сегментований кеш MyISAM-ключів — глобальний м'ютекс розбитий на кілька м'ютексів, що дає істотний приріст продуктивності (до 70%) у системах з великим навантаженням з паралельних запитів
- Модулі автентифікації, що підключаються і можуть додавати нові методи автентифікації в MariaDB
- Реалізована можливість створення пулу нитей, що дозволяє використовувати задане число mysql-ниток для обробки всіх запитів, замість механізму "одна нитка на одне з'єднання". У підсумку можна значно збільшити продуктивність БД, обробляють велику кількість з'єднань або велике число запитів, що тривало виконуються.
- HandlerSocket — реализація інтерфейсу прямого доступу до таблиць InnoDB/XtraDB в стилі NoSQL-систем. Підтримуються такі операції, як додавання, оновлення, читання і вилучення ключа
Кластерне рішення MariaDB Galera [ред.]
Monty Program AB спільно з компанією Codership, яка розвиває систему Galera, випустили кластерну СКБД MariaDB Galera, котра базується на кодовій базі MariaDB у поєднанні з технологією синхронної multi-master реплікації Galera.[4] Проект позиціонується в якості конкурента кластерним рішенням Oracle на базі MySQL та Percona XtraDB Cluster.
Продукт розширює можливості MariaDB, яка може виступати в якості прозорої заміни MySQL 5.5, засобами для організації синхронної реплікації даних між кількома вузлами (застосовується топологія active-active multi-master, яка допускає читання та запис для будь-якого вузла). При синхронної реплікації всі вузли завжди містять актуальні дані, тобто гарантується відсутність втрачених транзакцій, тому що транзакція фіксується тільки після поширення даних по всіх вузлах. При цьому, в рамках транзакції операції виконуються відразу, затримка через очікування підтвердження виникає тільки при виконанні операції "commit". На різних вузлах транзакції можуть виконуватися в паралельному режимі. При виконанні транзакції забезпечується гарантована незмінність стану кластера в цілому, незалежно від інших виконуваних в даний момент транзакцій.
Реплікація виконується в паралельному режимі, на рівні рядків, з передачею тільки інформації про зміни. Управління приналежністю вузлів кластеру виконується автоматично, збійні вузли відразу виключаються з кластера без участі адміністратора, нові вузли при необхідності можна підключити на льоту без додаткової переконфігурації. Кластер може бути територіально розподілений на декілька дата-центрів, при цьому для клієнта забезпечується мінімальна затримка — при розміщенні вузлів в безпосередній близькості від клієнта, всі операції читання і запису будуть виконуватися з максимальною швидкістю, затримка буде відчуватися тільки при виконанні комітів транзакції.
З достоїнств MariaDB Galera відзначається можливість масштабування як операцій читання, так і запису. Зокрема, можлива розподілена організація запису, при якій вузли, на які вже зроблено запис за ланцюжком ініціюють запис на решту вузлів. Наприклад, у першій фазі запис паралельно проводиться на вузли різних дата-центрів, після чого ці вузли реплікують дані всередині кожного дата-центру, тобто по повільному каналу проходить тільки реплікація на один вузол з кожної групи.
Стороннє програмне забезпечення [ред.]
Існує кілька розробок третіх фірм, власницьких і вільних, спроектованих для MySQL, і повністю готових для інтеграції з MariaDB. Зокрема, це:
- HeidiSQL - безкоштовна програма для керування базами даних MySQL, а тепер і MariaDB (оф. сайт: http://www.heidisql.com)
- DBEdit – вільний адміністративний застосунок для MariaDB та інших баз даних
- Navicat – серія власницьких застосунків управління базами даних під Windows, Mac OS X та Linux
Виноски [ред.]
Посилання [ред.]
- MariaDB home page
- MariaDB FAQ
- MariaDB, the Backward Compatible Branch of MySQL(R) Database Server - lecture given by Monty Widenius at Google
- Доступен стабильный релиз СУБД MariaDB 5.2
|
||||||||||||||

