Как стать автором
Обновить
207.91
Postgres Professional
Разработчик СУБД Postgres Pro
Сначала показывать

Built-in replanning как способ корректировать огрехи оптимизатора PostgreSQL

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров2.4K

Компания Postgres Professional занимается разработкой и поддержкой СУБД с 2015 года. Это серьёзный срок для компании в ИТ-сфере, и за это время мы видели много случаев, когда клиенты сталкивались с неоптимальным выполнением запросов. Обычно оптимизатор PostgreSQL неплохо справляется и строит хорошие планы, если количества джойнов в запросе не больше 10 и данные в таблицах распределены равномерно. Однако в даже на изначально тщательно продуманной базе данных, оптимизатор может сгенерировать настолько неоптимальный план, что его время выполнения может увеличиться в разы. В некоторых особо экстремальных случаях даже практически невозможно дождаться окончания выполнения запроса и понять при помощи EXPLAIN ANALYZE, что пошло не так. Усугубляющим фактором является то, что оптимизатор PostgreSQL никак не запоминает допущенные ошибки выполнения. Построив неоптимальный план один раз, он с большей долей вероятности будет делать это снова и снова до тех пор, пока что-то не изменится: статистика, настройки оптимизатора или какое-то внутреннее состояние СУБД.

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

На протяжении своего существования наша компания пытается отвечать на эти вызовы, для чего, например, были разработаны расширения AQO и sr_plan. Сообщество PostgreSQL также не стоит на месте: в ванильной версии появилась расширенная статистика и был введён ряд оптимизаций вроде инкрементальной сортировки и материализации промежуточных результатов выполнения запроса.

Однако все эти методы или имеют мало предсказуемый результат (AQO), или требуют глубокого понимания причин возникшей проблемы с ручной донастройкой СУБД. В своей новой разработке мы решили взглянуть на проблему исправления ошибок оптимизации с другой стороны. Основная идея в том, чтобы добавить возможность перепланирования на основе полезных сведений, которые можно получить из уже частично выполненного запроса. Помимо этого нужно сформулировать критерии для плохо спланированных запросов, для которых необходимо провести перепланирование.

Читать далее
Всего голосов 11: ↑11 и ↓0+14
Комментарии13

Postgresso #5 (66)

Время на прочтение19 мин
Количество просмотров5K

PostgreSQL: PostgreSQL 17 Beta 1 Released!

Вышла бета с 188 новшествами. Напомним, что Брюс Момджан недавно подчёркивал важность этого релиза из-за его некоторого уклона в оптимизацию, мол, большое число улучшений в оптимизации, это приятный сюрприз для меня.

В пояснительной записке к релизу тоже начинают с оптимизации. Первым делом рассказывают об изменениях в Vacuum. Там новая внутренняя структура, благодаря которой удалось сэкономить 20% памяти, а также сократить время самой очистки. Последний пункт касается редкой темы: в PostgreSQL 17 улучшена поддержка SIMD-инструкций.

Интересный, важный пункт - управление переключением при логической репликации (failover control for logical replication), важное для отказоустойчивых конфигураций.

В SQL/JSON появилась важнейшая вещь - JSON TABLE, это новый уровень работы с этим форматом. Также появились новые конструкторы и другие функции.

Читать далее
Всего голосов 22: ↑22 и ↓0+31
Комментарии1

«IT-Планета 2024»: задачи третьего этапа по PostgreSQL

Время на прочтение9 мин
Количество просмотров2.4K

Или, точнее, задача, поскольку в этом году мы попробовали другой формат: задача была всего одна, но большая. Требовалось написать SQL-запрос, играющий в крестики-нолики «пять в ряд».

Ну-ка, ну-ка
Всего голосов 9: ↑9 и ↓0+13
Комментарии0

Postgresso #4 (65)

Время на прочтение14 мин
Количество просмотров2.6K

Джонатан Кац (Jonathan Katz) пишет:

PostgreSQL 17 Beta 1 запланирована на 23 мая. Пожалуйста, продолжайте тяжёлую работу по закрытию недоделанных пунктов (open items), все поправки намечено доделать к 18 мая. Всем спасибо! Это очень здорово, что мы подошли к этому этапу!

