Исследователи из Массачусетского технологического института реализовали алгоритм с открытым кодом DBSeer, с высокой точностью предсказывающий потребности в ресурсах СУБД-приложений при возрастании нагрузки, от незначительного до многократного. Алгоритм применяет два подхода. Для незначительных скачков используется метод «черного ящика»: DBSeer следит за быстродействием и флуктуациями в количестве и типе пользовательских запросов и самообучается, выстраивая корреляции. Для многократного возрастания нагрузки применяется модель «серого ящика», учитывающая индивидуальные особенности используемой СУБД, — например, критерии, по которым система определяет, что пришла пора переписать обновления из кэша на диск. Исследователи реализовали «серый ящик» для MySQL и работают над моделью для PostgreSQL. Создание каждой такой модели — трудоемкая задача, но всего нескольких моделей будет достаточно для охвата подавляющего большинства существующих СУБД-приложений.

Алгоритм был проверен на тесте TPC-C и на реальной системе — «Википедии». В среднем модели предсказывают уровень загруженности процессора с точностью 80%, а пропускную способность, расходуемую на дисковые операции, — 99%. В компании Teradata адаптируют алгоритм DBSeer для своих СУБД.

Поделитесь материалом с коллегами и друзьями

Купить номер с этой статьей в PDF