ну про. плюсы рассказал, добавлю немного: 1. забыл упамянуть, что если юзать транзаакшин мод, то забудьте про препаред-стейтстмент, 2. дебажить запросы почти не реально, тяжело сматчить с pg_stat_activity 3. баунсер не решает проблем плохих запросов, если запрос ставит шаред-лок на таблицу, то хоть 2000 конеекшинов ставь ничего не поможет 4. есть прикольная альтернатива от Яндекса, одисей. в инете есть доклад какую проблему не смог решить баунсер и почему пришлось писать свой 5. с 11 версии постгрес спокойно держит 2000 соединений, но небольшая деградация происходит уже где то на 1000
@jandublianski7444 жыл бұрын
"1. забыл упамянуть, что если юзать транзаакшин мод, то забудьте про препаред-стейтстмент" - спасибо! pool_mode = session работает так как надо
@barsukov_vv4 жыл бұрын
@@mythbuster6126 интересная логика, random_page_cost так же равен 4, и что это могло значить?
@mihax564 жыл бұрын
@@mythbuster6126 дефолтные настройки ПГ выбраны таким образом, чтоб он на чайнике запускался - не надо их брать за эталон.
@sergeysemibratov50910 ай бұрын
Since version 1.21.0 PgBouncer can track prepared statements in transaction pooling mode
@maxymvelushchac31504 жыл бұрын
Один из самых содержательных капалов по питону. Спасибо! Очень классно!
@troyhunter35864 жыл бұрын
Хм, классная штука, не знал, благодарю тебя!
@andreym25024 жыл бұрын
Хотелось бы ещё тест нагрузочный посмотреть , как это работает :)
@МишаКузнецов-х7ъ4 жыл бұрын
Можно как нибудь рассказать про SQLAlchemy?
@PaiNtRuTube4 жыл бұрын
В алхимии из коробки более кастомизируемы параметры соединения, и кроме того есть такое понятие как "пул соединений"
@FillerWorld4 жыл бұрын
Код в видео выглядит очень стильно без фона. Как всегда интересно!
@t0digital4 жыл бұрын
Спасибо!
@vadimdorokhov83754 жыл бұрын
Класс👍. Побольше бы такого раскрытия нюансов и тонких мест web-приложений на python!
@DejaVooDM4 жыл бұрын
Спасибо за ваш труд, очень полезный контент. Жду информацию про курс
@RastegaevDienis4 жыл бұрын
В MySQL Connection Pooling - это native штука. Спасибо что рассказал что со слоном тоже есть хороший тул! Респект!
@robin41834 жыл бұрын
Отлично! Подобное видео про WSGI и gunicorn будет?
@alfarlatypov4 жыл бұрын
Годно, очень годно! Спасибо большое! Я помню у нас его ставили для того, чтобы он закрывал коннекты которые простаивали в ожидании! И я о нем только слышал, а теперь все понятно объяснили 👍 лайк однозначно!
@t0digital4 жыл бұрын
Спасибо! 💪
@sw18814 жыл бұрын
Спасибо за контент!
@Oleksii_Leshchenko4 жыл бұрын
Пошел применять) Спасибо
@ДмитрийСуворкин-й1н4 жыл бұрын
Блин, как я без этого раньше работал?) Большое спасибо
@MrDimka121014 жыл бұрын
Очень полезная информация. В ближайшее время настрою это на сервере!
@driewtonmai4 жыл бұрын
Спасибо большое, нужно больше видео о подобных утилитах!
@t0digital4 жыл бұрын
Будут:)
@Mwmwjwjjdjdjdjwmwmkjaj Жыл бұрын
Video uchun rahmat. Foydali ma'lumot bo'ldi! Nasib bo'lsa, Pgbouncerni proyektimizda qo'llab ko'ramiz.
@wollenszeit1312 жыл бұрын
Очень полезное видео! Спасибо за твой контент🏆
@АлександрЗаря-ъ7э4 жыл бұрын
О! Спасибо снова что-то новенькое узнал!
@aibarbekkozhayev20474 жыл бұрын
Спасибо большое, надеюсь на канале скоро будет 1млн)
@t0digital4 жыл бұрын
Идём к этому:)
@ilyazvorygin72842 жыл бұрын
кайф, пасиб, помогло видео!
@evlazarev4 жыл бұрын
Полезно. Доступно. Спасибо.
@vladimir_v_it11 ай бұрын
Классно, понятно рассказал!
@MS-fu3zf4 жыл бұрын
Большое спасибо. Буду теперь юзать новый инструмент.
@t0digital4 жыл бұрын
Рад, что полезно!
@Svetoz4 жыл бұрын
Огонь! Спасибо!
@illiadenysenko77764 жыл бұрын
Кстати вместо `sudo vim` можно использовать `sudoedit`, чтобы не менять пользователя и использовать свой конфиг) Только EDITOR=vim поставить.
@Терентийабамов Жыл бұрын
Спасибо! Благодаря Вашим видео, деплой сервера обошелся в разы быстрее. Да и вообще случился🙃
@andreychernykh2564 жыл бұрын
спасибо! как всегда годнота!!!!
@alexandrvoloshyn82254 жыл бұрын
Спасибо за видео!
@alexsukhykh56664 жыл бұрын
Спасибо! Не знал. Возьму в работу
@ИванИванов-н9т9ъ4 жыл бұрын
Спасибо, отлично объясняете!
@t0digital4 жыл бұрын
Спасибо!
@moscow88814 жыл бұрын
Спасибо, интересно
@Всемпривет-ч7в4 жыл бұрын
Спасибо! только лайк! оч полезная инфа
@belikk1986 Жыл бұрын
Спасибо за видео! Обратите внимание на то, что по умолчанию ротации логов нет.
@andreyduke_kz26384 жыл бұрын
Интересный обзор 👍
@MrOnlineCoder4 жыл бұрын
А есть ли объяснение почему джанго так "неэффективно" ведет себя из коробки, что приходится юзать дополнительные штуки по типу баунсера? Ведь он же мог сам делать пул соединений
@slogic10 Жыл бұрын
Аналогичная мысль сходу.
@hsbsllc82824 жыл бұрын
Очень полезно 👍
@t0digital4 жыл бұрын
Йеее!
@АнтонинаСмет4 жыл бұрын
Спасибо за видео
@КириллКалита-ч3ж4 жыл бұрын
круто) спасибо
@Kukharev14 жыл бұрын
шикарный монтаж!
@t0digital4 жыл бұрын
спасибо!
@sploitfaze4 жыл бұрын
Спасибо за информацию! 7:41 - уже давно используют apt вместо apt-get.
@t0digital4 жыл бұрын
Мышечная память, иногда apt пишу, иногда apt-get по-старинке
@rumartru4 жыл бұрын
Спасибо! Эх жалко подробнее не раскрыли проблемы CONN_MAX_AGE в django. Пошел искать....
@veraburak8049 Жыл бұрын
лайк, подписываюсь
@ФедорКосолапов-р6д4 жыл бұрын
Спасибо за видео, Алексей! Скажи, а для асинхронных фреймворков pgbouncer актуален? Там и соединение к БД, как правило, тоже асинхронное
@m0rtym0rty74 жыл бұрын
Возник такой же вопрос.
@dimak45284 жыл бұрын
Тоже возник этот вопрос
@t0digital4 жыл бұрын
Вопрос не в синхронности или асинхронности запросов, вопрос, умеет ли библиотека доступа к БД делать свой пул. Asyncpg умеет. Если app сервер один и БД сервер один, то в таком случае такого встроенного пулера будет достаточно, если серверов больше, отдельный пулер понадобится
@ФедорКосолапов-р6д4 жыл бұрын
@@t0digital Спасибо!
@danquimby83174 жыл бұрын
думаю для асинхронных не страшно он просто будет ждать освобождения
@АлександрКозлов-д1й4о4 жыл бұрын
Используем Patroni для кластеризации PostgreSQL, там как раз pg_bouncer + consul или etcd можно
@Smarandii4 жыл бұрын
Очень хочется больше видео!
@ИванГанин-и9д4 жыл бұрын
Спасибо. Спас.
@СергейХохлов-ю4д4 жыл бұрын
Спасибо! Хороший урок. А можно ли разбить базу pgsql на несколько серверов? Как это сделать? оч интересно)
@yuliyabuynovsky11244 жыл бұрын
СПАСИБО !!! Ты спас нас. Благодаря этому видео мы снизили нагрузку CPU и сайт "задышал". Postgres нагружал сервер до вечных около 100% (сайт стопорился в ЧНН), теперь около 50% в ЧНН !!!! Спасибо за годный контент.
@t0digital4 жыл бұрын
Йее! Это хороший результат 💪
@anti1am3r4 жыл бұрын
@@t0digital для проекта у которого нет ни архитектора, ни DBA, ни разработчиков, видимо.
@AlexandrStepanov-y4g4 жыл бұрын
Что за сайт ? Расскажи подробнее, сколько запросов генерил сайт на каждого юзера ? Может не правильно постгрес настроен ?
@okopyl4 жыл бұрын
Пулеры нужны только на Postgre или на любую бд?
@rbogdan89804 жыл бұрын
В тех бд где не реализован MARS
@okopyl4 жыл бұрын
@@rbogdan8980 буду очень благодарен если подскажете как можно нагуглить такие базы. Не получилось найти :(
@rbogdan89804 жыл бұрын
@@okopyl MS SQL Server например
@nikolaimaslov94324 жыл бұрын
Привет! Когда выйдет обучающая программа?
@t0digital4 жыл бұрын
Привет! В августе уже не успеваю смонтировать материалы, выйдет в начале сентября
@vadskytech27514 жыл бұрын
Зачёт!
@abriev11163 ай бұрын
Большое спасибо за полезную информацию. И еще, я бы попросил вас нажимать на клавиатуру помягче 😅😅
@t0digital3 ай бұрын
будем стараться:)!
@nikolaysokolov90274 жыл бұрын
Не знал, что для Пайтона стандарт - Постгрес. Спасибо!
@nikolaysokolov90274 жыл бұрын
@@МишаМихаил-ф7х я про MySQL или Марию DB думал. =)
@НикитаКиселев-р4р4 жыл бұрын
Ну Пост сейчас стал шире применяться везде так что вполне себе можно принять такой вариант.
@alexanovoable4 жыл бұрын
Отличное видео, как всегда. Книжка кстати, тоже отличная - это Бретт Слаткин, видимо третья редакция Effective Python (на русском бумажная только второй редакции доступна, но я все равно купил) - читается очень легко и имеет малый объем каждого совета. Не так пугает, как Бизлевская Книга рецептов к Пайтону.
@t0digital4 жыл бұрын
Да, книжка отличная!
@ssn19754 жыл бұрын
Теперь осталось рассказать как с pgpool работать :)
@АртёмЕфимов-о6н4 жыл бұрын
Привет, Алексей! Вопрос об образовательной программе: в этом первом модуле запланирована ли какая-то обратная связь, д/з и т. п. Или это будут просто видео уроки? Спасибо за контент, нравится)
@t0digital4 жыл бұрын
Привет! Первый модуль будет по фундаменту - как работает инет, как строятся веб приложения, из каких кирпичиков состоят, некоторая практика будет, но это не модуль по программированию, поэтому проверки дз на этом модуле не будет. Коммуникация будет обязательно, будут стрим 1 или 2 раза в неделю, где можно будет позадавать вопросы и получить ответы
@АртёмЕфимов-о6н4 жыл бұрын
Спасибо.
@Dmitry_Ovchinnikov4 жыл бұрын
не понятно, можно ли оставить доступ по ролям, и будет-ли вообще работать правила в pg_hba?
@arnowt3 жыл бұрын
1. Слышал что есть какие-то с асинхронным скриптами в частности aiopg. Можете рассказать про этот момент. 2. Почему бы не поменять порт ПГ, а ПБ повесить на освободившися порт 5432, чтобы не менять никаких настроек в приложении?
@artemusenko3546 Жыл бұрын
Спасибо за видос) Такой вопрос. Получается PgBouncer можно доустановить прямо в Docker контейнер с Postgres и Postgres будет работать через PgBouncer?
@t0digital Жыл бұрын
На проде базу в докер не стоит ставить
@ahmadum5 ай бұрын
@@t0digital, почему?
@sulfur320664 жыл бұрын
Можешь в одном из своих видео рассказать как правильно настроить storage и пользоваться им, спасибо тебе)
@doomymax5774 жыл бұрын
Что такое сторадж в вашем понимании?
@sulfur320664 жыл бұрын
@@doomymax577 ну скажем у меня что-то крутиться на сервере heroku, который файлы не хранит, и нужен сторонний storage
@doomymax5774 жыл бұрын
@@sulfur32066 на хероку есть доп услуги какие-то по подключению базюки или кэша, посмотри я думаю там такое есть
@sulfur320664 жыл бұрын
@@doomymax577 PostgresSQL можно подключить, но на счёт остального пока не в курсе
@ВасяФомин-д4о4 жыл бұрын
Подскажите пожалуйста когда информация про курс будет?! С работы ушел , хочу к вам попасть!!! Залайкайте ПОЖАЛУЙСТА!
@t0digital4 жыл бұрын
В начале сент выходит первый модуль
@ВасяФомин-д4о4 жыл бұрын
@@t0digital Хотелось бы узнать подробнее, сколько модулей будет, сколько они ориентировочно будут длиться, не будет ли задержек с выходом следующих модулей, средняя цена модуля,это нужно для того чтобы спланировать полугодие по времени ( не суваться в другие курсы, если заминок не будет) и конечно спланировать финансы...Уверен вы скоро всё это осветите))
@RusFarFaz4 жыл бұрын
подскажите, на чем лучше создавать сайт онлайн школы с видеоуроками, на чем строить? Django, Django-cms или может что-то еще?
@t0digital4 жыл бұрын
Да пофик. На чем нравится, что знаете :)
@nikolayfofilov88342 жыл бұрын
По поводу паролей, можно просто взять хэш из таблицы pg_shadow
@yerkebulansuleimenov93512 жыл бұрын
покажи как в АКС кластере это сделать через докер
@zhuch92774 жыл бұрын
Блин я надеялся будет про репликацию
@Кантригоспел4 жыл бұрын
Спасибо! Полезно, пошел применять к проекту)) То есть стоит применять примерно при от 100 одновременных запросах к бд? На счет настройки порта 6432, где его изменять в настройках джанго settings.py: DATABASE['PORT': '6432'] (по умолчанию там пусто)? И это все изменения, дальше в проекте ничего не изменять? Как дела с курсом?
@sultanbekbeksultanov42144 жыл бұрын
даа, всё верно в settings.py надо поставить PORT:5432 , да его, но по умолчанию у PSQL стоит порт 5432. Если вы поставите новое значение, то оно поменяется
@Кантригоспел4 жыл бұрын
@@sultanbekbeksultanov4214 спасибо, друг) я так понял опечатка, в первом случае 6432)
@alexanderraf55534 жыл бұрын
А вот с др. Реляционками, например mssql или mysql как обстоит дело?
@AlexanderDev2 жыл бұрын
Спасибо за видео! Если есть возможность, сними, пожалуйста, видео про создание и настройку кластера PostgreSQL с демонстрацией того как туда добавлять новые сервера и удалять вышедшие из строя (всякое же бывает) и чтоб при этом все данные оставались целыми. Если данных надо сохранять очень много, то хотелось бы иметь возможность простым добавлением ещё одного сервера (или пары - для репликации), добавлять физическое место для новых данных. Такое возможно?
@СергейБакин-ф7р4 жыл бұрын
ну ок, я смотрел внимательно и... остался один вопрос - вот мы все это взлетели. Реальных коннектов допустим 100. А в джанге то сколько ставить MAX_CONN_AGE ? есть какие то ориентиры?
@kalik544 жыл бұрын
Спасибо за видео! Хотел бы узнать, можешь посоветовать что-либо, для улучшения своих навыков в продумывании архитектуры проектов? То есть, как строить именно грамотную гибкую систему (бэкенд). Если это важно, то юзаю джанго. Есть ли что-то такое, например, просмотр какого то сорта видео, иные ресурсы или это только с практикой набивается?
@t0digital4 жыл бұрын
Посоветовать сложно, но я подумаю. Практика это безусловно. Чтение чужого хорошего кода, кстати, очень поможет в этом. Так же как и работа с чужим плохим кодом впрочем. Хорошая архитектура она ведь для того, чтобы всем было удобно с ней работать, поддерживать, дорабатывать и тд, и чтение чужого кода это как раз то, что нужно для развития этого навыка написания красивого архитектурно выстроенного кода
@kalik544 жыл бұрын
@@t0digital Большое спасибо, лучше попробовать разобрать такие проекты как фласк или что то явно меньше?
@t0digital4 жыл бұрын
@@kalik54 можно больше, можно меньше, там везде есть чему поучиться
@kalik544 жыл бұрын
@@t0digital Хорошо, снова большое спасибо)
@alexandrvoloshyn82254 жыл бұрын
Можно ли сравнить PostgreSQL + pgBouncer с Percona server. Использовали ли Вы Percona server в проектах?
@t0digital4 жыл бұрын
перкону не использовал, ничего не могу про неё сказать
@ХаринАлександр-ш1с10 ай бұрын
Во всех битлиотеках под питон для постгреса есть пул, что в asyncpg , что в алхимии, psycopg
@t0digital10 ай бұрын
Этого недостаточно. Много воркеров
@Recoshett4 жыл бұрын
Приветствую! Спасибо за видео! На древнем php можно применить) а расскажи про SQL alchemy, там пуллер есть из коробки) А ещё интересно про зоопарк от апача узнать. Hbase, hdfs, zookeeper и т. д. Только не из докера, а как standalone решения ☺️
@arkadybagdasarov73062 жыл бұрын
в sqlalchemy есть свой коннекшен пул, да, вот только если ты горизонтально увеличишь кол-во приложений - пулы в сумме выжрут весь постгрес лимит
@wollkey4 жыл бұрын
Привет, можешь сказать, пожалуйста, как опытный питонист, можно ли на питоне, на джанге создавать большие Энтерпрайз проекты, более-менее высокогогруженные, например как маркет озона? До этого писал на php symfony, там можно такие проекты создавать, а джанга я слышал очень плохо масштабируется, было бы интересно узнать что скажет опытный питонист?
@t0digital4 жыл бұрын
Привет, питон это же не только джанга. Сама джанга не лидирует в производительности среди питон фреймворков, да, но не всегда производительность работы софта является приоритетом, чаще приоритет в скорости разработки софта. Узкие горлышки можно потом переписать на асинхронных фреймворках или вообще не на питоне.
@kalik544 жыл бұрын
Очень хотелось бы видеть видео про тесты в пайтоне, стоит ли ждать?)
@t0digital4 жыл бұрын
Да
@samirguseynov16844 жыл бұрын
а где ты такую кружку купил?
@t0digital4 жыл бұрын
Hoff
@samirguseynov16844 жыл бұрын
все нашел
@samirguseynov16844 жыл бұрын
@@t0digital уже заказал, сагол)
@rinaatt4 жыл бұрын
Спасибо за подробное и одновременно простое объяснение. Возник вопрос, есть ли инструмен для PostgreSQL, который позволит работать с двумя инстансами БД? Одна будет мастер, другая реплика. В мастер БД будет всегда запись, а чтение либо с мастера либо с реплики. При этом джанга будет работать с БД через эту "прокси" как с одной БД. Я решал такую задачу, через написание своего роутера, но это гемморойное и довольное глючное решение.
@dann1kid2 жыл бұрын
Ну просто пишешь два коннектора, затем например через peewee ты передаешь коннектор в конструктор в разных ситуациях (при чтении или при записи) и вот тебе пожалуйста. Хоть 10 инстансов, просто коннекторов больше используй
@РинатГазизуллин-й6р4 жыл бұрын
Круто я и не знал что PostgreSQL такое есть.
@t0digital4 жыл бұрын
Ни дня без новых знаний:)
@ВладКалошин-о4б4 жыл бұрын
Как насчет снять видео на тему программных брокеров сообщений (RabbitMQ, Kafka)? :D
@ruzin-kokoc4 жыл бұрын
А как сочетается PgBouncer с Асинхронным приложениями (которые разбирались в другом видео)? Если каждый асинхронный запрос требует коннекта к БД, то либо PgBouncer откроет на каждый такой запрос по соединению с БД, либо все асинхронные потоки выстроится в очередь - не?
@t0digital4 жыл бұрын
Базе и pgbouncer'у пофик, какой код к нему стучится, асинхронный иди синхронный, они об этом не знают. Просто есть фреймворки и библиотеки доступа к БД, умеющие делать свой пул в каком-то виде, и есть не умеющие. Но в любом случае, даже если пул есть в библиотеке, баунсер не будет лишним, он умеет много чего, там можно ставить за ним несколько серверов баз, например, и класть нагрузку на несколько серверов, например, и тд
@ruzin-kokoc4 жыл бұрын
@@t0digital С этим согласен. Возможно этот комментарий больше относится к прошлому видео про Асинхронный код, который работал быстрее синхронного под нагрузкой. Количество коннектов к БД (через pgBouncer или напрямую) может стать проблемой. В середине видео ты поменял 'session' на 'transaction' и было бы неплохо пояснить в чем разница (поставил на паузу и посмотрел все опции, какие есть). Transaction в большинстве случаев может решать, но не всегда. В нашем приложении нам пришлось бы оставить 'session', т.к. мы используем переменные в SQL, и если два разных потока будут затирать значения друг друга - целостность развалится.
@olegpivovarov90024 жыл бұрын
Привет! Можешь сделать ролик о создании собственных пакетов и импорте их через pip из локального хранилища? Интересует самый простой малозатратный способ. Вчера поставил Gogs сервер, который не хотел запускаться на винде. Пришлось городить виртуальную машину с убунтой. Как-то всё слишком громоздко получается, хотя казалось бы надо просто подключить модуль.
@sonicsp31494 жыл бұрын
Странно, почему такая важная деталь не предусмотрена в djange из коробки?
@aquinary.4 жыл бұрын
Потому что pgbouncer - это утилита, которую ставят в систему, а не как pip пакет. То есть это не pypi дистрибутив. С таким же успехом можно спросить, почему в django из коробки не работает redis.
@serhii.chumachenko4 жыл бұрын
спасибо
@dmytrokorbanytskyi15864 жыл бұрын
спасибо, не знаете как он с амазоновскими базами работает? На Аврору его можно прицепить или там свои у них оптимизации?
@t0digital4 жыл бұрын
Они пилят своё aws.amazon.com/about-aws/whats-new/2020/04/amazon-rds-proxy-with-postgresql-compatibility-preview/
@maximrudenko015 ай бұрын
что то md5 не работает в 2024 году по такой схеме похоже, в остальном круто объяснил, лайк!
@t0digital5 ай бұрын
сейчас другие алгоритмы рекомендуются, да
@ТимурКутуев4 жыл бұрын
Будет ли какой-нибудь ролик связанный с бд Oracle? Например чем он хуже/лучше постгрес, какие-нибудь удобные фишки в нем, которых нет в постгрес. Было бы интересно послушать!
@t0digital4 жыл бұрын
Давно не работал с Oracle. Вспоминаю с теплом его, и как субд и как компанию)
@ТимурКутуев4 жыл бұрын
@@t0digital Понял, спасибо большое за ответ!
@АлексейПлющов-и4ы3 жыл бұрын
Почему нельзя сделать пул соединений на уровне приложения? Джанго не умеет работать с пулами?
@Barbarin894 жыл бұрын
это получается что вроде очереди для бд?
@t0digital4 жыл бұрын
Да, типа того
@rbogdan89804 жыл бұрын
Подскажите, а нужен PgBouncer для .NET Core приложений, в которых используются Entity Framework (Npgsql) ? Не могу найти нигде адекватную информацию по такому моему. Или это актуально только для Python и PHP ? Спасибо!
@t0digital4 жыл бұрын
не работал с .NET, надо смотреть, умеет ли он пулить соединения
@rbogdan89804 жыл бұрын
@@t0digital та что-то не могу найти вменяемой информации на эту тему. Утром создал вопрос на stackoverflow, пока тишина.
@doszhanm6936 Жыл бұрын
Как настроить DATABASES в приложении джанго не показали, пишет что неверный пароль!
@t0digital Жыл бұрын
вангую, что он прав, видимо неверный:)
@doszhanm6936 Жыл бұрын
@@t0digital пароль постгреса версный на 1000 %. В джанго есть конфигурация DATABASES называется. Он принимает хост, порт, логин, пароль, имя базы данных постгреса, но теперь-то туда надо вносить данные от pbgouncer. А пароль pbgouncer не работает с этими конфигами, потому что там md5.
@t0digital Жыл бұрын
подключись к pgbouncer из консоли, убедись, что соединение идёт, и те же credentials проставь и в джанге. Проблема не в джанге
@doszhanm6936 Жыл бұрын
@@t0digital проблема оказалось в md5. Если в конфиге pgbouncer ставить plain и в файле прописать пароль в открытом виде, то все прекрасно работает. Видимо в 14 версии postgres по умолчанию md5 авторизация отключена. Из-за этого pgbouncer не может авторизоваться на стороне базы данных. Но так ли это на самом деле, не стал уточнять...
@doszhanm6936 Жыл бұрын
я свой первый вопрос не правильно поставил, оказывается ошибка была не неверный пароль, а неверный тип пароля.
@slogic10 Жыл бұрын
Почему бы не использовать in-proc пул соединений? Зачем этот внешний промежуточный (и местами глюченный) софт? Почему взяли и так просто сменили режим (session -> transactional) без объяснений? Почему на серваке всего 100 подключений по умолчанию? Насколько его можно поднять?
@zakharka39387 ай бұрын
Если у вас только один процесс работает с базой, то можно обойтись и in-proc пулом. А если у вас несколько процессов (на одном или нескольких хостах), то лучше иметь внешний пул разделяемый между всеми процессами.
@bubbletubbe4 жыл бұрын
эм, а какова природа того, что постоянно открывается новый коннект к db ? .. смотрится очень странно, это особенность работы python ?
@t0digital4 жыл бұрын
особенность джанги, вернее дефолтной настройки джанги. Асинхронные либы умеют в свой пул (asyncpg напр)
@dmitryshu52184 жыл бұрын
Не понимаю почему эти bouncer- концепции де факто не зашиты в бд на уровне интерфейса. Ведь в перспективе роста нагрузки на бд, резиновый пул, всегда лучше статически заданных соединений.
@anti1am3r4 жыл бұрын
Я не уверен, что им там место. Обычно пулы соединения используются на уровне приложений. По крайней мере в java/kotlin/netcore.
@ffsdmad_2024 Жыл бұрын
то-есть, джанго, по дефолту, на каждый запрос открывает сокет с базой и ограничена 100 запросами, а если базе подключить pgbouncer которые откроет с базой 100 сокетов и будет обрабатывать входящую тысячу запросов и просто направить на него django, то теперь django будет принимать не 100 входящих запросов, а тысячу. как так? протестировал с помощью ab -n 10000 -c 200 и разницы ни какой, лучше заморочиться с кешированием на любом уровне
@tsarevnalagushka4 жыл бұрын
Вот это поворот. Как-то даже не ожидал такого подвоха от django. Интересно, почему не сделали pool из коробки
@t0digital4 жыл бұрын
тоже удивился, когда узнал об этом
@Uni-Coder4 жыл бұрын
С mysql, похоже, в последние несколько лет везде проблемы. Я начинал разрабатывать на Rust, мне нужна была база данных, я скачал клиента mysql. Полезли такие непонятные проблемы, что аж пришлось на stackoverflow задавать вопрос. В итоге на stackoverflow мне влепили кучу лайков и сказали, что я нашел баг. Через пару дней "баг исправили". Ок, я обновился, а проект всё равно не компилится. Забил на это дело, поставил клиента postgre и всё заработало сразу. Хотя это было года 3 назад, может что-то изменилось. (Оффтоп) А ещё лет 12 назад в узких кругах был широко известен Firebird.
@rail32134 жыл бұрын
Md5 же уже устаревший стандарт хэширования. Сейчас не знаю какие актуальные, но последнее я использовал bcrypt. Если я не прав, аргументируйте, пожалуйста
@t0digital4 жыл бұрын
сейчас в своем коде лучше не использовать md5, да
@МаксимЧурсин-у8ы4 жыл бұрын
@Диджитализируй!, сними ролик, пожалуйста, про отладку питоновского проекта на удаленном сервере по ssh с venv из vscode или pycharm
@whatrushka2 жыл бұрын
Нужно иметь ввиду, что при установке pgbouncer могут обновиться зависимости postgres и следовательно рестартнется postgres (что критично для консистентности данных при большой нагрузке). По возможности надо выбирать конкретный релиз, который затронет наименьшее число других пакетов. Сейчас при установке pgbouncer на это напоролся