Received: from maia.hub.org (maia-5.hub.org [200.46.204.29]) by mail.postgresql.org (Postfix) with ESMTP id 2A61E63597C for ; Thu, 22 Jul 2010 16:56:21 -0300 (ADT) Received: from mail.postgresql.org ([200.46.204.86]) by maia.hub.org (mx1.hub.org [200.46.204.29]) (amavisd-maia, port 10024) with ESMTP id 09238-10 for ; Thu, 22 Jul 2010 19:56:09 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from serenity.inversion.ee (serenity.inversion.ee [194.204.33.112]) by mail.postgresql.org (Postfix) with ESMTP id 4954D635682 for ; Thu, 22 Jul 2010 16:56:09 -0300 (ADT) Received: by serenity.inversion.ee (Postfix, from userid 108) id 3C2771BB8468; Thu, 22 Jul 2010 21:37:51 +0300 (EEST) Received: from [IPv6:::1] (localhost [127.0.0.1]) by serenity.inversion.ee (Postfix) with ESMTP id B1DE3E343A0; Thu, 22 Jul 2010 21:37:49 +0300 (EEST) Subject: Re: Pooling in Core WAS: Need help in performance tuning. From: Hannu Krosing To: jd@commandprompt.com Cc: Robert Haas , Craig Ringer , Matthew Wakeling , pgsql-performance@postgresql.org In-Reply-To: <1279826118.22360.137.camel@jd-desktop.unknown.charter.com> References: <4C369346.6010501@postnewspapers.com.au> <8760.1278650566@sss.pgh.pa.us> <1278680186.1914.36.camel@bnicholson-desktop> <4C36F57102000025000332F6@gw.wicourts.gov> <4C36FEAD02000025000332FC@gw.wicourts.gov> <4C37A9C1.1060405@2ndquadrant.com> <4C37791C0200002500033379@gw.wicourts.gov> <4C37CBFB.1000800@agliodbs.com> <4C37EA1D.6000008@postnewspapers.com.au> <4C38BF03.6060503@agliodbs.com> <19244.1278787866@sss.pgh.pa.us> <4C3AF564.5030204@postnewspapers.com.au> <1279826118.22360.137.camel@jd-desktop.unknown.charter.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 22 Jul 2010 20:56:06 +0100 Message-ID: <1279828566.14271.16.camel@hvost> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=-1.9 tagged_above=-10 required=5 tests=BAYES_00=-1.9 X-Spam-Level: X-Archive-Number: 201007/329 X-Sequence-Number: 39718 On Thu, 2010-07-22 at 12:15 -0700, Joshua D. Drake wrote: > On Thu, 2010-07-22 at 14:36 -0400, Robert Haas wrote: > > On Mon, Jul 12, 2010 at 6:58 AM, Craig Ringer > > wrote: > > > So rather than asking "should core have a connection pool" perhaps > > > what's needed is to ask "what can an in-core pool do that an external > > > pool cannot do?" > > > > Avoid sending every connection through an extra hop. > > Let's extend this shall we: > > Avoid adding yet another network hop postgreSQL is multi-process, so you either have a separate "pooler process" or need to put pooler functionality in postmaster, bothw ways you still have a two-hop scenario for connect. you may be able to pass the socket to child process and also keep it, but doing this for both client and db sides seems really convoluted. Or is there a prortable way to pass sockets back and forth between parent and child processes ? If so, then pgbouncer could use it as well. > Remove of a point of failure rather move the point of failure from external pooler to internal pooler ;) > Reduction of administrative overhead Possibly. But once you start actually using it, you still need to configure and monitor it and do other administrator-y tasks. > Integration into our core authentication mechanisms True, although for example having SSL on client side connection will be so slow that it hides any performance gains from pooling, at least for short-lived connections. > Greater flexibility in connection control Yes, poolers can be much more flexible than default postgresql. See for example pgbouncers PAUSE , RECONFIGURE and RESUME commands > And, having connection pooling in core does not eliminate the use of an > external pool where it makes since. Probably the easiest way to achieve "pooling in core" would be adding an option to start pgbouncer under postmaster control. You probably can't get much leaner than pgbouncer. > -- > PostgreSQL.org Major Contributor > Command Prompt, Inc: http://www.commandprompt.com/ - 509.416.6579 > Consulting, Training, Support, Custom Development, Engineering > http://twitter.com/cmdpromptinc | http://identi.ca/commandprompt > > > -- Hannu Krosing http://www.2ndQuadrant.com PostgreSQL Scalability and Availability Services, Consulting and Training