Источник: Christine Daniloff/MIT |
Алгоритм применяет два подхода. Для незначительных скачков используется метод «черного ящика»: DBSeer следит за быстродействием и флуктуациями в количестве и типе пользовательских запросов и самообучается, выстраивая корреляции.
Для многократного возрастания нагрузки применяется модель «серого ящика», учитывающая индивидуальные особенности используемой СУБД, например, критерии, по которым система определяет, что пришла пора переписать обновления из кэша на диск. Исследователи реализовали «серый ящик» для MySQL и работают над моделью для PostgreSQL. Создание каждой такой модели — трудоемкая задача, но всего нескольких моделей будет достаточно для охвата подавляющего большинства существующих СУБД-приложений.
Алгоритм был проверен на тесте TPC-C и на реальной системе — Википедии. В среднем модели предсказывают уровень загруженности процессора с точностью 80%, а пропускную способность, расходуемую на дисковые операции, — 99%. В компании Teradata адаптируют алгоритм DBSeer для своих СУБД.