Блог

Новости, статьи и руководства от команды Сарнас

Найдено статей: 31 Сбросить

Zero-copy запись WAL в PolarDB: что меняется на пути коммита
28 октября 2026Команда Сарнас

Zero-copy запись WAL в PolarDB: что меняется на пути коммита

В PolarDB появился режим zerocopy для записи WAL, устраняющий лишнее копирование данных между процессами на критическом пути коммита. Разбираем, как устроен новый механизм, зачем понадобилось…

Читать далее
DuckDB 2.0 LTS: асинхронный ввод-вывод, Quack-протокол и режим для агентов
22 октября 2026Команда Сарнас

DuckDB 2.0 LTS: асинхронный ввод-вывод, Quack-протокол и режим для агентов

DuckDB 2.0 выходит с долгосрочной поддержкой и становится заметно ближе к полноценной СУБД: асинхронный вводвывод ускоряет работу с данными в объектных хранилищах, а новый сетевой протокол позволяет…

Читать далее
4B-модель против оптимизатора Postgres: откуда берётся ускорение на 81%
13 октября 2026Команда Сарнас

4B-модель против оптимизатора Postgres: откуда берётся ускорение на 81%

Автор разбирает нашумевший результат, в котором компактная 4Bмодель, обученная с подкреплением, обыгрывает планировщик PostgreSQL на 81% на наборе JOBзапросов. Статья объясняет, почему за громким…

Читать далее
pgColumnar 1.0-alpha4: колоночный доступ в PostgreSQL с укладкой по кривой Гильберта
12 октября 2026Команда Сарнас

pgColumnar 1.0-alpha4: колоночный доступ в PostgreSQL с укладкой по кривой Гильберта

В PostgreSQL появился экспериментальный метод доступа к таблицам, который хранит данные поколоночно и укладывает их на диск по кривой Гильберта вместо привычного Zпорядка. Автор разбирает внутреннее…

Читать далее
Как устроены блокировки строк на уровне страниц в PostgreSQL
12 октября 2026Команда Сарнас

Как устроены блокировки строк на уровне страниц в PostgreSQL

Блокировка строки в PostgreSQL устроена неожиданно: для неё не выделяется отдельная структура, а её признаки записываются прямо в заголовок кортежа — туда же, где хранится информация об удалении.…

Читать далее
max_notify_queue_pages: зачем в PostgreSQL появился новый GUC
12 октября 2026Команда Сарнас

max_notify_queue_pages: зачем в PostgreSQL появился новый GUC

В статье разбирается новый параметр PostgreSQL 17 , заменивший неявное ограничение очереди LISTEN/NOTIFY в разделяемой памяти. Автор показывает, как устроена очередь, какими неочевидными способами…

Читать далее
Ускорение аналитики по JSON: от научных идей к продакшену
12 октября 2026Команда Сарнас

Ускорение аналитики по JSON: от научных идей к продакшену

Аналитика по JSON часто тормозит не изза вычислений, а изза лишних операций вводавывода и неэффективного хранения данных. В статье разбираются реальные инженерные подходы к решению этой проблемы — от…

Читать далее
PostgreSQL для мультитенантных SaaS: типы для денег, RLS и шесть ключевых решений
12 октября 2026Команда Сарнас

PostgreSQL для мультитенантных SaaS: типы для денег, RLS и шесть ключевых решений

Разбираем, как PostgreSQL на самом деле устроен внутри при работе с деньгами и мультитенантностью: почему трактует и поразному, откуда берётся его медлительность и какие подводные камни прячет тип .…

Читать далее
Адаптивное lossless-кодирование чисел с плавающей точкой в Apache Parquet
11 октября 2026Команда Сарнас

Адаптивное lossless-кодирование чисел с плавающей точкой в Apache Parquet

Новая кодировка ALP из Apache Parquet обещает лёгкое losslessсжатие для FLOAT и DOUBLE, тогда как раньше приходилось выбирать между громоздким PLAIN и вспомогательным BYTE_STREAM_SPLIT. В статье…

Читать далее
max_replication_slots в PostgreSQL: как устроен shared-memory массив слотов репликации
11 октября 2026Команда Сарнас

max_replication_slots в PostgreSQL: как устроен shared-memory массив слотов репликации

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

