Блог

Фильтр по тегам

    HA: Отказоустойчивость PostgreSQL. Transaction Guard

     В статье рассматривается, как в коде приложения можно выяснить, была ли потеряна транзакция при переключении на реплику, а также если команда на фиксацию была отправлена, но подтверждение о том, что она зафиксирована получено не было. Вы познакомитесь с техникой (шаблоном написания запросов) Transaction Guard.

    Почему в БД на PostgreSQL популярен тип numeric?

    Не будем полагаться на обзорную литературу и копнём первоисточники. Эта задача не была простой, однако с AI-агентами стало сильно легче. Так что засучим рукава и приступим. 

    Запросы с ANY: когда PostgreSQL дольше планирует, чем выполняет

    Когда речь заходит об оптимизации запросов в PostgreSQL, разработчики, как правило, сосредотачиваются на времени выполнения: индексы, планы запросов, настройки памяти и так далее. Время планирования остаётся в тени. А зря! Планировщик работает перед каждым выполнением запроса. 

    Двигаем PostgreSQL в сторону OLAP: оптимизация параллельного вычисления агрегатов

    В данной статье я хочу рассказать о проверке одной гипотезы - возможности использования shared memory для ускорения параллельной агрегации методом хэширования. Статья Xu&Marcus, PVLDB, 2025 утверждает, что общая хэш-таблица — незаслуженно списанный со счетов способ параллельной агрегации, если использовать т.н. тикетинг и разделить операции поиска группы и обновления агрегата.

    Как фильтр Блума ускоряет JOIN'ы в PostgreSQL

    В рамках 18 релиза СУБД Tantor Postgres мы рассказывали об оптимизациях, которые помогают планировщику сделать более точный выбор между Nested Loop и Hash Join. В следующем релизе у нас планируются оптимизации, которые позволят ускорить выполнение как Nested Loop, так и Hash Join. Сегодня мы расскажем об одном из таких методов - фильтре Блума.

    Как мы тестируем Tantor Postgres для 1С — от нагрузочных тестов до оптимизаций планировщика

    Александр Симонов, руководитель направления развития 1С в "Тантор Лабс", рассказывает, как устроен процесс тестирования изнутри, почему одного "эталонного" прогона недостаточно, что делать, когда ванильный PostgreSQL 18 ломает собственные оптимизации, и как Tantor Postgres приближается к той планке, которую MS SQL Server держал годами.

    CSN vs MVCC Postgres: решаем проблему Long Fork аномалии и причем тут деградация Postgres при тысячах SAVEPOINT-ов

    Одно из узких мест масштабируемости в традиционном PostgreSQL MVCC – получение снимков. Каждый раз, когда транзакции требуется снимок, она должна получить ProcArrayLock и пройтись по всем активным бэкендам, чтобы собрать их идентификаторы транзакций. Эта операция становится все более затратной по мере роста числа одновременных соединений: при тысячах соединений конкуренция за блокировку может серьезно ограничить пропускную способность.

    Exadata на Postgres, или старые архитектурные проблемы и их решение в МБД Tantor XData Gen3

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

    От неизвестной схемы до защищённой БД: полный цикл защиты данных в Tantor Certified 17

    Ручной анализ схемы БД из 50+ таблиц займёт часы, а риск что-то упустить останется высоким. Каждый день промедления – потенциальное нарушение требований регуляторов.