Конференции и коммитфесты

PGConf.Russia 2024

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

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

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

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

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

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

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

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

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

Параллельно в зале с интригующим названием Толстой-Пушкин будут доклады, среди которых, например, такой:

Миграция с Oracle APEX/Forms на Эльбрус e2k. Проблемы. Производительность, Константин Ващенков ("Ростех" / НПФ ПАО "Ростелеком"). Вообще представителей компаний будет много: Тинькофф, Яндекс, Softpoint, Скала^р, PGMechanix, ЕДИНЫЙ ЦУПИС, ИнфоСофт, ВНИИЖТ, Sibedge, Конвертум, Всегда.Да, Сима-ленд, ГНИВЦ, Quillis, ФОРС, Хи-квадрат, ООО Кваллис. Их как раз больше в Чехове.

Традиционно будет и астрономический доклад: Открытие Вселенной силой мысли, Алексей Семихатов. Вечеринка будет 8-го в 19:30.

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

Напоминаем, что это лишь часть нового в PostgreSQL 17, а обо всём вместе можно будет узнать из доклада, с анонса которого начинается этот выпуск. Часть 4 начинается с "козыря":

Как всегда публикуем ссылки на предыдущие выпуски, посвященные PostgreSQL 17 - оригинальные и англоязычные в переводе Александра Мелешко @kaze_no_saga:

  • Часть 1. 2023-07 (ru / en),

  • Часть 2. 2023-09 (ru / en),

  • Часть 3. 2023-11 (ru / en).

Выложены в открытый доступ записи докладов на PGConf.Russia 2023

Это 43 доклада. В том числе теперь доступны презентации иностранных спикеров и тех, кто выступал онлайн. Они собраны в два плейлиста на YouTube-канале компании. День первый и День второй

Calling Postgres speakers, POSETTE CFP is open until Apr 7th 2024

Предложения ещё принимаются. Это онлайновая конференция, раньше называлась Citus Con. Приятна тем, что доклады выкладывают в открытый доступ. Прошлогодних было 37, позапрошлогодних - 38. Доклады надо уложить в 25 минут. Конференция пройдёт 11-13 июня.

Swiss PGDay 2024

Пройдёт тоже в июне - 27-28 в Восточно-Швейцарском Университете Прикладных Наук (OST Eastern Switzerland University of Applied Sciences), кампус в Рапперсвиллле. Доклады принимаются до 8 апреля.

Mini Summit Two

Дэвид Уилер (David E. Wheeler, основатель PGXN, перешедший в Tembo) в своём совсем не теоретическом блоге с названием Just a Theory делится впечатлениями от состоявшегося мини-саммита по расширениям. И выложил видео и слайды. Полноценный саммит будет называться Postgres Extension Ecosystem Mini-Summit и должен состояться 17 апреля.

Иэн Стантон (Ian Stanton) - технический основатель Tembo (что-то это словосочетание founding engeneer стало часто попадаться в последнее время). На мини-саммите он сказал так: сначала мы смотрели на PGXN - мы его любим, его поддерживает сообщество с 2011, но ведь там только исходные коды. А нам нужны бинарники. Кроме того, с 2012 PGXN не шибко интенсивно развивался. Мы начали создавать Trunk, вдохновляясь PGXN, Apt и Yum. К нему прикрутили интерфейс командной строки. Теперь парочкой команд расширение создаётся и устанавливается. Trunk и CLI написаны на Rust и используют Docker. Как сообщество отнесётся к проекту - пока непонятно.

PostgreSQL: PGDay at FOSSASIA Summit

Эта конференция состоится во Вьетнаме, в Ханое 9 апреля. Рабочий язык английский. Это целый набор мероприятий. Там в том числе будет PostgreSQL Day, посвященный эффективности и производительности. Объявлено, что выступать там будут:

Крис Трейверс (Chris Travers, приезжал и к нам на PGConf.Russia 2023), но уже в другом качестве: теперь он главный инженер (principal engineer) в компании DeliveryHero (Сингапур),

Андрей Лепихов (Andrei Lepikhov) ведущий разработчик в Postgres Professional,

