Tag: beta

Postgres, Postgres Professional (Software Company), PostgreSQL (Software), Postgres pro, Постгрес

Обзор систем мониторинга PostgreSQL. Дмитрий Васильев на Встрече в ЛАНИТ. Видео доклада

          12 февраля 2016 года на встрече в Компании ЛАНИТ (митап по PostgreSQL) выступил DBA и разработчик нашей компании Дмитрий Васильев с докладом о системах мониторинга и сбора метрик для СУБД PostgreSQL - таковых, оказывается, существует великое множество. Но, увы, как это бывает часто, идеальной системы среди них нет. Именно поэтому самой интересной частью доклада стала презентация агента мониторинга и сбора метрик от компании Postgres Professional - Mamonsu.

Обзор мониторингов PostgreSQL. Дмитрий Васильев. Встреча в ЛАНИТ, 12.02.2016


          Mamonsu - "Слоненок, который держит большого слона за хвост" (аллегория Дмитрия Васильева) - представляет собой активный Zabbix агент, в котором учтены и большей частью исправлены недостатки большинства других систем мониторинга и сбора метрик для PostgreSQL. Он плагинный, кроссплатформенный, кроме PostgreSQL он так же снимает метрики с системы, и - хорошо расширяемый. Устанавливается с настройками по умолчанию наиболее оптимальными для использования, не требует повышенных привилегий.

Read more...Collapse )
Postgres, Postgres Professional (Software Company), PostgreSQL (Software), Postgres pro, Постгрес

Beta-release of pg_pathman partitioning extension

          Partitioning is a process of dividing single big table into many smaller separate tables which could have some independent management. In PostgreSQL partitioning is traditionally implemented using inheritance mechanism. CHECK CONSTRAINT is assigned to each child table (partition) and determines which data ought to be placed to this partition. When query runs over parent table planner selects children tables which CHECK CONSTRAINTs are compatible with query. However usage of inheritance mechanism for partitioning in PostgreSQL has a lot of shortcomings. The major shortcoming is linear algorithm of children tables selection during query planning. For large number of partitions that may cause significant overhead comparable with query execution itself.

          pg_pathman extension intended to optimize query planning time by using binary search for RANGE-partitioning and hash-table for HASH-partitioning.

          On the graph above the dependency between planning time and total number of partitions is shown while only one partition gets to final plan. Planning time is compared for inheritance mechanism (original) and for pg_pathman (pathman).

Image

          On the graph below dependency between planning time and number of selected partitions is shown (total number of partitions – 1096).

Read more...Collapse )
Postgres, Postgres Professional (Software Company), PostgreSQL (Software), Postgres pro, Постгрес

Beta-релиз расширения для секционирования pg_pathman

          Секционирование (или партиционирование от английского partitioning) — это процесс физического разделения таблицы на множество мелких управляемых частей. В PostgreSQL традиционно секционирование реализуется через механизм наследования. Каждому наследнику задается CHECK CONSTRAINT, который определяет какие данные должны находиться в каждой секции. При запросе данных из родительской таблицы, в итоговую выборку включаются данные непосредственно родительской таблицы, а также данные дочерних таблиц, чьи CHECK CONSTRAINTs совместимы с условиями запроса.

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

          Расширение pg_pathman призвано оптимизировать время планирования за счет использования метода бинарного поиска для RANGE-секционированных таблиц и хеш-таблиц для HASH-секционирования.

          На графике ниже показана зависимость времени планирования от общего количества секций при условии, что в финальный план попадает одна секция. Сравнивается время планирования при использовании механизма наследования (original) и при использовании расширения pg_pathman (pathman).

Image

          Не следующем графике представлена зависимость времени планирования от количества секций, попадающих в план (общее число секций – 1096).

Read more...Collapse )