BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс по PostgreSQL » Как устроен PostgreSQL » Архитектура процессов PostgreSQL

Архитектура процессов PostgreSQL

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

Совокупность нескольких процессов, которые совместно управляют кластером баз данных, обычно называют "сервером PostgreSQL". Как правило, выделяют следующие типы процессов:

  • Основной процесс - это postgres server process. Данный процесс является «родителем» для всех процессов, связанных с кластером, так как он порождает все остальные процессы и создает разделяемую память (shared memory);
  • Каждый обслуживающий процесс (backend) обрабатывает все запросы и утверждения, отправленные подключенным клиентом;
  • Различные фоновые процессы выполняют задачи по управлению базой данных, такие как обработка VACUUM и CHECKPOINT;
  • Процессы, связанные с репликацией, выполняют потоковую репликацию. Более подробную информацию Вы найдете в разделе 11.
  • Фоновые рабочие процессы, поддерживаемые в версии 9.3 и новее, могут выполнять любую обработку данных. Более подробная информация доступна по ссылке.

 

В следующих подразделах Вы найдете подробное описание первых трех типов процессов.

На данном рисунке отображены различные процессы сервера PostgreSQL: postgres server process, два backend процесса, семь фоновых процессов и два клиентских процесса, а также показаны кластер баз данных и shared memory.

 

Postgres Server Process

Итак, postgres server process является «родителем» всех процессов сервера PostgreSQL. В более ранних версиях он назывался "postmaster".

Каждый раз, когда Вы запускаете утилиту pg_ctl, стартует postgres server process. Затем он запускает различные фоновые процессы, при необходимости запускает процессы, связанные с репликацией, а также фоновые рабочие процессы и ожидает запросов на подключение от клиентов. При получении такого запроса он запускает обслуживающий процесс (backend). (Данный процесс обрабатывает все запросы, отправленные подключившимся клиентом).

 

Обслуживающий процесс (backend)

Обслуживающий процесс (backend) обрабатывает все запросы, отправленные одним подключенным клиентом. Он взаимодействует с клиентом через одно TCP-соединение и завершается, как только клиент отсоединяется.

Поскольку данный процесс может работать только с одной базой данных, при подключении к серверу PostgreSQL необходимо четко указать именно ту базу данных, которую Вам необходима.

PostgreSQL позволяет подключаться сразу нескольким клиентам одновременно. Параметр конфигурации max_connections определяет максимальное количество одновременных подключений к БД (по умолчанию это 100 подключений).

Когда к серверу подключается много клиентов, для каждого из них порождается собственный обслуживающий процесс. Это не проблема, если на всех хватает оперативной памяти и соединения не происходят слишком часто. Тем не менее при одновременной работе с какими-либо объектами приходится принимать меры, чтобы один процесс не поменял какие-либо данные в то время, пока с ними работает другой процесс. Для объектов в общей памяти используются короткоживущие блокировки. PostgreSQL делает это достаточно аккуратно для того, чтобы система хорошо масштабировалась при увеличении числа процессоров (ядер).

 В большинстве инсталляций Postgres Pro для ограничения числа запускаемых обслуживающих процессов применяются внешние средства, например, J2EE, odyssey или pgbouncer. Однако применение внешних пулов соединений подразумевает дополнительные издержки, связанные с их установкой, настройкой и сопровождением. Кроме того, если пул работает в одном потоке, Вам придётся запускать сразу несколько экземпляров пула.

 

Фоновые процессы

В таблице 2.1 приведен список фоновых процессов.

В отличие от postgres server process и  обслуживающего процесса (backend), невозможно объяснить каждую из функций фоновых процессов. Это связано с тем, что данные функции зависят от индивидуальных особенностей и внутреннего устройства PostgreSQL.

Поэтому в данном разделе мы приводим только введение. Подробности Вы найдете в последующих разделах.

Таблица 2.1: Фоновые процессы

Процесс

Описание

Ссылка

background writer

записывает и синхронизует страницы с измененными данными на диск для того, чтобы процессам, которые обрабатывают запросы, не приходилось ждать синхронизации

Раздел 8.6

checkpointer

выполняет процесс контрольной точки в версии 9.2 и новее.

Разделы 8.6 и  9.7

autovacuum launcher

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

Раздел 6.5

WAL writer

периодически записывает и стирает данные WAL в буфере WAL.

Раздел 9.9

statistics collector

собирает статистическую информацию для pg_stat_activity, pg_stat_database и т.д.

 

logging collector (logger)

собирает отправленные в stderr сообщения и перенаправляет их в журнальные файлы.

 

archiver

выполняет архивировное логирование

Раздел 9.10

 

Примечание:

С использованием фоновых рабочих процессов сопряжены угрозы стабильности и безопасности, поскольку они имеют неограниченный доступ к данным. Администраторы, желающие использовать модули, в которых задействованы фоновые рабочие процессы, должны быть крайне осторожными. Запускать рабочие процессы можно разрешать только модулям, прошедшим всесторонний аудит.

Следующий пример описывает один postgres server process (pid - 9687), два обслуживающих процесса (backend) (pids - 9697 и 9717) и несколько фоновых процессов, перечисленных в таблице 2.1.

postgres> pstree -p 9687
-+= 00001 root /sbin/launchd

\-+- 09687 postgres /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
   |--= 09688 postgres postgres: logger process
   |--= 09690 postgres postgres: checkpointer process
   |--= 09691 postgres postgres: writer process
   |--= 09692 postgres postgres: wal writer process
   |--= 09693 postgres postgres: autovacuum launcher process
   |--= 09694 postgres postgres: archiver process
   |--= 09695 postgres postgres: stats collector process
   |--= 09697 postgres postgres: postgres sampledb 192.168.1.100(54924) idle
   \--= 09717 postgres postgres: postgres sampledb 192.168.1.100(54964) idle i

 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Методы записи и чтения кортежей PostgreSQL
Следующая статья →
Архитектура памяти PostgreSQL
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Ситилинк

    Электронный дискаунтер «Ситилинк» — один из крупнейших онлайн‑ритейлеров России (3‑е место по объему онлайн‑продаж в рейтинге Data Insight и Ruward 2016 года E‑commerce Index TOP‑100, 8 место в рейтинге Forbes «20 самых дорогих компаний Рунета — 2017»). На рынке работает 9 лет.

    В ассортименте дискаунтера более 50 000 наименований компьютерной цифровой, бытовой и садовой техники, офисной мебели и других товарных категорий. Более 700 мировых брендов в портфеле. Около 4 000 сотрудников по всей России

  • Российский филиал одного их ведущих мировых производителей и дистрибьютеров косметики Estee Lauder Companies Inc. выбрал аналитическую платформу Loginom для предиктивной аналитики продаж как в офлайн-, так и в онлайн-канале.

  • АО «Евросиб СПб–транспортные системы» – оператор контейнерных сервисов с широкой сетью маршрутов на внутрироссийских и международных направлениях. Имеет успешный опыт управления парком фитинговых платформ, а также организации ускоренных контейнерных поездов, в основе которых точное расписание, оптимальные сроки доставки груза и экономическая целесообразность.

  • «ПрофХолод» — крупнейший в России производитель сэндвич-панелей с пенополиуретаном. 

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.