Жиль Дароль (Gilles Darold, как мы видели в публикациях последнего времени, он директор по технологиям в HexaCluster,

Жюльен Руо (Julien Rouhaud, тоже знаком нам по PGConf.Russia, но теперь он, оказывается, технический основатель (founding engineer) в интересной компании Nile).

Знакомое имя в оргкомитете - Умейр Шахид (Umair Shahid, основатель Stormatics).

PG BootCamp Minsk 2024

Пройдёт 16 апреля в отеле "Ренессанс Минск". Язык мероприятия русский. На сайте PostgreSQL.org написано, что мероприятие проводится в соответствии с рекомендациями сообщества PostgreSQL и помогает его развитию.

Есть англоязычная версия сайта. В программном комитете: опять мы видим Умейра Шахида; а также там хорошо нам знакомый Максим Милютин - контрибьютор PostgreSQL и openGauss; Михаил Гольдберг - организатор конференций PGDay lsrael (с 2017).

Образование, стажировки, сертификация

PostgreSQL 16 изнутри

В ДМК Пресс на днях выйдет обновлённое до 16-й версии издание книжки Егора Рогова! На нашем сайте доступна в PDF. В этом издании не только отражены изменения, произошедшие в версии PostgreSQL 16, но и учтены замечания читателей и исправлены опечатки.

PGStart

Это программа стажировок в Postgres Professional. Работать можно по 6 направлениям:

  • DevOps-инженер,

  • QA-инженер,

  • инженер по отказоустойчивым решениям,

  • performance-инженер,

  • разработчик Go,

  • разработчик C.

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

Postgres Professional проведет профессиональную сертификацию «Администрирование PostgreSQL» в Университете ИТМО

18-19 апреля в Университете ИТМО (СПб, ул. Гастелло, 12) пройдет профессиональная сертификация «Администрирование PostgreSQL». Тестирование позволяет подтвердить уровень знаний, получить преимущества при поиске работы и узнать зону роста и темы, которые стоит изучить.

Тест можно пройти по PostgreSQL 10 (DBA2, DBA3, QPT) и 13 (DBA1, DBA2, DBA3, QPT). Специалисты с сертификатом уровня «Эксперт» по PostgreSQL 10 смогут сдать переходный тест Expert 10 → 13. Количество слотов ограничено. Записываться здесь.

SQL Logic

На сайте Redgate в их блоге Simple Talk Джо Селко (Joe Celko) предлагает ликбез по логике и "логике" в SQL. Джо несколько лет подряд выигрывал DBMS Magazine Reader's Choice Award, написал 8 книг по SQL.

В этой статье он говорит о формальной логике. Конечно, SQL построена на трёхзначной логике, которая штука специфическая. Но SQL это вообще не логика - утверждает он. И цитирует пионера реляционных баз Дэйва МакГоверна (Dave McGoveran). По той причине, что если бы это была логическая система, там были бы правила вывода (inference rules).

Дальше он говорит о странностях SQL. Например, DDL работают с UNKNOWN и FALSE  как со сходными, а для DML сходныеUNKNOWN и TRUE . Далее обсуждает конъюнкцию и дизъюнкцию, фразы с BETWEEN, подзапросы с [NOT] EXIST, поиск по выражению (pattern matching). И всё с историей вопроса. В конце поёт дифирамбы декларативным языкам и SQL в частности.

И ещё почти по теме:

Компания Stormatics не то, чтобы занимается образовательной деятельностью самой по себе, но ликбез, азы, жанр "<Х> для чайников" обильно представлены в их блогах. Случаются и deep dive, но реже. Вот примеры "андерстендингов":

PostgreSQL Internals Part 1: Understanding Database Cluster, Database and Tables

PostgreSQL Internals Part 2: Understanding Page Structure

Understand PostgreSQL's Planner - Simple Scan Paths vs Plans

Меня заинтересовала статья по итогам вебинара Криса Трейверса (опять он! :)) NUMA policies and their impact on PostgreSQL. Там он представлен как главный (principal) консультант по PostgreSQL. Это, вроде и не ликбез, а дип дайв - о функционировании контроллеров в разных режимах, доступу к памяти, но совсем коротенький - выжимка из 5-минутного видео. Мы сами как-то публиковали на тему NUMA, но это был не ликбез, а глубокий анализ ситуации, которую разрулили Михаил Жилин и Пётр Петров. В названии нет нумы, но она там есть: Битвы на территории ZFS.

Печальная новость: Саймон Риггс

Remembering Simon Riggs

Саймон покинул этот мир 26-го марта. Очень яркая личность, активнейший участник сообщества. Он основал 2ndQuadrant и уже только этим вошёл бы в историю Postgres. Он отвечал за конференции UK PostgreSQL пока не передал в прошлом году ответственность PostgreSQL Europe.

Последнее выступление было в Праге - его открывающая речь на PostgreSQL Conference Europe 2023, она доступна на YouTube.

Саймон с невероятной энергией пробивал в сообщество фичи, которые считал важными для сообщества и для собственной компании. Одному из эпизодов мы посвятили отдельную статью: Битва при MERGE. Хроника с выводами и моралью. Это был целый триллер.

Артур Закиров - персона недели

Interview with: Artur Zakirov | PostgreSQL Person of the Week

Артура я знаю и могу сказать о нём только хорошее. Но пусть уж он сам говорит:

