Добавить в корзинуПозвонить
Найти в Дзене
Postgres DBA

Является ли СУБД эмерджентной системой ?

✖️ Материал устарел. Методика расчета - изменена ✖️ Эмердже́нтность или эмерге́нтность (англиц. от emergent «возникающий, неожиданно появляющийся»)[1] в теории систем — наличие у системы свойств, не присущих её компонентам по отдельности; несводимость свойств системы к сумме свойств её компонентов. В связи с началом тестирования комплекса pg_hazel под продуктивной нагрузкой возникает очень важный вопрос: Можно ли рассчитывать метрики производительности СУБД суммируя значения метрик отдельных баз данных, составляющих кластер PostgreSQL ? Словарь терминов оперативно-тактического комплекса "PG_HAZEL". В качестве источника данных для расчета метрик производительности кластера , используется представление pgpro_stats_totals G.4.4.2. Представление pgpro_stats_totals Агрегированная статистика, собранная модулем, выдаётся через представление pgpro_stats_totals. Коэффициент корреляции между операционной скоростью и ожиданиями составляет -0,8736. Вопрос : является ли ситуация существенного сни
Оглавление
Иногда, целое не равно сумме его частей.
Иногда, целое не равно сумме его частей.

✖️ Материал устарел. Методика расчета - изменена ✖️

Эмердже́нтность или эмерге́нтность (англиц. от emergent «возникающий, неожиданно появляющийся»)[1] в теории систем — наличие у системы свойств, не присущих её компонентам по отдельности; несводимость свойств системы к сумме свойств её компонентов.

В связи с началом тестирования комплекса pg_hazel под продуктивной нагрузкой возникает очень важный вопрос:

Можно ли рассчитывать метрики производительности СУБД суммируя значения метрик отдельных баз данных, составляющих кластер PostgreSQL ?

Словарь терминов оперативно-тактического комплекса "PG_HAZEL".

Экспериментальные данные

В качестве источника данных для расчета метрик производительности кластера , используется представление pgpro_stats_totals

G.4.4.2. Представление pgpro_stats_totals
Агрегированная статистика, собранная модулем, выдаётся через представление pgpro_stats_totals.

Операционная скорость СУБД

Ось X - точка наблюдения. Ось Y - операционная скорость СУБД
Ось X - точка наблюдения. Ось Y - операционная скорость СУБД

Количество ожиданий СУБД

Ось X - точка наблюдения. Ось Y - Количество ожиданий по СУБД
Ось X - точка наблюдения. Ось Y - Количество ожиданий по СУБД

Коэффициент корреляции между операционной скоростью и ожиданиями составляет -0,8736.

Вопрос : является ли ситуация существенного снижения операционной скорости и роста ожиданий СУБД - инцидентом деградации производительности СУБД?

Анализ операционной скорости по отдельным базам данных

Для расчета операционной скорости по отдельному SQL выражению используется представления pgpro_stats_statements

G.4.4.1. Представление pgpro_stats_statements
Статистика, собираемая модулем, выдаётся через представление с именем pgpro_stats_statements. Это представление содержит отдельные строки для каждой комбинации идентификатора базы данных, идентификатора пользователя и идентификатора запроса

Для расчета операционной скорости по базе данных применяется агрегирование .

Для сокращения анализа, рассмотрим только список баз данных с наиболее коррелированными(близкими) значениями операционной скорости со значениями операционной скорости СУБД .

Ось X - точка наблюдения. Ось Y - операционная скорость СУБД
Ось X - точка наблюдения. Ось Y - операционная скорость СУБД
Таблица значение операционной скорости СУБД и отдельных баз данных.
Таблица значение операционной скорости СУБД и отдельных баз данных.

Для простоты достаточно рассмотреть графики операционной скорости для баз данных по которым количество значений наиболее близко к количеству значений по СУБД в целом - test_db-7 , test_db-6 и test_db-4.

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-7
Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-7
Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-6
Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-6
Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-4
Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-4

