Re: How to determine number of established connections

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: How to determine number of established connections
Дата
Msg-id 20060221050009.GA83674@winnie.fuhr.org
обсуждение исходный текст
Ответ на Re: How to determine number of established connections  ("Andrus" <eetasoft@online.ee>)
Список pgsql-general
On Mon, Feb 20, 2006 at 09:33:57PM +0200, Andrus wrote:
> I want to licence my application per-connection basic.

Ugh.  A lot of people here aren't going to be interested in helping
with that.

> I can assume that Postgres 8.1 database or even a whole cluster is accessed
> only by my application or sometimes by pgAdmin for administration.
> pgAdmin creates 3 rows in pg_stat_activity  table. My application uses only
> a single connection so it creates single row in pg_stat_activity table.
>
> So I have a parameter stored in a database called "maximum number of
> simultaneous connections".
> This determines how many users can simultaneously work with my application

Will the end users have control over the database (DBA privileges
or superuser/admin privileges on the server)?  If so then any
license-enforcing mechanisms that depend on the database could be
easily rendered useless.

Some things you might want to look at are role and database connection
limits (see the documentation for CREATE/ALTER ROLE/DATABASE) and
the max_connections setting in postgresql.conf.  However, as I
mentioned above, if the users have control over the database then
those settings won't enforce anything for very long.

> Is the query
>
> select count(distinct client_addr)
> from pg_stat_activity
>
> best way do obtain this parameter from Postgres 8.1 ?

Not in general.  Local connections (those made over Unix sockets)
have a null client_addr, and a single IP address could be the source
of multiple network connections from multiple users (think about
multiuser systems, address translation, etc.).  You'll have to
consider those possibilities when deciding what meaning the above
query has.

Something else to consider is the stats collector's lag time.
Several connections made at the same time might all see zero relevant
records in pg_stat_activity, so they'd get an inaccurate count.

--
Michael Fuhr

В списке pgsql-general по дате отправления:

Предыдущее
От: Michael Glaesemann
Дата:
Сообщение: Re: How to specify infinity for intervals ?
Следующее
От: "R, Rajesh (STSD)"
Дата:
Сообщение: [PATCH] ipv6 support for getaddrinfo.c