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

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ต.ค. 2024
  • Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
    Программа, подробности и билеты по ссылке: clck.ru/3DD4yb
    --------
    Saint HighLoad++ 2019
    Тезисы и презентация:
    www.highload.r...
    В докладе расскажу о практиках работы с Postgres в сервисах на Go. Поговорим о преимуществах и недостатках основных инструментов, которые принято использовать при работе с Postgres в Go. Конечно, коснёмся нюансов, которые нужно учитывать, когда ваши сервисы работают внутри Kubernetes облака. Также расскажу об опыте Avito в предоставлении базы данных разработчикам продукта.
    ...
    Нашли ошибку в видео? Пишите нам на support@ontico.ru

ความคิดเห็น • 30

  • @andy0x58
    @andy0x58 5 ปีที่แล้ว +6

    Отличный доклад, все по делу. Спасибо!

  • @СергейТ-т8э
    @СергейТ-т8э 5 ปีที่แล้ว +5

    Мне как раз это сейчас нужно.!

  • @YourAwesomePlace
    @YourAwesomePlace 11 หลายเดือนก่อน

    Как называется либа которая делает emulate prepared statements?

  • @ПавелШведко-ч8г
    @ПавелШведко-ч8г 4 ปีที่แล้ว +1

    А почему pgbouncer не может после каждого PREPARE который он выполняет в одной из сессий, автоматически выполнить тот же PREPARE в остальных сессиях, это же просто! Как только получил на любой PREPARE ответ без ошибки, сразу добавить в очередь всех других сессий этот же запрос чтобы в них создались такие же стейтменты. Это уже можно делать асинхронно, но главное добавлять в очередь перед тем как отправить клиенту ответ, чтобы остальные PREPARE гарантированно отработали во всех сессиях до попадания в них EXECUTE с тем же именем. Можно еще сделать мапинг client_name -> bouncer_name чтобы при отрыве клиента удалять все его PREPARE во всех сессиях, через этот мапинг так же подменять все имена для EXECUTE.

  • @sergeimaslovskiy
    @sergeimaslovskiy 3 ปีที่แล้ว

    Спасибо за видео, очень полезно!

  • @viacheslavspitsyn2995
    @viacheslavspitsyn2995 2 ปีที่แล้ว +2

    1:54 - объясните, почему отсутствие ORM - это сила языка?

    • @yodapunishes
      @yodapunishes 2 ปีที่แล้ว

      Тоже хотел бы понять) все гоферы об этом говорят, но никто почему

    • @hgfyos
      @hgfyos 2 ปีที่แล้ว

      @@yodapunishes потому что "зумеров" не приходится обучать SQL, им приходится его изучать

  • @OstretsovArtem
    @OstretsovArtem 4 ปีที่แล้ว

    спасибо за доклад

  • @DenisDereka
    @DenisDereka 5 ปีที่แล้ว +3

    отличный доклад

  • @ErrorsMissing
    @ErrorsMissing 5 ปีที่แล้ว +7

    pg не держит более 100 коннектов?
    Пых не поддерживает пул соединений?
    Одного Bouncer-а может не хватать?

    • @firehydrant5406
      @firehydrant5406 5 ปีที่แล้ว +1

      100 коннектов - гипербола, про баунсеры всё достаточно ясно сказано (одного баунсера может не хвататать dba.stackexchange.com/a/155739)

    • @МаксМаксимов-ш7э
      @МаксМаксимов-ш7э 3 ปีที่แล้ว

      тоже не понял, у меня 300 коннектов работает без баунсера, почему несколько баунсеров надо ставить я не понял.

    • @winfle
      @winfle 3 ปีที่แล้ว

      Сам раз работчик PG не рекомендует больше 100 коннектов

    • @МаксМаксимов-ш7э
      @МаксМаксимов-ш7э 3 ปีที่แล้ว

      @@winfle но объяснения нет

    • @СергейИванов-п2у4е
      @СергейИванов-п2у4е 3 ปีที่แล้ว

      @@МаксМаксимов-ш7э Если приходит приличная пачка запросов, то унылый пг будет поднимать отдельный процесс под каждое новое соединение, запросы будут отваливаться по таймауту

  • @averv
    @averv 3 ปีที่แล้ว

    Отличный спич

  • @oratn
    @oratn 2 ปีที่แล้ว

    Был свидетелем. Открывал лк, видел чужой акк. дальше новый акк при обновлении.

  • @Darellat
    @Darellat 5 ปีที่แล้ว +9

    ничего себе, в 21м веке яп умеет работать с бд и для этого нужен доклад. Вот это хайлоад не по годам.

  • @digkillneko
    @digkillneko 2 ปีที่แล้ว +2

    Какойто стремный и костыльный язык, аля нам надоел пхп в авито, хотим геморроя, давайте перейдем на го

    • @delir0
      @delir0 ปีที่แล้ว +5

      Люблю объективные аргументы

  • @in9952
    @in9952 5 ปีที่แล้ว +9

    Очень плохо, начиная со snake_case в коде Го, паник, которые "не надо использовать", про работу драйвера БД, "в Го есть пул соединений" и прочие перлы вообще молчу. Блять, и половина доклада про какую-то левую библиотеку, смысл которой это чтобы не дай бог не написать пару лишних строчек кода, аля чтобы все было как в уютненьком PHP.

    • @cucurbito
      @cucurbito 5 ปีที่แล้ว +11

      Вообще так-то смысл любой библиотеки в том чтобы не писать какое-то количество лишних строчек кода

    • @tonupif
      @tonupif 2 ปีที่แล้ว

      Да, всё говно, кэш на чтение в редиске или мемкэше нет не слышал? - все запросы в базу уникальны?

    • @buginsystem8925
      @buginsystem8925 8 หลายเดือนก่อน

      Лол.

  • @4UBA4OK2
    @4UBA4OK2 5 ปีที่แล้ว

    чет чуш