Size: a a a

Golang Developers — русскоговорящее сообщество

2021 April 15

A

Alexander in Golang Developers — русскоговорящее сообщество
Prepared statements - это режим взаимодействия клиента и базы, когда клиент сначала отправляет текст запроса, база его предкомпилирует и отдаёт, грубо говоря, хендлер уже откомпилированного запроса, который клиент может уже дергать, подставляя свои параметры.

Transaction mode - это режим работы баунсера, когда он создаёт сессии с базой ad-hoc на каждую транзакцию клиента, т.е. не прокидывая клиентскую сессию до базы (как было бы в connection mode).

Проблема совместимости prepared statements и transaction mode в том, что запросы предкомпилируются в контексте сессии с базой, а сессии с базой в transaction mode нет. Потому использовпние prepared statements клиентом в таком режиме работы баунсера нужно отключать.
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Если, к слову, у баунсера ещё режим работы statement mode, когда сессия с базой создаётся даже не на транзакцию, а на запрос. Это позволяет ещё больше экономить ресурсы субд (например, за счёт раскидывания select-ов по slave-ам, и приземляя на мастер только insert/update), но у тебя даже не будет транзакций, что существенно ограничивает применение statement mode
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Это как раз неверная логика. Потому что разработка без учёта баунсера запросто приводит к тому, что для работы с баунсером в transaction mode приходится переписывать кучу кода.
источник

ЮD

Юрец Dudec in Golang Developers — русскоговорящее сообщество
Так я вчера уснул сорян)) вот про какой случай я хотел обсудить) https://play.golang.com/p/gjBJlbBNnay
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Нет, для 500 запросов у нас будет не 509 соединений, для этого и нужен пул соединений в драйвере
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Я про уровень баунсера: если ты пришел к нем с 500 транзакциями, то выхода у него особо нет. Впрочем, у пулера в приложении тоже.
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Почему ты поле адрес инициализировал а PrinterSec нет, но пытаегься с ним работать?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
Баунсер точно так же сократит количество соединений
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Нет, не сократит. Ему всё еще нужно по соединению с базой на транзакцию открыть в режиме transaction mode.
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
да, только это будет не по соединению, он будет переиспользовать соединения свободные
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
соединение на соединение он будет делать в режиме сессии, но это тупой режим так как смысл в бансере тогда отпадает
источник

SS

Shuhrat Shokirov in Golang Developers — русскоговорящее сообщество
Привет коллеги. Были ли у кого работы с pgxpool с установлением в конфигах timezone. Есть одна проблемка может кто-то сталкивался с этим. Я устанавливаю там нужный тайм зону но запросы все равно работают в utc.
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Так они же одновременные. Какие свободные соединения?
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
ждать будут
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
В баунсере? Не будут.
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Либо открывается новое соединение на транзакцию, либо отказ об лимит.
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
ну и нахрен он тогда нужен?
источник

A

Alexander in Golang Developers — русскоговорящее сообщество
Чтобы приложение не держало idle-соединения с базой.
источник

ЮD

Юрец Dudec in Golang Developers — русскоговорящее сообщество
Вот так что ли https://play.golang.com/p/EtoVZZPGvur
источник

А

Анатолий in Golang Developers — русскоговорящее сообщество
default_pool_size - есть такая настройка у баунсера, что она значит?
источник