Средний
Программа конференции
Базовый
10:10 – 11:05
Postgres Protocol: плюсы, минусы, подводные камни
В докладе я расскажу о структуре клиент-серверного взаимодействия Postgres. Протоколу уже 20 лет, и сейчас понятно, что в свое время можно было сделать лучше.
Андрей Бородин
PostgreSQL contributor, руководитель подразделения разработки РСУБД с открытым исходным кодом, Yandex Cloud
Продвинутый
11:05 – 12:00
Миграция int-> bigint
Когда система начинает расти, часто случается, что то, что хорошо работало ранее, через какое-то время работать перестаёт. Именно так обстоит дело и с переполнением типов данных. Если в начале проекта хватало int4, то впоследствии он может полностью исчерпаться и понадобится переходить на bigint.
В своем докладе я опишу то, с чем сталкивается ДБА, опишу путь решения подобной задачи и познакомлю с утилитой, которая значительно упростит ее выполнение.
12:30 – 13:30
Александр Никитин
ведущий администратор БД PGMechanix
От реплики до высокодоступного кластера PostgreSQL
Приготовьтесь к путешествию по технологиям, необходимым для создания надежного и масштабируемого кластера PostgreSQL.
09:30 – 10:00
Регистрация участников
Начнем с основ, обсудим асинхронную и синхронную репликацию, перейдем к обсуждению Patroni — ключевого инструмента для управления репликацией и шардингом, а также поговорим о его роли в автоматизации обнаружения отказов и восстановления кластеров. Посмотрим работу кластера на живом примере, добавим HAProxy и PGbouncer для эффективной балансировки нагрузки и обеспечения высокой доступности, плюс keepalived для гарантирования непрерывной работы системы.
В общем, соберем комбинацию технологий в высокодоступный и масштабируемый кластер PostgreSQL.
Владимир Виноградов
руководитель DevOps «Тантор Лабс»
12:00 – 12:30
Кофе-брейк
13:30 – 14:30
Обед
14:30 – 15:20
Опыт исправления многолетних багов на примере plv8
Расскажу, как мы обходили многолетний баг в plv8, связанный с возвратом скалярных JSON-значений из Javascript-функций, а затем исправили его, решив проблему не “костылями” в нашем коде, а на уровне оригинального проекта для стабильной работы всех пользователей.
Поделимся историей принятия нашего pull request на GitHub, дадим советы тем, кто не решается контрибьютить, и обсудим, стоит ли дожимать эту историю, ведь остался нерешенным вопрос о формате возврата NULL-значений.
Средний
15:20 – 16:00
О производительности PostgreSQL для разработчиков
Разработка приложения и стресс-тестирование - это здорово. Однако когда приложение уже запускается в производство и начинает масштабироваться, мы часто сталкиваемся с ситуациями, о которых в процессе проектирования не задумывались.
Дмитрий Дорофеев
главный конструктор ГК Luxms
Это может быть связано, например, с новыми сценариями использования, технологическими сбоями, масштабом данных или числом пользователей. Кроме того, растет тенденция, когда общий стек технологий определяют разработчики и архитекторы, не являющиеся специалистами в области БД (в этом нет ничего плохого, тем более что это ускоряет процесс разработки и вывода на рынок).
В своем докладе я познакомлю разработчиков с некоторыми моментами, о которых следует помнить при проектировании и масштабировании приложений с использованием PostgreSQL.
Базовый
16:00 – 16:50
Пошаговая отладка исходного кода PostgreSQL на примере pg_store_plans
Сосредоточимся на детальном практическом изучении процесса отладки исходного кода PostgreSQL, научимся компилировать его с отладочными символами и применять продвинутые техники для выявления и устранения ошибок.
Умаир Шахид
основатель Stormatics
Узнаем, как подготовить среду для отладочной компиляции и как настроить Visual Studio Code для эффективной отладки.
Обязательно поделюсь личным опытом: как я прошел путь от студента без опыта работы до начинающего разработчика, раскрыв для себя массу возможностей в мире баз данных.
16:50 – 17:20
Кофе-брейк
Базовый
17:20 – 18:10
Мониторинг ожиданий и низкоуровневые проблемы производительности PostgreSQL
Мониторинг ожиданий – универсальный инструмент диагностики проблем производительности, с его помощью можно исследовать любую внезапную деградацию в базе или недостаточную утилизацию CPU. На ожиданиях строятся основные борды мониторинга производительности в коммерческих продуктах, например Performance Insights для Amazon RDS/Aurora или базовые performance-страницы Oracle Enterprise Manager.
Лев Николаев
разработчик «Тантор Лабс»
Я расскажу о том, как на основе opensource-компонентов получить функциональность мониторинга, сравнимую с главными бордами Performance Insights. Рассмотрим основные типы ожиданий, в том числе системные (низкоуровневые), и узнаем, как уменьшить влияние факторов, свидетельствующих о проблемах масштабируемости самого ядра PostgreSQL.
18:10 – 19:00
Отладка потоковой репликации PostgreSQL
Репликация — довольно сложная составляющая PostgreSQL по части разработки, в ней много непростых и интересных нюансов. Проектировать правильным образом эту часть без должной отладки практически невозможно.
Средний
Я покажу, какие инструменты использовать и как писать тесты, чтобы облегчить разработку репликации.
10:00 – 10:10
Открытие PG BootCamp 2024 Minsk
Максим Милютин
openGauss and PostgreSQL contributor
Михаил Гольдберг
член комитета PostgreSQL Code of Conduct c 2020 г., Председатель — с 2023 г.; член инициативной группы PG Boot Camp, организатор конференций PGDay Israel с 2017 г.
Илья Евдокимов
старший разработчик «Тантор Лабс»
Продвинутый
Вадим Яценко
генеральный директор «Тантор Лабс»
Conference program
Intermediate
Basic
10:10 – 11:05
Postgres Protocol: advantages, drawbacks, and pitfalls
In this paper, I'll discuss the Postgres client-server interaction structure. Even though the protocol has been in place for 20 years, it is now evident there was a better way to implement some parts of it in the past.
Andrey Borodin
PostgreSQL сontributor, head of open-source DBMS development unit, Yandex Cloud
Advanced
11:05 – 12:00
int-> bigint migration
When a system starts to expand, it frequently occurs that previous successful features eventually stop functioning. When it comes to data type overflow, this is precisely true. If int4 was sufficient at the start of the project, it could eventually run out entirely and you'll need to move to bigint.
In this paper, I will outline the challenges that DBAs encounter, explain how to address those issues, and present a tool that will make them much easier.
12:30 – 13:30
Alexander Nikitin
Lead DBA, PGMechanix
PostgreSQL: from a replica to a high-availability cluster
Get ready for a trip through the essential techniques for building a robust and expandable PostgreSQL cluster!
09:30 – 10:00
Guests registration at the venue
We'll start from the fundamentals, explore the synchronous and asynchronous PostgreSQL replication, speak about Patroni, a crucial tool for managing sharding and replication, and its role in automating cluster recovery and failure detection. Using a live example, we’ll see how the cluster functions and add HAProxy and PGbouncer for more efficient load balancing and high availability, and also use keepalived to ensure continuous system operation.
Generally speaking, we’ll overview a combination of technologies assemblable into a highly available and scalable PostgreSQL cluster.
Vladimir Vinogradov
DevOps Team lead, Tantor Labs
12:00 – 12:30
Сoffee break
13:30 – 14:30
Lunch
14:30 – 15:20
Resolving long-standing bugs, with plv8 as an example
I'll explain how we worked around a long-standing bug in plv8 that was related to the return of scalar JSON values from Javascript functions. We managed to fix the issue, addressing it at the level of the original project to ensure stable operation for all users, rather than using crutches in our code.
We will discuss whether it’s worthwhile to push this further because the format for returning NULL data still remains a problem, and also we’ll share the history of this particular pull request's acceptance on GitHub and make some suggestions for those who still doubt to get involved as contributors.
15:20 – 16:00
PostgreSQL performance for application developers — because there is no magic button
Dmitriy Dorofeyev
Chief architect, Luxms
Developing an application and stress testing is great. But as the app goes into production and begins to scale, more often than not, we begin to encounter situations that we haven't thought about during the design process.
This could be related to new use cases, disruptions in technology, or the sheer scale/volume of data and users. This is especially true for databases, more so because of the increasing trend of application developers and architects defining the technology stack - i.e. non-experts of databases making database decisions. Nothing wrong with it, especially as it speeds up the process of development and go-to-market.
This talk focuses on such instances in order to guide developers of a few key items to be mindful of when designing and scaling applications using PostgreSQL.
Basic
16:00 – 16:50
Step-by-step debugging of PostgreSQL source code with pg_store_plans as an example
The main focus of our study will be a thorough practical examination of the debugging process, learning to compile it using debugging symbols, and applying some fascinating techniques to find and fix mistakes.
Umair Shahid
Founder, Stormatics
We'll cover the setup of the debug compilation environment and the configuration of VS Code for efficient debugging.
I'll also talk about my own journey, which began as a student with no prior work experience and ended with me being a rookie developer who found a wealth of opportunities in the database world.
16:50 – 17:20
Сoffee break
Basic
17:20 – 18:10
Expectations monitoring and low-level PostgreSQL performance issues
Expectations monitoring is a versatile method for troubleshooting performance issues; it may be used to examine any sudden degradation or insufficient CPU utilization. Performance monitoring boards in commercial products, for example Performance Insights for Amazon RDS/Aurora or the basic performance pages of Oracle Enterprise Manager, are built on expectations. I am going to show how you can get rich monitoring capabilities, comparable to Performance Insights boards, using open-source components.
Lev Nikolaev
Developer, Tantor Labs
We'll dig into the expectation types, including system (low-level) ones, and talk about mitigating the impact of factors reflecting scalability issues in the PostgreSQL kernel.
18:10 – 19:00
Debugging the PostgreSQL streaming replication
PostgreSQL replication has many intricate and fascinating aspects, making it a rather complicated aspect of the database building process. Without appropriate debugging, it is nearly hard to design this portion appropriately.
To help with replication development, I'll walk you through the selection of tools and test writing techniques.
Maxim Milutin
openGauss and PostgreSQL contributor
10:00 – 10:10
PG BootCamp 2024 Minsk welcome speech
Michael Goldberg
Member of PostgreSQL Code of Conduct Committee (as of 2020), Chair (as of 2023), Member of PG Boot Camp Initiative Group, PGDay Israel Conferences Organizer (as of 2017)
Ilya Evdokimov
Senior developer, Tantor Labs
Vadim Yatsenko
CEO, Tantor Labs
Advanced
Intermediate
Intermediate
PG BootCamp Russia 2023
Качаем скиллы PostgreSQL
Москва
5 октября 2023
Мероприятие завершено