Release notes уже есть, Брюс Момджан о них:

В этом релизе пунктов, связанных с новшествами (feature count), будет 188. Приятный сюрприз для меня: большое число улучшений в оптимизации. Postgres 17 Beta 1 выйдет на днях, а окончательный релиз Postgres 17 запланирован на сентябрь/октябрь этого года.

PostgreSQL 16.3

А также 15.7, 14.12, 13.15 и 12.19. Ветку 12 больше поддерживать не будут.

Читать далее
Всего голосов 10: ↑10 и ↓0+13
Комментарии1

Postgres Pro Shardman: горизонтальное масштабирование реляционных СУБД

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров5.9K

Последние несколько лет мы в Postgres Professional активно занимаемся разработкой своего решения для горизонтального масштабирования PostgreSQL. Пользователям нужен был простой способ увеличить производительность путем добавления узлов. Традиционно для веба в таких случаях просто брали NoSQL базы или шардировали вручную, позже появились распределенные SQL-решения с поддержкой ACID-транзакций. Тем не менее терялась часть возможностей и достоинств PostgreSQL. Корпоративный рынок тяжелых вертикальных решений также сильно ограничен как ценой, так и доступностью. Поэтому исследованиями в области распределенных СУБД в компании занимались еще с 2017 года, а в 2020 началась работа над коммерческим продуктом. 

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

Читать далее
Всего голосов 28: ↑28 и ↓0+37
Комментарии8

«IT-Планета 2024»: задачи второго этапа по PostgreSQL

Время на прочтение32 мин
Количество просмотров3.9K

Вдохновившись прошлогодним опытом, мы продолжили начинание и снова проводим конкурс по SQL на международной олимпиаде «IT-Планета».

Конкурс состоит из трех этапов. Заочный теоретический тест собрал почти 3000 человек, из которых на следующий этап мы отобрали примерно 200. Вопросы для этого этапа были подготовлены моим коллегой, Евгением Давыдовым.

Второй этап — также заочный. Здесь участником было предложено подумать над пятью задачами моего авторства, о которых я сегодня и хочу рассказать.

Третий — очный — этап пройдет в конце мая; постараюсь не затягивать с отчетом, но пока храню интригующее молчание.

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

Приступить к делу
Всего голосов 16: ↑16 и ↓0+23
Комментарии12

PGConf.Russia #10 (2024)

Время на прочтение13 мин
Количество просмотров1.9K

Юбилейная - 10-я - конференция PGConf.Russia опередила юбилей компании (Postgres Professional исполнилось 9 лет). А самая первая - PGConf.Russia 2015 - даже опередила саму компанию: конференция прошла в феврале, а официальный день рождения Postgres Professional 1 апреля 2015.

Читать далее
Всего голосов 14: ↑14 и ↓0+18
Комментарии2

Postgresso #3 (64)

Время на прочтение11 мин
Количество просмотров4.3K

PGConf.Russia 2024

Стартует уже совсем скоро: 8 апреля, а завершится 9-го. Можно просмотреть расписание и список докладов.

Первый доклад после открытия - директора нашего отдела образования Павла Лузанова - PostgreSQL 17:

В этом году даты проведения конференции совпадают с завершением релизного цикла 17 версии. 8 апреля в 15:00 MSK прием изменений завершится. А мы сможем обсудить, что ожидать в осеннем релизе. Здесь и инкрементальное резервное копирование, изменения в логической репликации, триггер на подключение и наверняка появится что-то любопытное в начале апреля.

Следующий доклад в конференц-зале - Про-ShardmanАлексей Борщев и П. Конотопов. То, что он идёт вторым после обзорного, показывает, какое значение придают этой новой СУБД в компании. Интерес к ней действительно огромный. Они расскажут о Шардмане с точки зрения SQL разработчиков и архитекторов БД:

что такое Шардман;

чем отличается от обычного Постгреса;

типы таблиц и их использование;

как адаптировать схему БД для работы на шардах.

Конечно, будет рассказано и о других новинках компании: доклад Pooler, load balancer, proxy. Что их объединяет? Артём Галонскийpgpro_rp (приоритизация ресурсов, доложит Александр Попов) и других.

