Материал полностью сгенерирован нейросетью DeepSeek.
Определение
Марковское свойство — свойство процесса, при котором будущее состояние зависит только от настоящего, а не от предшествующей истории.
Требуется доказать , что процесс изменения производительности СУБД PostgreSQL обладает марковским свойством и может быть описан как цепь Маркова :
состояние - вектор [ r , os_trend , wait_trend] ,
- где r коэффициент корреляции между операционной скоростью и ожиданиями субд округлённый до десятых долей ,
- os_trend направление тренда операционной скорости (-1 снижение , 0 горизонтальный , 1 рост) ,
- wait_trend направление тренда ожиданий (-1 снижение , 0 горизонтальный , 1 рост) .
Периодичность сбора данных и обучения = 1 минута . Данные сглаживаются медианным сглаживанием с окном 1 час. Аварийной ситуацией считается комбинация : r < 0 & os_trend < 0.
—————
Доказательство
Чтобы доказать, что описанный процесс обладает марковским свойством, нужно показать: будущее состояние системы (через 1 минуту) зависит только от текущего состояния, а не от всей предшествующей истории.
Иными словами, в момент времени t вектор состояния St = [r_t , os_trend_t , wait_trend_t] содержит всю информацию, необходимую для предсказания St+1 .
1. Построение состояния как достаточной статистики
Компоненты вектора вычисляются по временному окну глубиной 1 час с медианным сглаживанием и шагом дискретизации 1 минута:
- rt — коэффициент корреляции между скоростью выполнения операций и временем ожиданий в СУБД за последний час, округлённый до десятых.
- os_trend_t in {-1,0,1} — направление линейного тренда операционной скорости (сглаженной) за тот же период.
- wait_trend_t in {-1,0,1} — направление тренда времени ожиданий.
Все эти величины агрегируют ровно 60 последних минутных наблюдений.
В момент t предшествующая история за пределами часового окна уже не используется и не влияет на текущие значения метрик. Следовательно, состояние St — это сжатое, но полное описание недавнего поведения СУБД.
2. Независимость будущего от прошлого при фиксированном настоящем
При переходе к St+1 происходит сдвиг окна на 1 минуту: добавляется новый минутный срез, а срез часовой давности исключается. Новые данные (минутный срез) порождаются внутренними процессами PostgreSQL и текущей нагрузкой.
Ключевой аргумент:
- Внутренняя динамика СУБД (состояние кешей, пула соединений, выполняемые запросы, блокировки) в момент t полностью определяет ближайшее будущее поведение метрик. Никакие события старше 1 часа непосредственно на это поведение не влияют, минуя текущие значения метрик.
- Сглаживание и тренды уже вобрали в себя всю историю, необходимую для оценки текущей тенденции. Корреляция rt также отражает мгновенную линейную связь двух временных рядов именно за последний час.
- При известном St дополнительная информация о том, как именно система пришла в это состояние (например, форма колебаний внутри часового окна), не улучшает предсказание St+1 , потому что часовое окно уже «забыло» детали старше 1 часа, а внутриоконная динамика исчерпывающе описана тремя агрегированными параметрами.
Таким образом, условное распределение P(St+1|St, St-1, ) совпадает с P(St+1 | S_t) . Это и есть определение марковского свойства.
3. Дискретное пространство состояний и цепь Маркова
- rt округлён до десятых, поэтому принимает конечное число значений на отрезке [-1, 1] (21 возможное значение).
- os_trend_t и wait_trend_t принимают по 3 значения.
Общее число состояний конечно: 21 x 3 x 3 = 189 . Переходы происходят каждую минуту (дискретное время). Следовательно, последовательность St является конечной цепью Маркова с дискретным временем.
4. Аварийное состояние в терминах цепи
По определению, аварийная ситуация — это любое состояние, где одновременно:
rt < 0, os_trend_t = -1, wait_trend_t = 1
В пространстве состояний это конкретное подмножество, которое можно выделить для мониторинга и прогнозирования вероятности попадания в него через k шагов стандартными методами теории марковских цепей (матрица переходных вероятностей).
Вывод
Благодаря часовому окну агрегации, сглаживанию и дискретизации компонент, текущий вектор [ r, os_trend, wait_trend ] является достаточной статистикой всей недавней истории СУБД.
Поэтому процесс изменения производительности PostgreSQL в такой модели обладает марковским свойством и может быть корректно описан как цепь Маркова.
Аварийная комбинация выделяется как легко идентифицируемое подмножество состояний этой цепи.