title

text

Андрей Бородин
Андрей Бородин Яндекс.Облако Руководитель подразделения разработки РСУБД с открытым исходным кодом
: декабря
45 мин

Детали реализации CREATE INDEX CONCURRENTLY

С начала 2021 года я исправляю редкий баг в CREATE INDEX CONCURRENTLY. Настолько редкий, что со времён появления в 8.2 я не нашёл его упоминаний. Тем не менее, наши системы этот баг аффектил часто, и я занялся его починкой. Так началась довольно длинная детективная история, в которой я узнал много интересных деталей и улучшил своё понимание транзакций в PostgreSQL.

Слайды

Бородин Андрей - Детали реализации CREATE INDEX CONCURRENTLY.pptx

Другие доклады

  • Иван Муратов
    Иван Муратов ООО "Первая Мониторинговая Компания" Технический директор
    45 мин

    TimescaleDB 2.0 - Time-series данные в распределенном кластере TimescaleDB поверх ОРСУБД PostgreSQL.

    Расширение TimescaleDB позволяет превратить старый добрый Postgres в настоящий распределенный кластер для хранения time series данных с сохранением реляционной модели, удобного SQL и проверенной временем экосистемы. А дополнительные возможности такие, как непрерывные материализованные представления и компрессия данных, позволяют строить поистине мощные телематические хабы.

  • Никита Глухов
    Никита Глухов Postgres Professional Старший разработчик
    Олег Бартунов
    Олег Бартунов Postgres Professional генеральный директор
    45 мин

    Элегантный поиск ближайших соседей в PostgreSQL

    С необходимостью эффективного поиска ближайших соседей можно встретиться в разных задачах, например, поиск ближайших к заданной точке объектов на карте. Задача, на непрограммистский взгляд кажущаяся тривиальной (действительно, человек довольно легко справляется с ней глядя на карту) , на самом деле не имеет общего и доступного решения, что приводит к головной боли разработчиков, которые придумывают ad hoc решения (вставляют костыли). Эти решения, обычно некрасивые, портят настроение творческой натуры программиста, которому требуется посещение пивной, чтобы пережить когнитивный диссонанс :)

    Действительно, если у человека есть карта, у которой есть определенный масштаб, и характерный размер поля зрения, то у программиста есть только координаты заданной точки и множество точек, которых может быть очень много (миллиарды звезд !), и к которому может идти большое количество конкурентных запросов, причем не только на чтение. Язык SQL позволяет очень красиво записать запрос, но реальный план его выполнения удручает - требуется прочитать всю таблицу, вычислить все расстояния от заданной точки, отсортировать по убыванию и оставить требуемое количество записей. Наличие индексов не спасает, а только приводит к полному обходу поискового дерева и чтения всей таблицы в случайном порядке, что гораздо медленнее простого чтения таблицы.

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

  • Юрий Плотников
    Юрий Плотников ООО «РТК ИТ» Тимлид
    Никита Левченко
    Никита Левченко ПАО «Ростелеком» Старший инженер
    45 мин

    Из Oracle в Postgres по российским рельсам. Неочевидные нюансы

    Поговорим о наших подходах к выбору технических решений при проектировании архитектуры систем. Их преимущества и ограничения. Как менялась наша инженерная культура с учетом требований импортозамещения. История миграции системы с классической трехзвенной архитектурой с БД Oracle на PostgresPro. Большое внимание уделено инструментам переноса данных, а так же нюансам доработки Java/Kotlin приложений и совместимости SQL между двумя СУБД.

  • Александра Кузнецова
    Александра Кузнецова Postgres Professional Младший разработчик
    22 мин

    Новые возможности Mamonsu 3.0

    Mamonsu — это активный агент мониторинга для PostgreSQL, исполненный на базе zabbix. Новое мажорное обновление Mamonsu 3.0 включает в себя новые метрики, больше возможностей для визуализации данных с помощью zabbix screens, улучшенный функционал специальных инструментов Mamonsu для взаимодействия с СУБД. Помимо обзора нового функционала в докладе также затронем нюансы обновления на новую версию.