Читать далее
Всего голосов 16: ↑16 и ↓0+15
Комментарии0

PostgreSQL 17: Часть 4 или Коммитфест 2024-01

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.9K


Весна уже в разгаре, а мы вспомним горячие новости самого зимнего, январского коммитфеста. И сразу начнем с козырей.


Предыдущие статьи о 17-й версии: 2023-07, 2023-09, 2023-11.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии2

Как мы делаем свой DBaaS

Время на прочтение5 мин
Количество просмотров2.8K

Сейчас мы, в Postgres Professional, разрабатываем новый интересный продукт — DataBase as a Service, и в этой статье хочется немного рассказать о наших успехах, узнать ваше мнение и послушать возможные пожелания. 

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии7

Postgresso 2 (63)

Время на прочтение17 мин
Количество просмотров3.8K

Новые контрибьюторы PostgreSQL:

Бертран Друво (Bertrand Drouvot),

Габриэль Бартолини (Gabriele Bartolini),

Ришар Гуо (Richard Guo).

Новые главные (major) контрибьюторы PostgreSQL, прибавилось два представителя Microsoft и один от Amazon:

Александр Лахин (Alexander Lakhin) - особенно поздравляем!

Дэниэл Густафссон (Daniel Gustafsson, Microsoft),

Дин Рашид (Dean Rasheed),

Джон Нэйлор (John Naylor),

Мелани Плейгман (Melanie Plageman, Microsoft),

Натан Боссарт (Nathan Bossart, Amazon Web Services).

Всех поздравляем! Страница контрибьюторов здесь.

Who's in Charge?

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии3

Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL. Часть. 3

Время на прочтение8 мин
Количество просмотров3.8K

Привет, Хабр! Это снова мы — Павел Конотопов и Михаил Жилин, сотрудники компании Postgres Professional. Напомню, что Павел занимается архитектурой построения отказоустойчивых кластеров, а я анализом производительности СУБД. У каждого из нас за плечами более десяти лет опыта в своей области.

Во второй части статьи «Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL» мы говорили о гарантии согласованности данных и разрешение конфликтов. Разобрали как выявлять и разрешать конфликты, используя разные способы. Теперь пришла пора одной из самых важных характеристик хранения данных — надёжности.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии18

Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL. Часть. 2

Время на прочтение11 мин
Количество просмотров4.5K

Привет, Хабр! Это снова мы — Павел Конотопов и Михаил Жилин, сотрудники компании Postgres Professional. Напомню, что Павел занимается архитектурой построения отказоустойчивых кластеров, а я анализом производительности СУБД. У каждого из нас за плечами более десяти лет опыта в своей области.

В первой части статьи «Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL» мы посмотрели как развивалась технология «Мультимастер» в экосистеме PostgreSQL. Обсудили существует ли «Честный Мультимастер», какие у него реализации и как его следует применять. Теперь поговорим о надёжности хранения данных.

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии37

Мифы и реалии «Мультимастера» в архитектуре СУБД PostgreSQL. Часть. 1

Время на прочтение12 мин
Количество просмотров11K

Привет, Хабр! Недавно мы делали доклад на конференции HighLoad 2023 — «Мифы и реалии Мультимастера в архитектуре СУБД PostgreSQL». Мы — это Павел Конотопов (@kakoka) и Михаил Жилин (@mizhka), сотрудники компании Postgres Professional. Павел занимается архитектурой построения отказоустойчивых кластеров, а Михаил — анализом производительности СУБД. У каждого за плечами более десяти лет опыта в своей области.

Порассуждаем о том, как развивалась технология «Мультимастер» в экосистеме PostgreSQL, остановимся на том, что она из себя представляет, на каких внутренних механизмах PostgreSQL основана и как её можно использовать.

Мы также поговорим о том, существует ли «Честный Мультимастер» (само понятие «Честный Мультимастер» достаточно специфично и в основном употребляется в кругу разработчиков), какие реализации у него есть и как его следует применять.

Читать далее
Всего голосов 40: ↑40 и ↓0+40
Комментарии5