Я начинал с MS SQL Server. После 6 лет работы с ним я стал разработчиком в  Postgres Professional. Там я активно работал над Postgres Pro , в том числе над новыми фичами. Некоторые из них и из исправленных багов попали и в основную ветку PostgreSQL.

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

Одно из любимых расширений - postgres_fdw. Мы его используем для самых разных целей, оно облегчает бесшовный доступ к удалённым данным. Из приложений - Робер Хаас (Robert Haas) недавно закоммитил в PostgreSQL 17 поддержку инкрементального бэкапа (см. об этом, напр., в обзоре Лузанова - примечание редакции). Ещё очень хочется поддержки UNDO-логов. Жаль, что развитие zheap притормозилось. В OrioleDB реализованы UNDO-логи, но там надо патчить PostgreSQL, а это удобно не во всех окружениях.

Сейчас я в Берлине, работаю в Adjust. А вырос я в посёлке в Башкортостане, окружённом зеленью, вдали от городской суеты. Тогда я и не думал переселяться в большие города. Теперь мне трудно представить себя живущим вне большого города. В Берлине я поселился 3 года назад, до того год работал в Токио.

PG-постапокалипсис

Recovering Deleted Data From PostgreSQL Tables

Кристоф Берг (Christoph Berd, Cybertec) пишет: делайте бэкапы, используйте транзакции. Ну а если всё же случилось непоправимое, его можно поправить - только бы (АВТО)VACUUM не успел бы пройтись по таблице! Поправить можно при помощи расширения, которое он сам и поддерживает. Называется pg_dirtyread. С ним можно читать таблицу так, как будто в ней нет строк, помеченных как удалённые.

Но если это не помогло (мёртвые строки уже вычистили), то думать о суициде рано: можно попробовать извлечь информацию из WAL, прочитав FPW (Full Page Writes). Но это уже средствами утилиты pg_waldump. Сохранить данные в файл. Прикинув правильные LSN (Log Sequence Number - последовательный номер в журнале), убрать лишнее. И создать новую табличку.

Recovering from Data Loss Despite Not Having a Backup: A Postgres True Story

Название похожее, но речь о другом. На линуксовой конференции SCaLE 21x в Пасадене в марте этого года Джимми Эйнджелэкос (Jimmy Angelacos) рассказывает о реальной катастрофе, последствия которой он устранял. Тогда грохнулся жёсткий диск. Данные в основном сохранились, но компания, восстанавливавшая диск, вернула их в виде вороха файлов со случайными названиями. Нужно было собрать из них базу с осмысленной иерархией файлов. Видео его выступления выложено в youtube, и можно полистать PDF.

How I did (not) recover from a data loss (featuring ZFS, LXD and PostgreSQL)

Статье лет 5 и написана вовсе не ИТ-гуру. Меня заинтересовала в ней тема: проблемы крушения ZFS и LXD обсуждают в статьях и комментариях не так уж часто. Stan's blog ведёт, соответственно, некто Stanislas, поддерживающий некоторую соцсеть mstdn.io на базе мастодонта - довольно популярного, между прочим, среди постгресистов. Спасением данных он занимался самостоятельно и стратегию выбрал такую: убить часть данных, чтобы не потерять самое важное в базе. С этой программой-минимум он, похоже справился.

А вообще-то не так давно - год назад - Евгений Бредня, возглавляющий службу поддержки в Postgres Professional, делал доклад на PGConf.Russia 2023:

Восстановление повреждённых данных

На этой странице есть видео, можно листать PDF. В предисловии Евгений предупреждает:

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

● Требует высокой квалификации: нужно знать как работает постгрес, как работает MVCC, где и в какой форме хранятся данные на диске, глубокие и широкие знания в предметной области.

● Долгий и кропотливый труд, который далеко не всегда приводит к успеху.

● Мотивация: поделиться опытом, который можно будет использовать.

Любое неверное движение приведёт к частичной или полной потере данных.

Если Вы вмешиваетесь в работу СУБД, то вся ответственность за возможную потерю данных лежит исключительно на Вас!

● Не следует даже пытаться делать что-либо без полного понимания последствий своих действий, лучше позовите на помощь.

В презентации симпатичные картинки:

Свой DBaaS

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

Автор представился как@Loxmatiymamont,ну Мамонт так Мамонт, почти Слон. Важная часть статьи: Мамонт сразу договаривается о терминах, об иерархии сущностей в DBaaS (снизу вверх):

База данных -> Инстанс -> Кластер -> Проект.

Последний и отличает разрабатываемый DBaaS от иерархий из учебников. Он создаётся для управления группами кластеров. У проекта есть владелец, который создаёт внутренних пользователей и наделяет их правами доступа.

