Стабильный релиз MySQL хранилища InfiniDB 1.0

02.02.2010 21:12

Представлен первый релиз InfiniDB, нового хранилища для MySQL 5.1.x, предназначенного для организации обработки и выполнения аналитических запросов над большими массивами данных (Data Warehouse). InfiniDB подходит для создания хранилища для средств бизнес-аналитики, организации систем генерации отчетов и использования в программах с интенсивным чтением данных из БД. Слабое место InfiniDB - производительность добавления данных. Исходные тексты разработки распространяются в рамках лицензии GPL v2.

В отличие от других хранилищ, InfiniDB хранит данные не построчно, а с разбивкой по столбцам, что позволяет оптимизировать выполнение группировки по столбцам из БД большого размера (сотни гигабайт). Особенно эффективен подобный подход, когда данные в столбцах повторяются. Кроме построчного хранения с целью оптимизации операций ввода/вывода в InfiniDB поддерживается автоматическое вертикальное и горизонтальное партицирование больших таблиц, позволяющее логически распределять данные по хранилищам в привязке к диапазонам хранимых значений. При партицировании не требуется ручное проектирование схемы БД или определение места размещения хранилищ.

Другие особенности InfiniDB:

  • Многопоточная организация работы, позволяющая максимально использовать ресурсы многоядерных систем;
  • Поддержка выполнения множества одновременных запросов, лимит выполнения конкурирующих запросов ограничен только мощностью сервера;
  • В комплект входит специальный инструмент для отдачи больших объемов данных с высокой скоростью;
  • Поддержка всех DML операций (insert, update, delete);
  • Поддержка ACID-совместимых транзакций и система обнаружения взаимных блокировок (deadlock);
  • Предоставление средств для автоматического восстановления базы в случае сбоя системы (например, внезапного отключения питания);
  • Мультиверсионный (MVCC) дизайн позволяет избежать блокировки при чтении данных, всегда отдается текущий "снапшот" состояния, одновременно вносимые изменения будут отражены уже в другом снапшоте;
  • Отсутствует необходимость в создании индексов, так как индексация при вертикальном и горизонтальном партицировании производится автоматически;
  • Поддержка конструкции по изменению налету структуры таблиц (ALTER TABLE);
  • Прозрачное сжатие с выбором метода сжатия в зависимости от типа хранимых данных;
  • Набор средств для диагностики производительности, формирования подсказок по тюнингу, выполнения трассировки для выявления неоптимальных SQL запросов;
  • Реализация в виде обычного MySQL-хранилища, подразумевает возможность прозрачного использования во всех приложениях, поддерживающих MySQL.