Postgresso #1 (62)

Время на прочтение13 мин
Количество просмотров5.2K

Умер Никлаус Вирт

1-го января этот мир покинул Великий человек - Никлаус Вирт (Niklaus Emil Wirth). Его создания: Pascal, Algol-W, Euler, Modula-1, 2, Oberon-1, 2.

Но прежде всего Никлаус был главным идеологом программирования сверху вниз, структурного программирования.

Релизы

Shardman 14.10.2, 14.10.3

Ещё недавно мы писали, что в документации по Postgres на сайте Postgres Professional появился четвёртый столбец - ora2pgpro. А сейчас там 5 столбцов: появился Shardman. Всего пока 2 релиза:

Postgres Pro Shardman 14.10.2 и Postgres Pro Shardman 14.10.3.

В 14.10.3 улучшения и исправления. А в заметках к релизу предыдущего можно узнать, что:

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

Как в СУБД реализовать администратора без прав доступа к данным

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров7.4K

В СУБД-строении есть не новая, но не теряющая актуальности задача. Сформулировать её можно примерно так: как убрать возможность суперпользователя взаимодействовать с данными, но оставить ему все возможности по управлению СУБД? Эта функция затребована не только большими компаниями с жёсткими требованиями к информационной безопасности, но и крайне нужна всем, кто попадает под различного вида государственные регуляции, вроде приказа ФСТЭК №64 или страшного GDPR.

Всё это необходимо, чтобы закрыть риски, связанные с доверием как к самому DBA, так и обезопасить себя на случай угона учётной записи злоумышленником. 

В этой статье мы хотим поговорить о том, какие есть подходы к решению этой проблемы, какие можно найти реализации на рынке, и что решили сделать мы в Postgres Professional.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии12

Postgresso за 2023

Время на прочтение6 мин
Количество просмотров5K

В прошлом году Postgresso 12 (49) и был обзором, пробегающим по 11 предыдущим номерам. В этом году мы решили, что эту задачу лучше выделить в отдельный выпуск.

ЯНВАРЬ
Postgresso 1 за 2023 (50)
Игрушки
Да, мы любим рассказывать об игрушечных базах, самодельных базах для души. Булат Башеев (Basheyev) из Астаны развлекался написанием виртуальной машины и компилятора под неё, теперь переключился на СУБД. Назвал её Boson. Это, говорит автор, легкая, встраиваемая документоориентированная база данных на С/С++. Хранить она будет документы формата ключ/значение (JSON).

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Postgresso 12 (61)

Время на прочтение9 мин
Количество просмотров4.5K

В эти предновогодние дни перегружать вас техническими деталями не будем. И даже не всё в этом выпуске будет вертеться вокруг СУБД и SQL. Начнём, впрочем, с такой серьёзной новости:

Postgres Pro Enterprise 16.1.1

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

Использование On-Logon триггеров в СУБД Postgres Pro Enterprise

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.9K

Триггеры On-Logon хорошо знакомы разработчикам приложений для СУБД Oracle Database.
On-Logon триггер является одним из видов триггеров событий базы данных, и автоматически срабатывает при подключении пользователя к БД.

В СУБД Postgres Pro Enterprise, еще в версии 14, среди прочих расширенных возможностей, была добавлена поддержка On-Logon триггеров.
В данной статье речь пойдет о данной функциональности, а также будет приведено сравнение с аналогичной функциональностью в СУБД Oracle Database.

Стоит отметить, что поддержка On-Logon триггеров будет добавлена в следующий мажорный релиз open source СУБД PostgreSQL - в версию 17.
Компания Postgres Pro передала свою реализацию этой технологии сообществу PostgreSQL.

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии7

PostgreSQL 17: Часть 3 или Коммитфест 2023-11

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.7K


Ноябрьский коммитфест принес немало интересного! Без лишних предисловий приступаем к обзору.


Самое интересное об июльском и сентябрьском коммитфестах ― в предыдущих статьях серии: 2023-07, 2023-09.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии0
1
23 ...

Информация

Сайт
www.postgrespro.ru
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия
Представитель
Иван Панченко