Высокопроизводительный MySQL-движок TokuDB переведён в разряд открытых проектов

26 апреля 2013 года

Компания Tokutek открыла исходные тексты проекта TokuDB (Tokutek storage engine), в рамках которого развивается высокопроизводительный транзакционный движок хранения для MySQL и MariaDB. Вместо классических B-tree деревьев в TokuDB применяются рекурсивные индексы ( Fractal Tree indexes), что в сочетании с хранением данных в сжатом виде, позволяет значительно оптимизировать операции ввода/вывода.

Движок TokuDB оптимален в системах с интенсивной записью, когда требуется накапливать полученную в результате входящих запросов информацию и периодически генерировать на её основе отчёты. В качестве основных областей применения TokuDB называются конфигурации с большим числом запросов, связанных с добавлением, удалением и изменением данных, такие как социальные сети, анализ логов, рекламные сети и т.п.

При проведении тестов, TokuDB опережает InnoDB при добавлении больших объемов данных более чем в 10 раз (InnoDB 1,555 записей в сек, TokuDB 16,437 записей в сек), но проигрывает по степени нагрузки на CPU при выборке данных. Недостаточная эффективность выборки данных компенсируется ситуациями когда требуется произвести выборку большого числа последовательно сохранённых записей. В некоторых тестах выигрыш в скорости добавления данных достигает 80 раз. Применяемые методы сжатия данных позволяют в разы уменьшить размер базы и индексов (в 6.2 раза по сравнению с InnoDB и в 5.5 раз по сравнению с MyISAM), в некоторых ситуациях степень сжатия данных может достигать 25 раз.

Из особенностей движка TokuDB также можно отметить:

  • Обеспечение требований ACID к выполнению транзакций (атомарность, согласованность, изолированность, долговечность);
  • Возможность изменения хранения схемы данных на лету, без перестроения хранилища;
  • Отсутствие эффекта фрагментации индексов после длительного времени работы базы (нет необходимости пересоздавать индексы для устранения фрагментации);
  • Гибкие средства ускорения выполнения запросов через использование индексов. Поддержка "горячего" добавления и изменения индексов;
  • Поддержка создания хранилищ для терабайт данных;
  • Поддержка создания горячих бэкапов без остановки работы;
  • Поддержка репликации интенсивно поступающих потоков данных на несколько slave-серверов без отставания появления данных на slave-системах;
  • Соответствие требованиям MVCC (Multi-Version Concurrency Control) по работе в многопользовательских системах с большим числом одновременных запросов;
  • Режим быстрого восстановления после сбоя;
  • Высокая эффективность поддержания хранилищ с десятками и сотнями миллионов записей. Отсутствуют проблемы при активном удалении записей в таких хранилищах;
  • Поддержка кластерных индексов, в которых непосредственно могут сохраняться любые данные из записей;
  • По выполняемым операциям индексы Fractal Tree indexes схожи в B-Tree и отличаются главным образом более оптимальным использованием кэшей и доступа к данным на накопителях на жестких магнитных дисках, за счёт преобразования операций случайного доступа в наборы последовательных запросов. Для SSD-накопителей использование TokuDB оправдано сокращением числа операций записи.

В настоящее время движок TokuDB уже используется проектом Mozilla для организации работы сервиса Datazilla, занимающегося сбором информации о производительности, автоматически отправляемой браузером Firefox, при включении соответствующих настроек. Разработчики MySQL и MariaDB приветствовали решение по открытию кода TokuDB, заявив, что такой шаг будет способствовать широкому внедрению TokuDB. Более того, разработчики MariaDB уже рассматривают возможность включения TokuDB в состав MariaDB и поставки данного движка в качестве штатного компонента.

Код открыт под лицензией GPLv2. Изначально движок TokuDB развивался как проприетарный продукт, но компания Tokutek решилась на изменение бизнес-модели, которая теперь подразумевает разработку TokuDB как свободного проекта с предоставлением корпоративным заказчикам коммерческой версии TokuDB Enterprise Edition, которая отличается наличием сервиса технической поддержки, расширенными инструментами для резервного копирования и возможностью адаптации продукта под нужды заказчика.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Высокопроизводительный MySQL-движок TokuDB переведён в разряд открытых проектов», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.