C++ внутри PostgreSQL: удобство против традиций(Илья Шишков)
24 мая в Санкт-Петербурге состоялся первый System Level Meetup от компании YADRO. В рамках мероприятия спикер из СберТех, Илья Шишков, выступил с докладом "C++ внутри PostgreSQL: удобство против традиций". Работая над СУБД Pangolin, основанной на PostgreSQL, Илья попробовал аккуратно вплести C++ в строго C-шную кодовую базу. Цель была прагматичная: упростить управление ресурсами и сделать код понятнее. В результате он смог достичь тонкого баланса между философией PostgreSQL и выразительностью C++. В докладе рассказал, где C++ действительно помог, как они решали вопросы совместимости и как не наломать дров в кодовой базе с миллионами строк на C. Показал конкретные участки кода «до» и «после». Под конец продемонстрировал «грабли» и удачные решения, которые также применимы в других проектах. 00:25 - О спикере. 02:02 - О докладе. 03:20 - Код PostgreSQL: плюсы и минусы. История, как устроен. 10:01 - Технологии PostgreSQL, которых нет в C. 13:01 - Автоматическое управление памятью в PostgreSQL. 13:43 - Зачем и как внедрил C++. 15:11 - Примеры. Где C++ помог? В сравнении с тем, как это можно было сделать на C. 32:35 - Итоги внедрения C++. 34:04 - Хорошая абстракция. 39:07 - Выводы. 40:46 - Вопросы участников. Подробности о докладах и анонсы следующих митапов вы найдете на нашем Хабре https://habr.com/ru/companies/yadro/articles/ 📚 Дополнительные материалы ✅ Статьи на Истовом инженере: ·Виноград, Фурье и немного наивности: 4 подхода к реализации сверток с простыми примерами https://engineer.yadro.com/article/4-podhoda-k-realizacii-svertok-s-prostymi-primerami/ · Три икса: новый уровень работы с большими свертками в PyTorch для обучения моделей https://engineer.yadro.com/article/kak-rasshirit-vozmozhnosti-pytorch-dlya-raboty-so-svertkami/ · Вирт, Кормен и диалекты Basic: что изучить про алгоритмы и структуры данных разработчикам на С++ https://engineer.yadro.com/article/algoritmy-i-struktury-dannyh-cpp/ · Обзор книги «С++ 20 в деталях»: доступно, но не для джунов https://engineer.yadro.com/article/c-get-the-details-book/ · Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++ https://engineer.yadro.com/article/ml-for-neural-networks/ ✅ Хабр: · Пишем свой кодек для JSON с фиксированной схемой: опыт разработчика и сравнение производительности https://habr.com/ru/companies/yadro/articles/972524/ · Используем паттерны C++ в ML: пишем тензор с factory, выделяем память и управляем динамическими типами https://habr.com/ru/companies/yadro/articles/994326/ · Динамический полиморфизм для свободных функций: еще одна практика из С++ для машинного обучения https://habr.com/ru/companies/yadro/articles/997006/ · Почему AI не может полноценно участвовать в разработке на С++ https://habr.com/ru/companies/yadro/articles/1003670/ · Девиртуализация в C++, компиляторах и вашей программе https://habr.com/ru/companies/yadro/articles/938694/ 🎧 Послушать: · Подкаст «Битовые маски» с Константином Владимировым. Компилятор для CPU и GPU. Часть 1. LLVM и GCC https://engineer.yadro.com/podcast/compiler-cpu-gpu-part-1/ · Подкаст «Битовые маски» с Константином Владимировым. Часть 2. LLVM в GPU компиляторах. Стандарты С++ https://engineer.yadro.com/podcast/compiler-cpu-gpu-part-2/
24 мая в Санкт-Петербурге состоялся первый System Level Meetup от компании YADRO. В рамках мероприятия спикер из СберТех, Илья Шишков, выступил с докладом "C++ внутри PostgreSQL: удобство против традиций". Работая над СУБД Pangolin, основанной на PostgreSQL, Илья попробовал аккуратно вплести C++ в строго C-шную кодовую базу. Цель была прагматичная: упростить управление ресурсами и сделать код понятнее. В результате он смог достичь тонкого баланса между философией PostgreSQL и выразительностью C++. В докладе рассказал, где C++ действительно помог, как они решали вопросы совместимости и как не наломать дров в кодовой базе с миллионами строк на C. Показал конкретные участки кода «до» и «после». Под конец продемонстрировал «грабли» и удачные решения, которые также применимы в других проектах. 00:25 - О спикере. 02:02 - О докладе. 03:20 - Код PostgreSQL: плюсы и минусы. История, как устроен. 10:01 - Технологии PostgreSQL, которых нет в C. 13:01 - Автоматическое управление памятью в PostgreSQL. 13:43 - Зачем и как внедрил C++. 15:11 - Примеры. Где C++ помог? В сравнении с тем, как это можно было сделать на C. 32:35 - Итоги внедрения C++. 34:04 - Хорошая абстракция. 39:07 - Выводы. 40:46 - Вопросы участников. Подробности о докладах и анонсы следующих митапов вы найдете на нашем Хабре https://habr.com/ru/companies/yadro/articles/ 📚 Дополнительные материалы ✅ Статьи на Истовом инженере: ·Виноград, Фурье и немного наивности: 4 подхода к реализации сверток с простыми примерами https://engineer.yadro.com/article/4-podhoda-k-realizacii-svertok-s-prostymi-primerami/ · Три икса: новый уровень работы с большими свертками в PyTorch для обучения моделей https://engineer.yadro.com/article/kak-rasshirit-vozmozhnosti-pytorch-dlya-raboty-so-svertkami/ · Вирт, Кормен и диалекты Basic: что изучить про алгоритмы и структуры данных разработчикам на С++ https://engineer.yadro.com/article/algoritmy-i-struktury-dannyh-cpp/ · Обзор книги «С++ 20 в деталях»: доступно, но не для джунов https://engineer.yadro.com/article/c-get-the-details-book/ · Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++ https://engineer.yadro.com/article/ml-for-neural-networks/ ✅ Хабр: · Пишем свой кодек для JSON с фиксированной схемой: опыт разработчика и сравнение производительности https://habr.com/ru/companies/yadro/articles/972524/ · Используем паттерны C++ в ML: пишем тензор с factory, выделяем память и управляем динамическими типами https://habr.com/ru/companies/yadro/articles/994326/ · Динамический полиморфизм для свободных функций: еще одна практика из С++ для машинного обучения https://habr.com/ru/companies/yadro/articles/997006/ · Почему AI не может полноценно участвовать в разработке на С++ https://habr.com/ru/companies/yadro/articles/1003670/ · Девиртуализация в C++, компиляторах и вашей программе https://habr.com/ru/companies/yadro/articles/938694/ 🎧 Послушать: · Подкаст «Битовые маски» с Константином Владимировым. Компилятор для CPU и GPU. Часть 1. LLVM и GCC https://engineer.yadro.com/podcast/compiler-cpu-gpu-part-1/ · Подкаст «Битовые маски» с Константином Владимировым. Часть 2. LLVM в GPU компиляторах. Стандарты С++ https://engineer.yadro.com/podcast/compiler-cpu-gpu-part-2/




