RSS Telegram YouTube Apple Яндекс Spotify Google Amazon Почта

11. gonew, multi-threaded PostgreSQL

05.08.2023

Скачать

К списку выпусков

🏋🏾‍♀️ Наконец-то появится стандартный лейаут Go-проекта? PostgreSQL станет single process, multi-threaded? Что это решит и станет ли СУБД быстрее?

Проекты под зонтиком gorilla нашли мейнтейнера. Это компания RedHat.

gonew

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

Расс Кокс опубликовал экспериментальный пакет gonew для быстрого развертывания нового приложения на базе шаблона.

Если заглянуть в исходники, то все что делает команда go new, а это всего 233 строки кода, "go mod download" и правит имя пакета, пути в импортах, а также go.mod файл (module-строку).

Вы можете установить gonew-команду (go install golang.org/x/tools/cmd/gonew@latest) и создавать свои проекта на базе других.

В комментариях к посту Расса Кокса можно найти немало аналогичных проектов и даже попытки коммерциализировать генерацию стартового проекта, что меня немало удвиливо. Речь про autostrada.dev: выбираете БД, HTTP router, как конфигурируется проекта (через переменные окружения или через флаги командной строки), формат лог-сообщений и имя проекта. Авто-сертификаты TLS от letsencrypt за дополнительные премиальные USD10. И еще за дополнительные USD20 пользовательские учетки (email/password), login, logout и password reset workflow.

Само по себе то, что эта новость вышла на этой неделе на первое место говорит скорее о том, что новостей нет.

Multi-threaded PostgreSQL

Команда PostgreSQL снова обсуждает переход от архитектуры multi-process (MP) к single-process (SP), multi-threaded. Вот недавнее обсуждение: https://lwn.net/Articles/934940/.

В FAQ приведены доводы почему была выбрана именно multi-process архитектура БД: https://wiki.postgresql.org/wiki/Developer_FAQ#Why_don.27t_you_use_raw_devices.2C_async-I.2FO.2C_.3Cinsert_your_favorite_wizz-bang_feature_here.3E.3F

На период тразита PostgreSQL можно будет запускать в двух режимах: SP и MP. При этом переход к SP не произойдет за один релиз мажорной версии. Предлагается начать с backend-процесса: вместо backend-процесса для каждого нового клиента будет один процесс с несколькими backend тредами.

Первый же коментарий от Тома Лейна не выгядит оборяющим и обнадеживающим. Лейн видит, что это изменение может серьерзно подорвать обратную совместимость. Плюс, высока вероятность появления ряда проблем безопасности.

Помимо этого было предложено решать более насущные проблемы, например, эффективнее утилизировать мощные машины (448-core / 24TB RAM).

Часть разработчиков выразило сомнения, что именно переход к SP сильно повысит проивзодительность СУБД. Для задач определенного типа переход к SP вобще никак не повлияет на производительность.

Вроде как большинство разработчиков не против глянуть как оно будет. Тем более есть форк Константина Книжника - рабочая черновая версия SP PostgreSQL. Но самое главное, никто пока не взял на себя ответсвенность за реализацию и продвижение SP-архитектуры. Скорее всего этот очередной тред ни во что не выльется и мы вернемся к новому витку обсуждения SP PostgreSQL через несколько лет.

К списку выпусков