Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Исходники Postgres, С чего начать.  [new]
Visermoz
Member

Откуда: Омск
Сообщений: 128
Здравствуйте. Большой интерес вызывает внутреннее устройство Postgres: хочется эффективно настраивать и использовать, понимать почему произошло то или иное. Например, как используется shared buffer, логику работы autovacuum (посмотрел доклад с HighLoad(Алексей Лесовский) и понял, что хотелось бы посмотреть под отладкой как это работает), ну и конечно написание расширений и многое другое.

В интернете много поверхностных статей с рекомендациями по настройке Postgres, но не так много мне удалось найти по внутреннему устройству и с чего начать участие в разработке. Читать сходу pgsql-hackers очень тяжело и хотелось бы для начала просто собрать из исходников,запуститься, посмотреть какие-то важные точки остановки, алгоритмы.

Подскажите пожалуйста с чего можно начать интересующемуся этой областью (с учетом того, что есть опыт программирования, правда не на С, то это проблем не вызовет, с использованием Linux на уровне уверенного пользователя и немного администрирования тоже)?

Мне интересно, как работают сейчас разработчики: под какой операционной системой, как отлаживаются, грубо говоря в какой IDE и каким компилятором пользуются. Есть ли жизнь под Windows при этом или это возможно только под Linux?

Что стоит подтянуть по внутреннему устройству Linux и , возможно , какие-то глубокие темы по C?
С каких функций из исходников стоит начать в первую очередь?
13 ноя 20, 05:22    [22231198]     Ответить | Цитировать Сообщить модератору
 Re: Исходники Postgres, С чего начать.  [new]
Melkij
Member

Откуда: Санкт-Петербург
Сообщений: 1190
Для углубления в исходники базы достаточно базиса в виде K&R C.
Начинать читать отсюда:
https://wiki.postgresql.org/wiki/Development_information
http://www.interdb.jp/pg/
PostgreSQL Server Programming (Hannu Krosing, Jim Mlodgenski) - оно о написании хранимок в первую очередь, но и очень неплохое описание version 1 calling convention function. Функции из штатного функционала использует ровно тот же самый API.
Ну и опять дока по написанию C функций https://www.postgresql.org/docs/current/xfunc-c.html
Высокие абстракции в README вынесены.

Visermoz
Мне интересно, как работают сейчас разработчики: под какой операционной системой, как отлаживаются, грубо говоря в какой IDE и каким компилятором пользуются

Без разницы. Если вдруг найдёте какую-то экзотику где не будет собираться. или компилятор даст варнинги на актуальных ветках или что-то не будет работать после сборки из-за этого компилятора или ещё чего экзотического - напишите в hackers, этим уже заинтересуются и это будет полезно проекту. (только перепроверьте, что у вас артефактов с прошлых сборок не осталось, git clean -fxd )
Только предостерегу прогонять какие-то статические анализаторы и писать письмо без проверки что это действительно баг базы, а не false positive анализатора.

Visermoz
Есть ли жизнь под Windows при этом

Какая-то есть

Visermoz
Что стоит подтянуть по внутреннему устройству Linux и , возможно , какие-то глубокие темы по C?

Не требуется

Visermoz
С каких функций из исходников стоит начать в первую очередь?

С чего-то интересного именно вам. Мне вот было интересно почему для изменения primary_conninfo надо ребутать базу - и вот, пару лет спустя это больше делать не надо.
Если всё равно куда - могу порекомендовать contrib'ы посмотреть, dblink или pg_stat_statements. Они небольшие по объёму кода.

По сборке - я использую
./configure --prefix=/home/melkij/tmp/pgdev/inst --enable-cassert --enable-debug CFLAGS="-ggdb -Og -g3 -fno-omit-frame-pointer" --enable-tap-tests
make -sj6 world && make install-world -s && make -Otarget -j6 -s check-world && echo success || echo fail
13 ноя 20, 21:23    [22231732]     Ответить | Цитировать Сообщить модератору
 Re: Исходники Postgres, С чего начать.  [new]
OoCc
Member

Откуда: с Кавказа
Сообщений: 2201
Visermoz,

Для начала я бы просмотрел все видеокурсы отсюда https://postgrespro.ru/education/courses
13 ноя 20, 22:31    [22231765]     Ответить | Цитировать Сообщить модератору
 Re: Исходники Postgres, С чего начать.  [new]
igor.n
Member

Откуда:
Сообщений: 12
тоже стояла задача разобраться как это работает. помимо выше сыллок, может быть будет полезно:
https://www.opennet.ru/base/dev/pgsql_c_func.txt.html
http://hlinnaka.iki.fi/presentations/PGConf.eu-Serverside-Programming-in-C.pdf
http://sd.blackball.lv/library/PostgreSQL_Server_Programming_Second_Edition_(2015).pdf
https://joeconway.com/presentations/tut_oscon_2004.pdf
18 ноя 20, 09:08    [22234358]     Ответить | Цитировать Сообщить модератору
 Re: Исходники Postgres, С чего начать.  [new]
Visermoz
Member

Откуда: Омск
Сообщений: 128
Большое спасибо всем за советы и ссылки. Буду разбираться
23 ноя 20, 07:30    [22236909]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить