Практики, особенности и нюансы при работе с Postgres в Go / Артемий Рябинков (Авито)

  Рет қаралды 26,556

HighLoad Channel

HighLoad Channel

5 жыл бұрын

Приглашаем на конференцию Saint HighLoad++ 2024, которая пройдет 24 и 25 июня в Санкт-Петербурге!
Программа, подробности и билеты по ссылке: vk.cc/cuyIqx
--------
--------
Saint HighLoad++ 2019
Тезисы и презентация:
www.highload.ru/spb/2019/abst...
В докладе расскажу о практиках работы с Postgres в сервисах на Go. Поговорим о преимуществах и недостатках основных инструментов, которые принято использовать при работе с Postgres в Go. Конечно, коснёмся нюансов, которые нужно учитывать, когда ваши сервисы работают внутри Kubernetes облака. Также расскажу об опыте Avito в предоставлении базы данных разработчикам продукта.
...
--------
Нашли ошибку в видео? Пишите нам на support@ontico.ru

Пікірлер: 30
@andy0x58
@andy0x58 4 жыл бұрын
Отличный доклад, все по делу. Спасибо!
@user-le7cf1qk8l
@user-le7cf1qk8l 5 жыл бұрын
Мне как раз это сейчас нужно.!
@sergeimaslovskiy
@sergeimaslovskiy 2 жыл бұрын
Спасибо за видео, очень полезно!
@OstretsovArtem
@OstretsovArtem 4 жыл бұрын
спасибо за доклад
@YourAwesomePlace
@YourAwesomePlace 6 ай бұрын
Как называется либа которая делает emulate prepared statements?
@user-hd3qb8bm2e
@user-hd3qb8bm2e 4 жыл бұрын
А почему pgbouncer не может после каждого PREPARE который он выполняет в одной из сессий, автоматически выполнить тот же PREPARE в остальных сессиях, это же просто! Как только получил на любой PREPARE ответ без ошибки, сразу добавить в очередь всех других сессий этот же запрос чтобы в них создались такие же стейтменты. Это уже можно делать асинхронно, но главное добавлять в очередь перед тем как отправить клиенту ответ, чтобы остальные PREPARE гарантированно отработали во всех сессиях до попадания в них EXECUTE с тем же именем. Можно еще сделать мапинг client_name -> bouncer_name чтобы при отрыве клиента удалять все его PREPARE во всех сессиях, через этот мапинг так же подменять все имена для EXECUTE.
@DenisDereka
@DenisDereka 5 жыл бұрын
отличный доклад
@viacheslavspitsyn2995
@viacheslavspitsyn2995 2 жыл бұрын
1:54 - объясните, почему отсутствие ORM - это сила языка?
@yodapunishes
@yodapunishes Жыл бұрын
Тоже хотел бы понять) все гоферы об этом говорят, но никто почему
@hgfyos
@hgfyos Жыл бұрын
@@yodapunishes потому что "зумеров" не приходится обучать SQL, им приходится его изучать
@averv
@averv 3 жыл бұрын
Отличный спич
@ErrorsMissing
@ErrorsMissing 5 жыл бұрын
pg не держит более 100 коннектов? Пых не поддерживает пул соединений? Одного Bouncer-а может не хватать?
@firehydrant5406
@firehydrant5406 5 жыл бұрын
100 коннектов - гипербола, про баунсеры всё достаточно ясно сказано (одного баунсера может не хвататать dba.stackexchange.com/a/155739)
@user-di7kt7bn3b
@user-di7kt7bn3b 3 жыл бұрын
тоже не понял, у меня 300 коннектов работает без баунсера, почему несколько баунсеров надо ставить я не понял.
@winfle
@winfle 3 жыл бұрын
Сам раз работчик PG не рекомендует больше 100 коннектов
@user-di7kt7bn3b
@user-di7kt7bn3b 3 жыл бұрын
@@winfle но объяснения нет
@user-iz3xl2tx9l
@user-iz3xl2tx9l 3 жыл бұрын
@@user-di7kt7bn3b Если приходит приличная пачка запросов, то унылый пг будет поднимать отдельный процесс под каждое новое соединение, запросы будут отваливаться по таймауту
@user-ni1pi4jc8m
@user-ni1pi4jc8m Жыл бұрын
Был свидетелем. Открывал лк, видел чужой акк. дальше новый акк при обновлении.
@Darellat
@Darellat 4 жыл бұрын
ничего себе, в 21м веке яп умеет работать с бд и для этого нужен доклад. Вот это хайлоад не по годам.
@4UBA4OK2
@4UBA4OK2 4 жыл бұрын
чет чуш
@digkillneko
@digkillneko Жыл бұрын
Какойто стремный и костыльный язык, аля нам надоел пхп в авито, хотим геморроя, давайте перейдем на го
@delir0
@delir0 Жыл бұрын
Люблю объективные аргументы
@in9952
@in9952 5 жыл бұрын
Очень плохо, начиная со snake_case в коде Го, паник, которые "не надо использовать", про работу драйвера БД, "в Го есть пул соединений" и прочие перлы вообще молчу. Блять, и половина доклада про какую-то левую библиотеку, смысл которой это чтобы не дай бог не написать пару лишних строчек кода, аля чтобы все было как в уютненьком PHP.
@cucurbito
@cucurbito 4 жыл бұрын
Вообще так-то смысл любой библиотеки в том чтобы не писать какое-то количество лишних строчек кода
@tonupif
@tonupif Жыл бұрын
Да, всё говно, кэш на чтение в редиске или мемкэше нет не слышал? - все запросы в базу уникальны?
@buginsystem8925
@buginsystem8925 4 ай бұрын
Лол.
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 169 МЛН
100😭🎉 #thankyou
00:28
はじめしゃちょー(hajime)
Рет қаралды 57 МЛН
Валентин Хомутенко / «что не так с ORM в Go»
32:29
Управление памятью и сборщиком мусора в Go
47:26
Московский клуб программистов
Рет қаралды 10 М.