СУБД MariaDB Galera
🕛 10.09.2012, 06:32
Майкл Видениус, основатель MySQL, представил первый выпуск кластерной СУБД MariaDB Galera, базирующийся на кодовой базе MariaDB в сочетании с технологией синхронной multi-master репликации Galera. Проект создан совместно с компанией Codership, развивающей систему Galera, и позиционируется в качестве конкурента кластерным решениям Oracle на базе MySQL. Формально выпуск помечен как альфа-версия, но его не стоит трактовать как сырой или недоделанный продукт, это лишь перестраховка для первого публичного выпуска, который пока не рекомендован для промышленного внедрения. Новый продукт расширяет возможности СУБД MariaDB, которая может выступать в качестве прозрачной замены MySQL 5.5, средствами для организации синхронной репликации данных между несколькими узлами (применяется топология active-active multi-master, допускающая чтение и запись для любого узла). При синхронной репликации все узлы всегда содержат актуальные данные, т.е. гарантируется отсутствие потерянных транзакций, так как транзакция фиксируется только после распространения данных по всем узлам. При этом, в рамках транзакции операции выполняются сразу, задержка из-за ожидания подтверждения возникает только при выполнении операции "commit". На разных узлах транзакции могут выполняться в параллельном режиме. При выполнении транзакции обеспечивается гарантированная неизменность состояния кластера в целом, независимо от других выполняемых в данный момент транзакций.
Репликация выполняется в параллельном режиме, на уровне строк, с передачей только информации об изменениях. Управление принадлежностью узлов кластеру выполняется автоматически, сбойные узлы сразу исключаются из кластера без участия администратора, новые узлы при необходимости можно подключить на лету без дополнительной переконфигурации. Кластер может быть территориально распределён на несколько дата-центров, при этом для клиента обеспечивается минимальная задержка - при размещении узлов в непосредственной близости от клиента, все операции чтения и записи будут выполняться с максимальной скоростью, задержка будет ощущаться только при выполнении коммитов транзакции.
Из достоинств MariaDB Galera также упоминается возможность масштабирования как операций чтения, так и записи. В частности, возможна распределённая организация записи, при которой узлы на которые уже произведена запись по цепочке инициируют запись на оставшиеся узлы. Например, в первой фазе запись параллельно производится на узлы разных дата-центров, после чего эти узлы реплицируют данные внутри каждого дата-центра, т.е. по медленному каналу проходит только репликация на один узел из каждой группы.
Из ограничений MariaDB Galera отмечается возможность использования только хранилища InnoDB при репликации, невозможность блокировки таблиц (операции LOCK/UNLOCK), отсутствие поддержки операции удаления таблиц без первичного ключа, невозможность использования XA-транзакций, лог запросов не может быть перенаправлен в таблицу (поддерживается только log_output=FILE), производительность кластера упирается в скорость работы самого медленного узла, при манипуляции большими объёмами данных в рамках одной транзакции могут наблюдаться проблемы с производительностью.