Re: Limiting the impact of schema additions/poor queries made by clients on production machines

From: Steve Atkins <steve(at)blighty(dot)com>
To: pgsql-general List <pgsql-general(at)postgresql(dot)org>
Subject: Re: Limiting the impact of schema additions/poor queries made by clients on production machines
Date: 2009-10-05 22:52:36
Message-ID: 532D3EEC-E4DC-4D2D-AA3C-74C96DF2EA30@blighty.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On Oct 5, 2009, at 8:04 AM, Joshua Berry wrote:

> Our shop uses postgres for a dozen installations. The applications
> have some realtime performance requirements, and are just good enough
> to function properly. The problem is that the clients (owners of the
> production servers) are using the same server/database for
> customizations that are causing problems with the performance of our
> applications.
>
> Example of clients' customizations:
> * Large tables with text datatypes that get cast in the queries
> * No primary keys, indexes, FK constraints
> * Use of external scripts that use count(*) from table where id = x,
> in a loop from the script, to determine how to construct more queries
> later in the same script.

This sounds very familiar.

Is this just for reporting, or does it interact more closely with
the application?

If it's just reporting, then maybe a slony slave server, just for
reporting,
would help.

If it interacts more closely with the application then you're not
going to be able protect them from themselves programatically.

>
> The clients consider themselves experts and don't take
> suggestions/criticism well. If we just go ahead and try to port/change
> the scripts ourselves, the old code can come back, clobbering the
> changes that we made!

If personal feedback isn't going to work (and it sounds like it
isn't) then perhaps hacking up pgfouine a little to create a
dashboard showing where the database resource is going.
That way you have a neutral place to point at when they
complain the app is running slowly, and that "neutral" report
can communicate "you, the customer, are the problem because
your queries suck" in a more objective way.

>
> My question is this: how can we limit the resources to
> queries/applications other that what we create and deploy? Are there
> any pragmatic options in scenarios like this? We prided ourselves in
> having an OSS solution, but it seems that it's become a liability.

If the queries are operating on the same data as the production
app I don't see any good way to segment the IO and CPU resources
that's going to be idiot proof, especially of your customers are
going to demand full database access.

>
> We use PG 8.3 running on a range on Linux Distos.

Cheers,
Steve

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Preston de Guise 2009-10-05 23:02:12 Re: Programming interfaces when using MD5 authentication
Previous Message Scott Marlowe 2009-10-05 22:39:11 Re: Limiting the impact of schema additions/poor queries made by clients on production machines