Читать далее
Бесконечная рекурсия в политиках RLS и цена исправлений
11 октября 2026Команда Сарнас

Бесконечная рекурсия в политиках RLS и цена исправлений

Политики RLS подключаются к запросу не на этапе разбора, а позже — при переписывании, и именно это создаёт предпосылки для бесконечной рекурсии. Автор разбирает конвейер обработки запросов в…

Читать далее
Как Perplexity заменила DynamoDB на CobbleDB: механика собственного hot store
10 октября 2026Команда Сарнас

Как Perplexity заменила DynamoDB на CobbleDB: механика собственного hot store

Замена DynamoDB на собственное hotхранилище CobbleDB в Perplexity показывает, как выглядит инфраструктурное решение под конкретный профиль нагрузки, а не под универсальные требования. Разбор пути…

Читать далее
max_slot_wal_keep_size: как не дать репликационным слотам забить диск и уронить primary
10 октября 2026Команда Сарнас

max_slot_wal_keep_size: как не дать репликационным слотам забить диск и уронить primary

Параметр max_slot_wal_keep_size ограничивает объём WAL, который могут удерживать репликационные слоты, предотвращая переполнение диска на primary. Разбираем, как именно работает этот механизм, почему…

Читать далее
B-Trees возвращаются: как устроены быстрые и страничные узлы
10 октября 2026Команда Сарнас

B-Trees возвращаются: как устроены быстрые и страничные узлы

Статья детально разбирает внутреннее устройство Bдеревьев — от логики выбора дочерних указателей при поиске до механики расщепления и слияния узлов вплоть до корня. Отдельное внимание уделено порогам…

Читать далее
Почему бэкфилл большой таблицы в Postgres раздувает её в разы и как этого избежать
10 октября 2026Команда Сарнас

Почему бэкфилл большой таблицы в Postgres раздувает её в разы и как этого избежать

При добавлении нового столбца в большую таблицу Postgres переписывает каждую строку целиком, оставляя старые версии мёртвыми до очистки, — изза этого файлы таблицы и индексов могут вырасти в разы,…

Читать далее
Два таймера горячего резерва: как задержка репликации отменяет запросы
10 октября 2026Команда Сарнас

Два таймера горячего резерва: как задержка репликации отменяет запросы

На горячем резерве PostgreSQL применение WAL регулярно вступает в конфликт с выполняющимися запросами, и разрешается он двумя таймерами — и . Разбираем, почему параметров именно два, как на самом…

Читать далее
PostgreSQL 19: онлайн-перепаковка таблиц без расширений
10 октября 2026Команда Сарнас

PostgreSQL 19: онлайн-перепаковка таблиц без расширений

В PostgreSQL 19 наконецто появляется встроенная онлайнперепаковка таблиц — команда , не требующая установки pg_repack и прочих расширений. Разбираем, как она обходит блокировки, которые делают и…

Читать далее
PostgreSQL глазами ядра Linux: как СУБД взаимодействует с системными вызовами
10 октября 2026Команда Сарнас

PostgreSQL глазами ядра Linux: как СУБД взаимодействует с системными вызовами

PostgreSQL сознательно полагается на буферизованный вводвывод и страничный кэш ядра, что порождает сложный слой взаимодействия с системными вызовами — от пула виртуальных файловых дескрипторов до…

Читать далее
NVIDIA выпустила Kumo Tabular: базовую модель для табличных данных без обучения под задачу
10 октября 2026Команда Сарнас

NVIDIA выпустила Kumo Tabular: базовую модель для табличных данных без обучения под задачу

NVIDIA представила Kumo Tabular — первую базовую модель для табличных данных, которая выдаёт предсказания за один прямой проход, без дообучения, подбора гиперпараметров и ручного конструирования…

Читать далее
PostgreSQL 20 удаляет array_nulls: как восстановление дампа превращает NULL в строку
10 октября 2026Команда Сарнас

PostgreSQL 20 удаляет array_nulls: как восстановление дампа превращает NULL в строку

PostgreSQL 20 полностью удаляет параметр array_nulls, изза чего дампы, восстановленные в базы с нестандартными настройками, могут тихо превращать NULLэлементы массивов в строку «NULL». Разбираем…

Читать далее
Как PostgreSQL хранит таблицы на диске: relfilenode, форки и сегменты
10 октября 2026Команда Сарнас