Вывод по итогам анализа операционной скорости при работе СУБД под продуктивной нагрузкой

График значений операционной скорости для СУБД в целом, очень сильно отличается от графиков значений операционной скорости баз данных входящих в кластер.

Корреляционный анализ на уровне баз данных

Список БД имеющих обратную корреляцию между операционной скоростью и ожиданиями
Список БД имеющих обратную корреляцию между операционной скоростью и ожиданиями

Интересные детали

База данных DB-1 имеет значение коэффициента корреляции между значениями операционной скорости и ожиданиями = -0.3985 , но если рассчитать коэффициент корреляции между операционной скоростью и количеством ожиданий конкретного типа, то все значения положительны.

Если посмотреть график истории ожиданий, становится понятно, почему так происходит.

Ось X - точка наблюдения. Ось Y - значение операционной скорости для БД
Ось X - точка наблюдения. Ось Y - значение операционной скорости для БД
Ось X - точка наблюдения. Ось Y - Общее количество ожиданий для БД
Ось X - точка наблюдения. Ось Y - Общее количество ожиданий для БД

Получается слабая отрицательная корреляция

Однако , если посмотреть графики истории ожиданий по типам ожиданий IO , IPC , LWLock корреляция будет совсем другой :

Ось X - точка наблюдения. Ось Y - значение операционной скорости для БД
Ось X - точка наблюдения. Ось Y - значение операционной скорости для БД
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO для БД
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO для БД
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IPC для БД
Ось X - точка наблюдения. Ось Y - количество ожиданий типа IPC для БД
Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock для БД
Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock для БД

Таким образом, при анализе производительности СУБД , работающей под продуктивной нагрузкой , необходимо анализировать корреляцию с конкретным типом ожидания, а не корреляцию с суммой всех ожиданий по данной базе данных.

Важное дополнение

Необходимо анализировать не только корреляцию, но и количество случаев наблюдения событий ожидания ( ранее использовался термин "вес").

Вывод

При расчете метрик производительности СУБД как суммы значений метрик производительности по базам данных, входящим в кластер СУБД, возможна ошибка второго рода - анализ инцидента деградации производительности СУБД при отсутствии деградации производительности баз данных.

Необходимо подготовить методику применения корреляционного анализа в условиях продуктивной нагрузки на СУБД.

—————

Updated 14.03.2025

—————

Таким образом, можно сформулировать гипотезу

Если в состав кластера СУБД входят разнородные базы данных , то СУБД обладает свойством эмерджентности. Нельзя анализировать поведение СУБД в целом. Необходимо анализировать поведение отдельных баз данных.

Простейший пример

БД1 - интенсивная читающая нагрузка с периодом изменения нагрузки T1 и функцией операционной скорости F1(t)

БД2 - редкая пишущая нагрузка с периодом изменения нагрузки T2 и функцией операционной скорости F2(t)

БД3 - редкая изменяющаянагрузка с периодом T3 и функцией операционной скорости F3(t)

В зависимости от начальных значений T1, T2, T3 результирующее значение операционной скорости СУБД F(t) = F1(t) + F2(t) + F3(t) может меняться в очень широких диапазонах и иметь как периодический так и случайный характер , учитывая взаимное влияние БД .

Возможные изменения методологии анализа производительности СУБД

  1. Мониторинг скорости и ожиданий на уровне БД , а не СУБД
  2. Использование в качестве индикатора для СУБД - значение относительной доли ожиданий, а не значение скользящей корреляции скорости и ожиданий .

Важное следствие

Если предположение о том, что СУБД обладает свойством эмерджентности верно, то следует, что синтетические методы оптимизации производительности СУБД могут оказаться неэффективностыми , потому, что влияние части системы на систему в целом может оказаться незначительным и несоразмерно затраченным ресурсам на анализ и изменение.

Дополнительные материалы по термину "эмерджентность"

Эмерджентность в Рувики

Добро пожаловать в эпоху эмерджентности

СТРАТИФИКАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