Сервис должен быть гибким. В этом сервисе: можно динамически менять выделенные инстансам мощности, включая размер дисков. Теоретически можно даже на ходу изменить количество процессоров, но это приведёт к перезагрузке ноды. Это особенность OpenStack. И, что удобно, конфигурировать можно как всех участников кластера разом, так и отдельные инстансы. Ориентация на OpenStack связана с ситуацией на российском облачном рынке.

Репликация есть и физическая, и логическая. Все эти копии отправляются на S3.

Есть 15-минутное демо-видео полугодовалой давности. Мамонт сразу говорит, что продукт в процессе разработки, поэтому хочется узнать мнение читателей и послушать пожелания.

Анонс дела "закрытая дверка"

Security lessons from liblzma - такова тема ветки, которую стартовал Брюс Момджан в рассылке hackers. Андрес Фройнд (Andres Freund) проделал потрясающую работу по обнаружению дыры (backdoor), но надо и нам что-то делать, чтобы уже на 100% обезопасить и себя от аналогичных попыток - примерно так говорят в сообществе. Мы следим с замиранием сердца за развитием событий и расскажем об этом в следующем выпуске.

Пятнецы распараллелились

В Postgresso мы регулярно пишем об очередных пятнецах Райана Буза (Ryan Booz), при этом упоминая нередко, что сначала постгресовые пятнецы появились не у него, а у Шона Томаса (Shaun M. Thomas, сейчас в EDB) - для исторической справедливости. PG Phridays (в отличие от бузовских PGSQL Phridays) неизменно фигурировали в прошедшем времени. И время это 2017-й. Вдруг оказалось, что Шон (под влиянием успехов Райана или сам по себе) решил возобновить их на своём сайте BonesMoses.org. И вот они - за 15, 22 и 29 марта:

PG Phriday: Redefining Postgres High Availability (15 марта)

Это любопытная статья. Во многом суждения его нестандартны. Направления переопределения высокой доступности такие:

Во 2-м пункте Шон формулирует проблему так: не случайно движок хранения невероятно надёжен и абсолютно не подготовлен к чему-либо другому (incredibly robust and entirely unequipped for anything else). Здесь он говорит об облачном хранении. Вообще пишет он довольно ярким языком. А что нужно-то? Есть Postgres pluggable storage API. Но Шону этот путь не кажется перспективным.

Он говорит об ощутимом шоке в сообществе, когда появилась Aurora for Postgres (и советует посмотреть видео Deep Dive on Amazon Aurora). Потом подоспели NeonDB, AlloyDB, которые по-своему решают проблему хранения для кластера. И советует почитать концептуальную статью Хейкки Линнакангаса (Heikki Linnakangas, основывал Neon вместе со Стасом Кельвичем), где описаны архитектурные решения Neon по части хранения. Из которой, между прочим, можно узнать о новых бессерверных базах - DBaaS Socrates и PolarDB.

В 3-м пункте Шон предлагает свою собственную концепцию, рассказывая, как соединить преимущества шардинга и модели MapReduce.

PG Phriday: Why Postgres is the Best Database Engine (22 марта)

На этой статье не буду останавливаться

PG Phriday: A Dirty Postgres RAG (29 марта)

Название - игра слов: как бы грязная постгресовая ветошь. Но RAG это и Retrieval Augmented Generation - способ работы с LLM. Но это не просто ещё одна статья о pg_vector. И играться он будет даже не с GPT. В качестве модели берётся некая  Mixtral 7B, умеренная в своих аппетитах. А поскольку RAG многоступенчатый процесс, то в статье немало кусков кода самого разного свойства.

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

ИИ:

Distributed queries for pgvector

Статья Джонатана Каца (Jonathan Katz, Amazon RDS) непосредственно разрабатывавшего это расширение.

Вообще pgvector приспособлен к секционированию, HNSW-индексы создаются на всех секциях одной командой. Но есть нюансы при исполнении запросов и важные настройки индексов. А для распределённых транзакций Джонатан использует postgres_fdw.

В облаке он организует 3 узла, настраивает их, генерит при помощи PL/pgSQL-функции на двух рабочих нодах по 2.5 млн строк, потом запускает SELECT count(*) и смотрит, что происходит. Убеждается в асинхронном выполнении и дальше ищет 10 ближайших соседей некоторого вектора. И находит, причём на разных нодах.

Но ещё и запускает бенчмарк ANN Benchmarks.

Ссылается на свою статью о масштабируемости pgvector с рекордно длинным названием: Accelerate HNSW indexing and searching with pgvector on Amazon Aurora PostgreSQL-compatible edition and Amazon RDS for PostgreSQL.


На этом пока всё. Собирайтесь на PGConf.Russia 2024 или следите за новостями с неё.

Комментарии (0)