Как PostgreSQL хранит таблицы на диске: relfilenode, форки и сегменты

В статье разбирается, как PostgreSQL раскладывает таблицу по файлам: почему путь на диске определяется не OID, а relfilenode, откуда у одной таблицы берётся сразу несколько файлов и зачем нужны форки…

Читать далее
PostgreSQL 19: query hints и тонкости настройки max_wal_size
9 октября 2026Команда Сарнас

PostgreSQL 19: query hints и тонкости настройки max_wal_size

PostgreSQL 19 приносит долгожданный механизм query hints — расширения pg_plan_advice и pg_stash_advice, которые позволяют фиксировать план запроса и управлять им через именованные коллекции советов.…

Читать далее
PostgreSQL и RLS под PgBouncer: что ломается на практике
9 октября 2026Команда Сарнас

PostgreSQL и RLS под PgBouncer: что ломается на практике

Когда PgBouncer в режиме transaction pooling переиспользует серверные соединения, сессионные переменные, от которых зависит RLSполитика, могут «утечь» к другому клиенту — и это не теоретическая…

Читать далее
Как ParadeDB ускоряет полнотекстовый поиск: механика оптимизаций BM25
9 октября 2026Команда Сарнас

Как ParadeDB ускоряет полнотекстовый поиск: механика оптимизаций BM25

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

Читать далее
min_wal_size в PostgreSQL: как незаметная настройка ломает репликацию
9 октября 2026Команда Сарнас

min_wal_size в PostgreSQL: как незаметная настройка ломает репликацию

Настройка в PostgreSQL выглядит безобидно и обычно воспринимается как способ зарезервировать место под WAL, но её реальная роль — лишь ограничивать, насколько сильно сервер может сжать каталог , и…

Читать далее
Пул соединений врёт обоим: как на самом деле работает масштабирование PostgreSQL
9 октября 2026Команда Сарнас

Пул соединений врёт обоим: как на самом деле работает масштабирование PostgreSQL

PgBouncer намеренно создаёт расхождение между тем, что видит клиент, и тем, что видит сервер PostgreSQL, и именно из этого расхождения вырастают ограничения пулера: логика выдачи соединений, ошибки в…

Читать далее
Cloudberry как расширение PostgreSQL 19: как Greenplum перестал быть форком
9 октября 2026Команда Сарнас

Cloudberry как расширение PostgreSQL 19: как Greenplum перестал быть форком

Apache Cloudberry — это попытка превратить массивный MPPдвижок из форка PostgreSQL в набор расширений для PostgreSQL 19, чтобы навсегда избавиться от хронического отставания от апстрима. Разбор…

Читать далее
PostgreSQL 18: разбираем num_os_semaphores и ошибку, жившую 12 лет
9 октября 2026Команда Сарнас

PostgreSQL 18: разбираем num_os_semaphores и ошибку, жившую 12 лет

В PostgreSQL 18 появился параметр num_os_semaphores, который наконец показывает, сколько системных семафоров сервер резервирует при старте — раньше это число приходилось вычислять вручную по формуле,…

Читать далее
Векторизованный исполнитель запросов в PostgreSQL 19 без форка ядра
9 октября 2026Команда Сарнас

Векторизованный исполнитель запросов в PostgreSQL 19 без форка ядра

В PostgreSQL 19 появился способ векторизовать исполнение запросов без форка ядра и без отдельного движка: расширение vexec встраивает векторные сканы, соединения и агрегаты прямо в существующий…

Читать далее
Что внутри bbolt: как устроено самое простое KV-хранилище
6 октября 2026Команда Сарнас

Что внутри bbolt: как устроено самое простое KV-хранилище

Устройство bbolt разбирается на уровне отдельных страниц и метаданных: как хранилище определяет размер страницы при открытии, зачем держит две метастраницы и почему блокирует файл. Особенно полезно…

Читать далее
Что внутри Redis Cluster: слоты, госсип и выбор лидера при сбое
6 октября 2026Команда Сарнас

Что внутри Redis Cluster: слоты, госсип и выбор лидера при сбое

Redis Cluster часто воспринимают как «просто шардированный Redis», но за этим скрывается несколько независимых механизмов: хеширование ключей в слоты, обмен состоянием между узлами через gossip и…

Читать далее