The thing that comes to mind when reading this patch is that some time ago we made fun of other database software, "they are so complicated to configure, they have some magical settings that few people understand how to set". Postgres was so much better because it was simple to set up, no magic crap. But now it becomes apparent that that only was so because Postgres sucked, ie., we hadn't yet gotten to the point where we *needed* to introduce settings like that. Now we finally are?
I have to admit being a little disappointed about that outcome. I wonder if this is just because we refuse to acknowledge the notion of a connection pooler. If we did, and the pooler told us "here, this session is being given back to us by the application, we'll keep it around until the next app comes along", could we clean the oldest inactive cache entries at that point? Currently they use DISCARD for that. Though this does nothing to fix hypothetical cache bloat for pg_dump in bug #14936. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services