Re: multi-tenant vs. multi-cluster - Mailing list pgsql-general

From Ben Chobot
Subject Re: multi-tenant vs. multi-cluster
Date
Msg-id 7D473FED-EFF9-4E93-8FC9-0A0CD2C79A31@silentmedia.com
Whole thread Raw
In response to Re: multi-tenant vs. multi-cluster  ("Nicholson, Brad (Toronto, ON, CA)" <bnicholson@hp.com>)
Responses Re: multi-tenant vs. multi-cluster  ("Nicholson, Brad (Toronto, ON, CA)" <bnicholson@hp.com>)
Re: multi-tenant vs. multi-cluster  (Merlin Moncure <mmoncure@gmail.com>)
Re: multi-tenant vs. multi-cluster  (Scott Marlowe <scott.marlowe@gmail.com>)
List pgsql-general
On Mar 18, 2011, at 12:34 PM, Nicholson, Brad (Toronto, ON, CA) wrote:

>>> b) its own postgresql processes (many of them) running in memory
>>
>> I believe this is entirely a function of client connections.
>
> With a single instance, you can use connection pooling to reduce the overall number of backend connections which will
reduceyour memory footprint.  

Er, right, for some reason I was thinking I could use connection pooling against multiple clusters, but now that I
thinkabout it that doesn't make much sense, does it? 

>>
>>> c) its own shared_buffers in memory.
>>
>> Given that each application will be independent, I don't see a
>> different between clusters and schemas here either.
>
> The difference is that in a single cluster, a single instance is going to make decisions about what data to cache or
not. This is an overly simplified example - but illustrates the point.  Say you have 4GB of RAM available to dedicate
toa shared buffers on a server, and two databases (DB A and DB B) to run.  You either set up a single instance with a
4GBpool, or two instances with 2GB pools each.  Let's say that DB A gets really busy, and DB B is not.  In the shared
instanceapproach, the instance can evict buffers cached for DB B in order to load buffers needed for DB A.  In the
splitinstance, you can't. 

Ah, that's an illustrative example. Thanks.

OK, so are there any good ways to keep a bad/clueless user from gumming up a whole cluster? Something like
statement_timeout,but for transactions, seems like it would be idle. 

pgsql-general by date:

Previous
From: akp geek
Date:
Subject: pgagent installation -- ccmake - getting selected wxWidgets configuration (version: 2.6, debug: no, static
Next
From: Merlin Moncure
Date:
Subject: Re: How do I do this in plpgsql ?