Почему тебе нужен PgBouncer, как его установить? Оптимизируем веб-приложения с PostgreSQL

  Рет қаралды 45,069

Диджитализируй!

Диджитализируй!

Күн бұрын

Пікірлер: 243
@barsukov_vv
@barsukov_vv 4 жыл бұрын
ну про. плюсы рассказал, добавлю немного: 1. забыл упамянуть, что если юзать транзаакшин мод, то забудьте про препаред-стейтстмент, 2. дебажить запросы почти не реально, тяжело сматчить с pg_stat_activity 3. баунсер не решает проблем плохих запросов, если запрос ставит шаред-лок на таблицу, то хоть 2000 конеекшинов ставь ничего не поможет 4. есть прикольная альтернатива от Яндекса, одисей. в инете есть доклад какую проблему не смог решить баунсер и почему пришлось писать свой 5. с 11 версии постгрес спокойно держит 2000 соединений, но небольшая деградация происходит уже где то на 1000
@jandublianski744
@jandublianski744 4 жыл бұрын
"1. забыл упамянуть, что если юзать транзаакшин мод, то забудьте про препаред-стейтстмент" - спасибо! pool_mode = session работает так как надо
@barsukov_vv
@barsukov_vv 4 жыл бұрын
@@mythbuster6126 интересная логика, random_page_cost так же равен 4, и что это могло значить?
@mihax56
@mihax56 4 жыл бұрын
@@mythbuster6126 дефолтные настройки ПГ выбраны таким образом, чтоб он на чайнике запускался - не надо их брать за эталон.
@sergeysemibratov509
@sergeysemibratov509 10 ай бұрын
Since version 1.21.0 PgBouncer can track prepared statements in transaction pooling mode
@maxymvelushchac3150
@maxymvelushchac3150 4 жыл бұрын
Один из самых содержательных капалов по питону. Спасибо! Очень классно!
@troyhunter3586
@troyhunter3586 4 жыл бұрын
Хм, классная штука, не знал, благодарю тебя!
@andreym2502
@andreym2502 4 жыл бұрын
Хотелось бы ещё тест нагрузочный посмотреть , как это работает :)
@МишаКузнецов-х7ъ
@МишаКузнецов-х7ъ 4 жыл бұрын
Можно как нибудь рассказать про SQLAlchemy?
@PaiNtRuTube
@PaiNtRuTube 4 жыл бұрын
В алхимии из коробки более кастомизируемы параметры соединения, и кроме того есть такое понятие как "пул соединений"
@FillerWorld
@FillerWorld 4 жыл бұрын
Код в видео выглядит очень стильно без фона. Как всегда интересно!
@t0digital
@t0digital 4 жыл бұрын
Спасибо!
@vadimdorokhov8375
@vadimdorokhov8375 4 жыл бұрын
Класс👍. Побольше бы такого раскрытия нюансов и тонких мест web-приложений на python!
@DejaVooDM
@DejaVooDM 4 жыл бұрын
Спасибо за ваш труд, очень полезный контент. Жду информацию про курс
@RastegaevDienis
@RastegaevDienis 4 жыл бұрын
В MySQL Connection Pooling - это native штука. Спасибо что рассказал что со слоном тоже есть хороший тул! Респект!
@robin4183
@robin4183 4 жыл бұрын
Отлично! Подобное видео про WSGI и gunicorn будет?
@alfarlatypov
@alfarlatypov 4 жыл бұрын
Годно, очень годно! Спасибо большое! Я помню у нас его ставили для того, чтобы он закрывал коннекты которые простаивали в ожидании! И я о нем только слышал, а теперь все понятно объяснили 👍 лайк однозначно!
@t0digital
@t0digital 4 жыл бұрын
Спасибо! 💪
@sw1881
@sw1881 4 жыл бұрын
Спасибо за контент!
@Oleksii_Leshchenko
@Oleksii_Leshchenko 4 жыл бұрын
Пошел применять) Спасибо
@ДмитрийСуворкин-й1н
@ДмитрийСуворкин-й1н 4 жыл бұрын
Блин, как я без этого раньше работал?) Большое спасибо
@MrDimka12101
@MrDimka12101 4 жыл бұрын
Очень полезная информация. В ближайшее время настрою это на сервере!
@driewtonmai
@driewtonmai 4 жыл бұрын
Спасибо большое, нужно больше видео о подобных утилитах!
@t0digital
@t0digital 4 жыл бұрын
Будут:)
@Mwmwjwjjdjdjdjwmwmkjaj
@Mwmwjwjjdjdjdjwmwmkjaj Жыл бұрын
Video uchun rahmat. Foydali ma'lumot bo'ldi! Nasib bo'lsa, Pgbouncerni proyektimizda qo'llab ko'ramiz.
@wollenszeit131
@wollenszeit131 2 жыл бұрын
Очень полезное видео! Спасибо за твой контент🏆
@АлександрЗаря-ъ7э
@АлександрЗаря-ъ7э 4 жыл бұрын
О! Спасибо снова что-то новенькое узнал!
@aibarbekkozhayev2047
@aibarbekkozhayev2047 4 жыл бұрын
Спасибо большое, надеюсь на канале скоро будет 1млн)
@t0digital
@t0digital 4 жыл бұрын
Идём к этому:)
@ilyazvorygin7284
@ilyazvorygin7284 2 жыл бұрын
кайф, пасиб, помогло видео!
@evlazarev
@evlazarev 4 жыл бұрын
Полезно. Доступно. Спасибо.
@vladimir_v_it
@vladimir_v_it 11 ай бұрын
Классно, понятно рассказал!
@MS-fu3zf
@MS-fu3zf 4 жыл бұрын
Большое спасибо. Буду теперь юзать новый инструмент.
@t0digital
@t0digital 4 жыл бұрын
Рад, что полезно!
@Svetoz
@Svetoz 4 жыл бұрын
Огонь! Спасибо!
@illiadenysenko7776
@illiadenysenko7776 4 жыл бұрын
Кстати вместо `sudo vim` можно использовать `sudoedit`, чтобы не менять пользователя и использовать свой конфиг) Только EDITOR=vim поставить.
@Терентийабамов
@Терентийабамов Жыл бұрын
Спасибо! Благодаря Вашим видео, деплой сервера обошелся в разы быстрее. Да и вообще случился🙃
@andreychernykh256
@andreychernykh256 4 жыл бұрын
спасибо! как всегда годнота!!!!
@alexandrvoloshyn8225
@alexandrvoloshyn8225 4 жыл бұрын
Спасибо за видео!
@alexsukhykh5666
@alexsukhykh5666 4 жыл бұрын
Спасибо! Не знал. Возьму в работу
@ИванИванов-н9т9ъ
@ИванИванов-н9т9ъ 4 жыл бұрын
Спасибо, отлично объясняете!
@t0digital
@t0digital 4 жыл бұрын
Спасибо!
@moscow8881
@moscow8881 4 жыл бұрын
Спасибо, интересно
@Всемпривет-ч7в
@Всемпривет-ч7в 4 жыл бұрын
Спасибо! только лайк! оч полезная инфа
@belikk1986
@belikk1986 Жыл бұрын
Спасибо за видео! Обратите внимание на то, что по умолчанию ротации логов нет.
@andreyduke_kz2638
@andreyduke_kz2638 4 жыл бұрын
Интересный обзор 👍
@MrOnlineCoder
@MrOnlineCoder 4 жыл бұрын
А есть ли объяснение почему джанго так "неэффективно" ведет себя из коробки, что приходится юзать дополнительные штуки по типу баунсера? Ведь он же мог сам делать пул соединений
@slogic10
@slogic10 Жыл бұрын
Аналогичная мысль сходу.
@hsbsllc8282
@hsbsllc8282 4 жыл бұрын
Очень полезно 👍
@t0digital
@t0digital 4 жыл бұрын
Йеее!
@АнтонинаСмет
@АнтонинаСмет 4 жыл бұрын
Спасибо за видео
@КириллКалита-ч3ж
@КириллКалита-ч3ж 4 жыл бұрын
круто) спасибо
@Kukharev1
@Kukharev1 4 жыл бұрын
шикарный монтаж!
@t0digital
@t0digital 4 жыл бұрын
спасибо!
@sploitfaze
@sploitfaze 4 жыл бұрын
Спасибо за информацию! 7:41 - уже давно используют apt вместо apt-get.
@t0digital
@t0digital 4 жыл бұрын
Мышечная память, иногда apt пишу, иногда apt-get по-старинке
@rumartru
@rumartru 4 жыл бұрын
Спасибо! Эх жалко подробнее не раскрыли проблемы CONN_MAX_AGE в django. Пошел искать....
@veraburak8049
@veraburak8049 Жыл бұрын
лайк, подписываюсь
@ФедорКосолапов-р6д
@ФедорКосолапов-р6д 4 жыл бұрын
Спасибо за видео, Алексей! Скажи, а для асинхронных фреймворков pgbouncer актуален? Там и соединение к БД, как правило, тоже асинхронное
@m0rtym0rty7
@m0rtym0rty7 4 жыл бұрын
Возник такой же вопрос.
@dimak4528
@dimak4528 4 жыл бұрын
Тоже возник этот вопрос
@t0digital
@t0digital 4 жыл бұрын
Вопрос не в синхронности или асинхронности запросов, вопрос, умеет ли библиотека доступа к БД делать свой пул. Asyncpg умеет. Если app сервер один и БД сервер один, то в таком случае такого встроенного пулера будет достаточно, если серверов больше, отдельный пулер понадобится
@ФедорКосолапов-р6д
@ФедорКосолапов-р6д 4 жыл бұрын
@@t0digital Спасибо!
@danquimby8317
@danquimby8317 4 жыл бұрын
думаю для асинхронных не страшно он просто будет ждать освобождения
@АлександрКозлов-д1й4о
@АлександрКозлов-д1й4о 4 жыл бұрын
Используем Patroni для кластеризации PostgreSQL, там как раз pg_bouncer + consul или etcd можно
@Smarandii
@Smarandii 4 жыл бұрын
Очень хочется больше видео!
@ИванГанин-и9д
@ИванГанин-и9д 4 жыл бұрын
Спасибо. Спас.
@СергейХохлов-ю4д
@СергейХохлов-ю4д 4 жыл бұрын
Спасибо! Хороший урок. А можно ли разбить базу pgsql на несколько серверов? Как это сделать? оч интересно)
@yuliyabuynovsky1124
@yuliyabuynovsky1124 4 жыл бұрын
СПАСИБО !!! Ты спас нас. Благодаря этому видео мы снизили нагрузку CPU и сайт "задышал". Postgres нагружал сервер до вечных около 100% (сайт стопорился в ЧНН), теперь около 50% в ЧНН !!!! Спасибо за годный контент.
@t0digital
@t0digital 4 жыл бұрын
Йее! Это хороший результат 💪
@anti1am3r
@anti1am3r 4 жыл бұрын
@@t0digital для проекта у которого нет ни архитектора, ни DBA, ни разработчиков, видимо.
@AlexandrStepanov-y4g
@AlexandrStepanov-y4g 4 жыл бұрын
Что за сайт ? Расскажи подробнее, сколько запросов генерил сайт на каждого юзера ? Может не правильно постгрес настроен ?
@okopyl
@okopyl 4 жыл бұрын
Пулеры нужны только на Postgre или на любую бд?
@rbogdan8980
@rbogdan8980 4 жыл бұрын
В тех бд где не реализован MARS
@okopyl
@okopyl 4 жыл бұрын
@@rbogdan8980 буду очень благодарен если подскажете как можно нагуглить такие базы. Не получилось найти :(
@rbogdan8980
@rbogdan8980 4 жыл бұрын
@@okopyl MS SQL Server например
@nikolaimaslov9432
@nikolaimaslov9432 4 жыл бұрын
Привет! Когда выйдет обучающая программа?
@t0digital
@t0digital 4 жыл бұрын
Привет! В августе уже не успеваю смонтировать материалы, выйдет в начале сентября
@vadskytech2751
@vadskytech2751 4 жыл бұрын
Зачёт!
@abriev1116
@abriev1116 3 ай бұрын
Большое спасибо за полезную информацию. И еще, я бы попросил вас нажимать на клавиатуру помягче 😅😅
@t0digital
@t0digital 3 ай бұрын
будем стараться:)!
@nikolaysokolov9027
@nikolaysokolov9027 4 жыл бұрын
Не знал, что для Пайтона стандарт - Постгрес. Спасибо!
@nikolaysokolov9027
@nikolaysokolov9027 4 жыл бұрын
@@МишаМихаил-ф7х я про MySQL или Марию DB думал. =)
@НикитаКиселев-р4р
@НикитаКиселев-р4р 4 жыл бұрын
Ну Пост сейчас стал шире применяться везде так что вполне себе можно принять такой вариант.
@alexanovoable
@alexanovoable 4 жыл бұрын
Отличное видео, как всегда. Книжка кстати, тоже отличная - это Бретт Слаткин, видимо третья редакция Effective Python (на русском бумажная только второй редакции доступна, но я все равно купил) - читается очень легко и имеет малый объем каждого совета. Не так пугает, как Бизлевская Книга рецептов к Пайтону.
@t0digital
@t0digital 4 жыл бұрын
Да, книжка отличная!
@ssn1975
@ssn1975 4 жыл бұрын
Теперь осталось рассказать как с pgpool работать :)
@АртёмЕфимов-о6н
@АртёмЕфимов-о6н 4 жыл бұрын
Привет, Алексей! Вопрос об образовательной программе: в этом первом модуле запланирована ли какая-то обратная связь, д/з и т. п. Или это будут просто видео уроки? Спасибо за контент, нравится)
@t0digital
@t0digital 4 жыл бұрын
Привет! Первый модуль будет по фундаменту - как работает инет, как строятся веб приложения, из каких кирпичиков состоят, некоторая практика будет, но это не модуль по программированию, поэтому проверки дз на этом модуле не будет. Коммуникация будет обязательно, будут стрим 1 или 2 раза в неделю, где можно будет позадавать вопросы и получить ответы
@АртёмЕфимов-о6н
@АртёмЕфимов-о6н 4 жыл бұрын
Спасибо.
@Dmitry_Ovchinnikov
@Dmitry_Ovchinnikov 4 жыл бұрын
не понятно, можно ли оставить доступ по ролям, и будет-ли вообще работать правила в pg_hba?
@arnowt
@arnowt 3 жыл бұрын
1. Слышал что есть какие-то с асинхронным скриптами в частности aiopg. Можете рассказать про этот момент. 2. Почему бы не поменять порт ПГ, а ПБ повесить на освободившися порт 5432, чтобы не менять никаких настроек в приложении?
@artemusenko3546
@artemusenko3546 Жыл бұрын
Спасибо за видос) Такой вопрос. Получается PgBouncer можно доустановить прямо в Docker контейнер с Postgres и Postgres будет работать через PgBouncer?
@t0digital
@t0digital Жыл бұрын
На проде базу в докер не стоит ставить
@ahmadum
@ahmadum 5 ай бұрын
​@@t0digital, почему?
@sulfur32066
@sulfur32066 4 жыл бұрын
Можешь в одном из своих видео рассказать как правильно настроить storage и пользоваться им, спасибо тебе)
@doomymax577
@doomymax577 4 жыл бұрын
Что такое сторадж в вашем понимании?
@sulfur32066
@sulfur32066 4 жыл бұрын
@@doomymax577 ну скажем у меня что-то крутиться на сервере heroku, который файлы не хранит, и нужен сторонний storage
@doomymax577
@doomymax577 4 жыл бұрын
@@sulfur32066 на хероку есть доп услуги какие-то по подключению базюки или кэша, посмотри я думаю там такое есть
@sulfur32066
@sulfur32066 4 жыл бұрын
@@doomymax577 PostgresSQL можно подключить, но на счёт остального пока не в курсе
@ВасяФомин-д4о
@ВасяФомин-д4о 4 жыл бұрын
Подскажите пожалуйста когда информация про курс будет?! С работы ушел , хочу к вам попасть!!! Залайкайте ПОЖАЛУЙСТА!
@t0digital
@t0digital 4 жыл бұрын
В начале сент выходит первый модуль
@ВасяФомин-д4о
@ВасяФомин-д4о 4 жыл бұрын
@@t0digital Хотелось бы узнать подробнее, сколько модулей будет, сколько они ориентировочно будут длиться, не будет ли задержек с выходом следующих модулей, средняя цена модуля,это нужно для того чтобы спланировать полугодие по времени ( не суваться в другие курсы, если заминок не будет) и конечно спланировать финансы...Уверен вы скоро всё это осветите))
@RusFarFaz
@RusFarFaz 4 жыл бұрын
подскажите, на чем лучше создавать сайт онлайн школы с видеоуроками, на чем строить? Django, Django-cms или может что-то еще?
@t0digital
@t0digital 4 жыл бұрын
Да пофик. На чем нравится, что знаете :)
@nikolayfofilov8834
@nikolayfofilov8834 2 жыл бұрын
По поводу паролей, можно просто взять хэш из таблицы pg_shadow
@yerkebulansuleimenov9351
@yerkebulansuleimenov9351 2 жыл бұрын
покажи как в АКС кластере это сделать через докер
@zhuch9277
@zhuch9277 4 жыл бұрын
Блин я надеялся будет про репликацию
@Кантригоспел
@Кантригоспел 4 жыл бұрын
Спасибо! Полезно, пошел применять к проекту)) То есть стоит применять примерно при от 100 одновременных запросах к бд? На счет настройки порта 6432, где его изменять в настройках джанго settings.py: DATABASE['PORT': '6432'] (по умолчанию там пусто)? И это все изменения, дальше в проекте ничего не изменять? Как дела с курсом?
@sultanbekbeksultanov4214
@sultanbekbeksultanov4214 4 жыл бұрын
даа, всё верно в settings.py надо поставить PORT:5432 , да его, но по умолчанию у PSQL стоит порт 5432. Если вы поставите новое значение, то оно поменяется
@Кантригоспел
@Кантригоспел 4 жыл бұрын
@@sultanbekbeksultanov4214 спасибо, друг) я так понял опечатка, в первом случае 6432)
@alexanderraf5553
@alexanderraf5553 4 жыл бұрын
А вот с др. Реляционками, например mssql или mysql как обстоит дело?
@AlexanderDev
@AlexanderDev 2 жыл бұрын
Спасибо за видео! Если есть возможность, сними, пожалуйста, видео про создание и настройку кластера PostgreSQL с демонстрацией того как туда добавлять новые сервера и удалять вышедшие из строя (всякое же бывает) и чтоб при этом все данные оставались целыми. Если данных надо сохранять очень много, то хотелось бы иметь возможность простым добавлением ещё одного сервера (или пары - для репликации), добавлять физическое место для новых данных. Такое возможно?
@СергейБакин-ф7р
@СергейБакин-ф7р 4 жыл бұрын
ну ок, я смотрел внимательно и... остался один вопрос - вот мы все это взлетели. Реальных коннектов допустим 100. А в джанге то сколько ставить MAX_CONN_AGE ? есть какие то ориентиры?
@kalik54
@kalik54 4 жыл бұрын
Спасибо за видео! Хотел бы узнать, можешь посоветовать что-либо, для улучшения своих навыков в продумывании архитектуры проектов? То есть, как строить именно грамотную гибкую систему (бэкенд). Если это важно, то юзаю джанго. Есть ли что-то такое, например, просмотр какого то сорта видео, иные ресурсы или это только с практикой набивается?
@t0digital
@t0digital 4 жыл бұрын
Посоветовать сложно, но я подумаю. Практика это безусловно. Чтение чужого хорошего кода, кстати, очень поможет в этом. Так же как и работа с чужим плохим кодом впрочем. Хорошая архитектура она ведь для того, чтобы всем было удобно с ней работать, поддерживать, дорабатывать и тд, и чтение чужого кода это как раз то, что нужно для развития этого навыка написания красивого архитектурно выстроенного кода
@kalik54
@kalik54 4 жыл бұрын
@@t0digital Большое спасибо, лучше попробовать разобрать такие проекты как фласк или что то явно меньше?
@t0digital
@t0digital 4 жыл бұрын
@@kalik54 можно больше, можно меньше, там везде есть чему поучиться
@kalik54
@kalik54 4 жыл бұрын
@@t0digital Хорошо, снова большое спасибо)
@alexandrvoloshyn8225
@alexandrvoloshyn8225 4 жыл бұрын
Можно ли сравнить PostgreSQL + pgBouncer с Percona server. Использовали ли Вы Percona server в проектах?
@t0digital
@t0digital 4 жыл бұрын
перкону не использовал, ничего не могу про неё сказать
@ХаринАлександр-ш1с
@ХаринАлександр-ш1с 10 ай бұрын
Во всех битлиотеках под питон для постгреса есть пул, что в asyncpg , что в алхимии, psycopg
@t0digital
@t0digital 10 ай бұрын
Этого недостаточно. Много воркеров
@Recoshett
@Recoshett 4 жыл бұрын
Приветствую! Спасибо за видео! На древнем php можно применить) а расскажи про SQL alchemy, там пуллер есть из коробки) А ещё интересно про зоопарк от апача узнать. Hbase, hdfs, zookeeper и т. д. Только не из докера, а как standalone решения ☺️
@arkadybagdasarov7306
@arkadybagdasarov7306 2 жыл бұрын
в sqlalchemy есть свой коннекшен пул, да, вот только если ты горизонтально увеличишь кол-во приложений - пулы в сумме выжрут весь постгрес лимит
@wollkey
@wollkey 4 жыл бұрын
Привет, можешь сказать, пожалуйста, как опытный питонист, можно ли на питоне, на джанге создавать большие Энтерпрайз проекты, более-менее высокогогруженные, например как маркет озона? До этого писал на php symfony, там можно такие проекты создавать, а джанга я слышал очень плохо масштабируется, было бы интересно узнать что скажет опытный питонист?
@t0digital
@t0digital 4 жыл бұрын
Привет, питон это же не только джанга. Сама джанга не лидирует в производительности среди питон фреймворков, да, но не всегда производительность работы софта является приоритетом, чаще приоритет в скорости разработки софта. Узкие горлышки можно потом переписать на асинхронных фреймворках или вообще не на питоне.
@kalik54
@kalik54 4 жыл бұрын
Очень хотелось бы видеть видео про тесты в пайтоне, стоит ли ждать?)
@t0digital
@t0digital 4 жыл бұрын
Да
@samirguseynov1684
@samirguseynov1684 4 жыл бұрын
а где ты такую кружку купил?
@t0digital
@t0digital 4 жыл бұрын
Hoff
@samirguseynov1684
@samirguseynov1684 4 жыл бұрын
все нашел
@samirguseynov1684
@samirguseynov1684 4 жыл бұрын
@@t0digital уже заказал, сагол)
@rinaatt
@rinaatt 4 жыл бұрын
Спасибо за подробное и одновременно простое объяснение. Возник вопрос, есть ли инструмен для PostgreSQL, который позволит работать с двумя инстансами БД? Одна будет мастер, другая реплика. В мастер БД будет всегда запись, а чтение либо с мастера либо с реплики. При этом джанга будет работать с БД через эту "прокси" как с одной БД. Я решал такую задачу, через написание своего роутера, но это гемморойное и довольное глючное решение.
@dann1kid
@dann1kid 2 жыл бұрын
Ну просто пишешь два коннектора, затем например через peewee ты передаешь коннектор в конструктор в разных ситуациях (при чтении или при записи) и вот тебе пожалуйста. Хоть 10 инстансов, просто коннекторов больше используй
@РинатГазизуллин-й6р
@РинатГазизуллин-й6р 4 жыл бұрын
Круто я и не знал что PostgreSQL такое есть.
@t0digital
@t0digital 4 жыл бұрын
Ни дня без новых знаний:)
@ВладКалошин-о4б
@ВладКалошин-о4б 4 жыл бұрын
Как насчет снять видео на тему программных брокеров сообщений (RabbitMQ, Kafka)? :D
@ruzin-kokoc
@ruzin-kokoc 4 жыл бұрын
А как сочетается PgBouncer с Асинхронным приложениями (которые разбирались в другом видео)? Если каждый асинхронный запрос требует коннекта к БД, то либо PgBouncer откроет на каждый такой запрос по соединению с БД, либо все асинхронные потоки выстроится в очередь - не?
@t0digital
@t0digital 4 жыл бұрын
Базе и pgbouncer'у пофик, какой код к нему стучится, асинхронный иди синхронный, они об этом не знают. Просто есть фреймворки и библиотеки доступа к БД, умеющие делать свой пул в каком-то виде, и есть не умеющие. Но в любом случае, даже если пул есть в библиотеке, баунсер не будет лишним, он умеет много чего, там можно ставить за ним несколько серверов баз, например, и класть нагрузку на несколько серверов, например, и тд
@ruzin-kokoc
@ruzin-kokoc 4 жыл бұрын
@@t0digital С этим согласен. Возможно этот комментарий больше относится к прошлому видео про Асинхронный код, который работал быстрее синхронного под нагрузкой. Количество коннектов к БД (через pgBouncer или напрямую) может стать проблемой. В середине видео ты поменял 'session' на 'transaction' и было бы неплохо пояснить в чем разница (поставил на паузу и посмотрел все опции, какие есть). Transaction в большинстве случаев может решать, но не всегда. В нашем приложении нам пришлось бы оставить 'session', т.к. мы используем переменные в SQL, и если два разных потока будут затирать значения друг друга - целостность развалится.
@olegpivovarov9002
@olegpivovarov9002 4 жыл бұрын
Привет! Можешь сделать ролик о создании собственных пакетов и импорте их через pip из локального хранилища? Интересует самый простой малозатратный способ. Вчера поставил Gogs сервер, который не хотел запускаться на винде. Пришлось городить виртуальную машину с убунтой. Как-то всё слишком громоздко получается, хотя казалось бы надо просто подключить модуль.
@sonicsp3149
@sonicsp3149 4 жыл бұрын
Странно, почему такая важная деталь не предусмотрена в djange из коробки?
@aquinary.
@aquinary. 4 жыл бұрын
Потому что pgbouncer - это утилита, которую ставят в систему, а не как pip пакет. То есть это не pypi дистрибутив. С таким же успехом можно спросить, почему в django из коробки не работает redis.
@serhii.chumachenko
@serhii.chumachenko 4 жыл бұрын
спасибо
@dmytrokorbanytskyi1586
@dmytrokorbanytskyi1586 4 жыл бұрын
спасибо, не знаете как он с амазоновскими базами работает? На Аврору его можно прицепить или там свои у них оптимизации?
@t0digital
@t0digital 4 жыл бұрын
Они пилят своё aws.amazon.com/about-aws/whats-new/2020/04/amazon-rds-proxy-with-postgresql-compatibility-preview/
@maximrudenko01
@maximrudenko01 5 ай бұрын
что то md5 не работает в 2024 году по такой схеме похоже, в остальном круто объяснил, лайк!
@t0digital
@t0digital 5 ай бұрын
сейчас другие алгоритмы рекомендуются, да
@ТимурКутуев
@ТимурКутуев 4 жыл бұрын
Будет ли какой-нибудь ролик связанный с бд Oracle? Например чем он хуже/лучше постгрес, какие-нибудь удобные фишки в нем, которых нет в постгрес. Было бы интересно послушать!
@t0digital
@t0digital 4 жыл бұрын
Давно не работал с Oracle. Вспоминаю с теплом его, и как субд и как компанию)
@ТимурКутуев
@ТимурКутуев 4 жыл бұрын
@@t0digital Понял, спасибо большое за ответ!
@АлексейПлющов-и4ы
@АлексейПлющов-и4ы 3 жыл бұрын
Почему нельзя сделать пул соединений на уровне приложения? Джанго не умеет работать с пулами?
@Barbarin89
@Barbarin89 4 жыл бұрын
это получается что вроде очереди для бд?
@t0digital
@t0digital 4 жыл бұрын
Да, типа того
@rbogdan8980
@rbogdan8980 4 жыл бұрын
Подскажите, а нужен PgBouncer для .NET Core приложений, в которых используются Entity Framework (Npgsql) ? Не могу найти нигде адекватную информацию по такому моему. Или это актуально только для Python и PHP ? Спасибо!
@t0digital
@t0digital 4 жыл бұрын
не работал с .NET, надо смотреть, умеет ли он пулить соединения
@rbogdan8980
@rbogdan8980 4 жыл бұрын
@@t0digital та что-то не могу найти вменяемой информации на эту тему. Утром создал вопрос на stackoverflow, пока тишина.
@doszhanm6936
@doszhanm6936 Жыл бұрын
Как настроить DATABASES в приложении джанго не показали, пишет что неверный пароль!
@t0digital
@t0digital Жыл бұрын
вангую, что он прав, видимо неверный:)
@doszhanm6936
@doszhanm6936 Жыл бұрын
@@t0digital пароль постгреса версный на 1000 %. В джанго есть конфигурация DATABASES называется. Он принимает хост, порт, логин, пароль, имя базы данных постгреса, но теперь-то туда надо вносить данные от pbgouncer. А пароль pbgouncer не работает с этими конфигами, потому что там md5.
@t0digital
@t0digital Жыл бұрын
подключись к pgbouncer из консоли, убедись, что соединение идёт, и те же credentials проставь и в джанге. Проблема не в джанге
@doszhanm6936
@doszhanm6936 Жыл бұрын
@@t0digital проблема оказалось в md5. Если в конфиге pgbouncer ставить plain и в файле прописать пароль в открытом виде, то все прекрасно работает. Видимо в 14 версии postgres по умолчанию md5 авторизация отключена. Из-за этого pgbouncer не может авторизоваться на стороне базы данных. Но так ли это на самом деле, не стал уточнять...
@doszhanm6936
@doszhanm6936 Жыл бұрын
я свой первый вопрос не правильно поставил, оказывается ошибка была не неверный пароль, а неверный тип пароля.
@slogic10
@slogic10 Жыл бұрын
Почему бы не использовать in-proc пул соединений? Зачем этот внешний промежуточный (и местами глюченный) софт? Почему взяли и так просто сменили режим (session -> transactional) без объяснений? Почему на серваке всего 100 подключений по умолчанию? Насколько его можно поднять?
@zakharka3938
@zakharka3938 7 ай бұрын
Если у вас только один процесс работает с базой, то можно обойтись и in-proc пулом. А если у вас несколько процессов (на одном или нескольких хостах), то лучше иметь внешний пул разделяемый между всеми процессами.
@bubbletubbe
@bubbletubbe 4 жыл бұрын
эм, а какова природа того, что постоянно открывается новый коннект к db ? .. смотрится очень странно, это особенность работы python ?
@t0digital
@t0digital 4 жыл бұрын
особенность джанги, вернее дефолтной настройки джанги. Асинхронные либы умеют в свой пул (asyncpg напр)
@dmitryshu5218
@dmitryshu5218 4 жыл бұрын
Не понимаю почему эти bouncer- концепции де факто не зашиты в бд на уровне интерфейса. Ведь в перспективе роста нагрузки на бд, резиновый пул, всегда лучше статически заданных соединений.
@anti1am3r
@anti1am3r 4 жыл бұрын
Я не уверен, что им там место. Обычно пулы соединения используются на уровне приложений. По крайней мере в java/kotlin/netcore.
@ffsdmad_2024
@ffsdmad_2024 Жыл бұрын
то-есть, джанго, по дефолту, на каждый запрос открывает сокет с базой и ограничена 100 запросами, а если базе подключить pgbouncer которые откроет с базой 100 сокетов и будет обрабатывать входящую тысячу запросов и просто направить на него django, то теперь django будет принимать не 100 входящих запросов, а тысячу. как так? протестировал с помощью ab -n 10000 -c 200 и разницы ни какой, лучше заморочиться с кешированием на любом уровне
@tsarevnalagushka
@tsarevnalagushka 4 жыл бұрын
Вот это поворот. Как-то даже не ожидал такого подвоха от django. Интересно, почему не сделали pool из коробки
@t0digital
@t0digital 4 жыл бұрын
тоже удивился, когда узнал об этом
@Uni-Coder
@Uni-Coder 4 жыл бұрын
С mysql, похоже, в последние несколько лет везде проблемы. Я начинал разрабатывать на Rust, мне нужна была база данных, я скачал клиента mysql. Полезли такие непонятные проблемы, что аж пришлось на stackoverflow задавать вопрос. В итоге на stackoverflow мне влепили кучу лайков и сказали, что я нашел баг. Через пару дней "баг исправили". Ок, я обновился, а проект всё равно не компилится. Забил на это дело, поставил клиента postgre и всё заработало сразу. Хотя это было года 3 назад, может что-то изменилось. (Оффтоп) А ещё лет 12 назад в узких кругах был широко известен Firebird.
@rail3213
@rail3213 4 жыл бұрын
Md5 же уже устаревший стандарт хэширования. Сейчас не знаю какие актуальные, но последнее я использовал bcrypt. Если я не прав, аргументируйте, пожалуйста
@t0digital
@t0digital 4 жыл бұрын
сейчас в своем коде лучше не использовать md5, да
@МаксимЧурсин-у8ы
@МаксимЧурсин-у8ы 4 жыл бұрын
@Диджитализируй!, сними ролик, пожалуйста, про отладку питоновского проекта на удаленном сервере по ssh с venv из vscode или pycharm
@whatrushka
@whatrushka 2 жыл бұрын
Нужно иметь ввиду, что при установке pgbouncer могут обновиться зависимости postgres и следовательно рестартнется postgres (что критично для консистентности данных при большой нагрузке). По возможности надо выбирать конкретный релиз, который затронет наименьшее число других пакетов. Сейчас при установке pgbouncer на это напоролся
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
Леон киллер и Оля Полякова 😹
00:42
Канал Смеха
Рет қаралды 4,7 МЛН
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
🤯Java Interview For Freshers | Core Java, Advance Java & Angular, Full Stack
40:40
The Kiran Academy - Java By Kiran
Рет қаралды 1,5 М.
Как я читаю электронные книги 📖💙 какой ридер купить
12:28
она была интровертом
Рет қаралды 23 М.
Tmux - что это и зачем? Обзор и урок tmux
9:51
Диджитализируй!
Рет қаралды 134 М.
Best Ways to Use Gemini 2.0 (over ChatGPT & Perplexity)!
16:06
Grace Leung
Рет қаралды 21 М.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН