Представлен первый релиз 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.
|