Тег

PostgreSQL

12 материалов

Postgres 19 сдвигается на ноябрь: LLM-ревью нашло слишком много багов, чтобы успеть (theregister.com)

Коммиттер Питер Эйзентраут частично винит в задержке ревью с помощью LLM: оно выявило много мелких дефектов в граничных случаях, которые раньше всплыли бы через годы после релиза. Сорок отчётов, каждому из которых нужно три строки правки, съели оставшееся бета-время.

🚀Tech ★ 180 · 💬 68 · 17 октября · #ИИ#данные#open source#EDB#Peter Eisentraut#PostgreSQL+1

Не просто заголовок — разбор дискуссии

Главные треды HN: факты из обсуждений, разные стороны, голоса инсайдеров. Email, Telegram или RSS.

LISTEN/NOTIFY в Postgres масштабируется — если точно определить масштаб (dbos.dev)

LISTEN/NOTIFY может обслуживать высокую нагрузку при правильной архитектуре, но лимит уведомления 8 КБ определяет область применимости.

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

Гайд по Postgres советовал стартапам сперва нормализовать схему. HN сказал: сначала — мониторинг (hatchet.run)

Гайд по Postgres от Hatchet ведёт стартапы через дизайн схемы, оптимизацию запросов и масштабирование, с реальными порогами: последовательные сканирования становятся дорогими после 20 тысяч строк, прогоны autovacuum дольше часа означают, что настройку пора менять.

Комментатор, запускавший Postgres в стартапе на ранней стадии, возразил: мониторинг заслуживал места выше дизайна схемы, потому что такие сбои, как transaction ID wraparound, почти не дают предупреждения — а письмо-алерт от AWS легко пропустить, особенно на праздники.

Postgres-пулер закрыл дыру, через которую сессия клиента утекает в чужую (pgdog.dev)

PgDog встроил собственный SQL-парсер: он отслеживает SET, LISTEN/NOTIFY и подготовленные запросы для каждого клиента, восстанавливая их перед каждым запросом — именно то, от чего приходится отказываться в режиме транзакций PgBouncer. По словам Кокотова, год в продакшене на 2 млн запросов в секунду.

Истории из треда подтвердили: цена реальна. Инженер, недавно перенёсший Django-приложение за PgBouncer, обнаружил, что серверные курсоры queryset.iterator() не переживают пулинг, а statement_timeout в параметрах libpq молча игнорируется.

Одна база данных на всё: доводы против Redis, Mongo и Pinecone (postgresisenough.dev)

Каталог конкретен: UNLOGGED-таблицы вместо Redis, SKIP LOCKED вместо очереди задач, pgvector вместо Pinecone, PostGIS вместо вашего гео-стека — с правилом, что покинуть Postgres можно только после того, как задокументируешь, почему его не хватило.

Разработчик, у которого email-CRM работает на Redis, не покупается на посылку: его тривиально настроить, и он никогда не падает, так о какой сложности вообще говорит этот жанр?

Ubicloud: OOM killer в Linux способен разом оборвать все соединения Postgres. Сооснователь признал: перебор (ubicloud.com)

Механика: процессы Postgres делят общие сегменты памяти, поэтому OOM-killer, убив один процесс, вынуждает постмастер завершить все процессы разом. Ответ Ubicloud — строгий overcommit (vm.overcommit_memory=2): Linux сразу отказывает в выделении памяти сверх лимита с ошибкой ENOMEM, а Postgres просто отменяет ту транзакцию, что стала причиной.

Тред разделился. Один комментатор говорит, что статья неверно описывает режимы overcommit в ядре и не упоминает oom_score_adj; сооснователь самой компании признаёт, что подача получилась слишком резкой.

Postgres 19 наконец дефрагментирует таблицы без блокировок и берёт GROUP BY ALL у DuckDB (snowflake.com)

Крейг Керстинс из Snowflake разбирает бету Postgres 19: REPACK CONCURRENTLY реорганизует распухшие таблицы без блокировок и без pg_repack, партиции сливаются и разбиваются на месте, autovacuum получает параллельных воркеров, а SQL/PGQ приносит графовые запросы.

Тред обсуждал не то, что вышло, а чего всё ещё нет: учёный с 15-летним стажем указал на отсутствие колоночного хранения, другим не хватает материализованных представлений и обновления мажорных версий на месте. И главная придирка: GROUP BY ALL первым придумал DuckDB.

Гист утверждает, что Postgres заменяет Kafka, Redis и Neo4j (gist.github.com)

Гист устанавливает намеренно высокую планку: берите отдельную систему только после того, как исчерпаете Postgres, задокументируете его ограничения и примете операционные издержки второго стека. PGMQ вместо Kafka, pgvector и ParadeDB вместо Elasticsearch, Apache AGE вместо Neo4j.

Затем SRE из Google переворачивает аргумент: к Kafka или Snowflake тянутся именно тогда, когда Postgres уже не справляется, а ветеран с 20-летним стажем утверждает, что одна большая база сложнее в эксплуатации, чем несколько маленьких.

Соло-разработчик сделал ER-диаграммы, не отправляющие SQL никуда — а инженер сказал, что это не ER (sqltoerdiagram.com)

Устав от инструментов с пейволлами, обязательной регистрацией и серверами, заглатывающими твою схему, robhati сделал sqltoerdiagram.com: клиентский холст, где вставленный DDL превращается в интерактивную диаграмму — её можно таскать, авто-раскладывать и экспортировать в PNG или SVG.

Инженерный понт: таблицы растеризуются в кэшированные битмапы с отсечением вне области просмотра, а парсер SQL отслеживает позиции токенов, так что переименование остаётся точечным. Возражение: таблицы — не сущности, поэтому из одного SQL настоящей ER-диаграммы не выйдет.

Postgres 19 наконец отвечает: как эта строка выглядела в прошлый вторник? (pgedge.com)

Postgres 19 добавляет нативные темпоральные таблицы по времени приложения: PRIMARY KEY (id, valid_at WITHOUT OVERLAPS) заменяет пляску с EXCLUDE USING gist, FOR PORTION OF позволяет UPDATE переписать лишь один временной срез, а внешние ключи PERIOD следят за действительностью на всём промежутке.

Разработчик, реализовавший это, зашёл в тред и сказал: системного времени всё ещё нет, и он надеётся взяться за него следующим. А автор статьи назвал это крупнейшим релизом со времён v10.

Стартап из трёх человек привлёк $5,5 млн, чтобы шардировать Postgres без правок кода (pgdog.dev)

Меняется только строка подключения, не приложение. Open-source-версия набрала 1,4 млн загрузок в Docker; раунд — от Basis Set, YC и Pioneer Fund.

Самым красноречивым отзывом стал запрос Саймона Уиллисона: выпустите обычный бинарник, потому что ради того, чтобы попробовать, он не станет поднимать Helm или Docker.

Ответ Microsoft на Temporal — расширение Postgres, гоняющее воркфлоу прямо в SQL (github.com)

pg_durable позволяет описать устойчивый к падениям многошаговый воркфлоу целиком на SQL и выполнять его внутри Postgres — без Redis, без Temporal, без флота воркеров. Первая реакция треда: поздравляем, вы заново изобрели хранимые процедуры, и юнит-тестировать их по-прежнему нельзя.