fidalgo

fidalgo

High Performance PostgreSQL for Rails: Using Advisory Locks (page 195)

@andatki

In this page, you mention:
The Transaction Pooling Mode for PgBouncer cannot be used with Advisory Locks
Can you expand a title further on this? PgBouncer is like a first resource when people run out of database connections, and now that it supports prepared statements people are much more inclined to continue to use it.
With the increase awareness of advisory locks and things like GoodJob background job processing, are we increasing the risk of problems?

In the table for features for PGBouncer we can find some information: PgBouncer features

Do you think that having a more detailed explanation on the risks and what we should do to ensure to remain compatible (using session pooling, basically)

Even after reading the Choosing A PgBouncer Pooling Mode in page 190 and when using GoodJob, being the transaction mode, the most common, the user can easily fall in the trap of choosing the most common method to later release it’s not supported.

First Post!

andatki

andatki

Author of High Performance PostgreSQL for Rails

Thanks @fidalgo. That’s a good idea to point out that possible surprise. As you noted, we can now use Prepared Statements with PgBouncer in the transaction pooling mode. But other “client features” aren’t supported, also as you noted, leaving only session mode which has less benefits. I agree it would nice to provide some warning and caution about that. I’ll follow up if I can get something included in time. Thank you!

Where Next?

Popular Pragmatic Bookshelf topics Top

belgoros
Following the steps described in Chapter 6 of the book, I’m stuck with running the migration as described on page 84: bundle exec sequel...
New
GilWright
Working through the steps (checking that the Info,plist matches exactly), run the demo game and what appears is grey but does not fill th...
New
Alexandr
Hi everyone! There is an error on the page 71 in the book “Programming machine learning from coding to depp learning” P. Perrotta. You c...
New
jgchristopher
“The ProductLive.Index template calls a helper function, live_component/3, that in turn calls on the modal component. ” Excerpt From: Br...
New
brunogirin
When I run the coverage example to report on missing lines, I get: pytest --cov=cards --report=term-missing ch7 ERROR: usage: pytest [op...
New
brunogirin
When trying to run tox in parallel as explained on page 151, I got the following error: tox: error: argument -p/–parallel: expected one...
New
brunogirin
When running tox for the first time, I got the following error: ERROR: InterpreterNotFound: python3.10 I realised that I was running ...
New
New
taguniversalmachine
Hi, I am getting an error I cannot figure out on my test. I have what I think is the exact code from the book, other than I changed “us...
New
Keton
When running the program in chapter 8, “Implementing Combat”, the printout Health before attack was never printed so I assumed something ...
New

Other popular topics Top

Exadra37
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
AstonJ
You might be thinking we should just ask who’s not using VSCode :joy: however there are some new additions in the space that might give V...
New
PragmaticBookshelf
Tailwind CSS is an exciting new CSS framework that allows you to design your site by composing simple utility classes to create complex e...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
AstonJ
We’ve talked about his book briefly here but it is quickly becoming obsolete - so he’s decided to create a series of 7 podcasts, the firs...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
DevotionGeo
I have always used antique keyboards like Cherry MX 1800 or Cherry MX 8100 and almost always have modified the switches in some way, like...
New
New
CommunityNews
A Brief Review of the Minisforum V3 AMD Tablet. Update: I have created an awesome-minisforum-v3 GitHub repository to list information fo...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New

Sub Categories: