From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Willy-Bas Loos" <willybas(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Limit on number of users in postgresql? |
Date: | 2007-01-29 15:04:50 |
Message-ID: | 10364.1170083090@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
"Willy-Bas Loos" <willybas(at)gmail(dot)com> writes:
> Tom Lane wrote:
>> I think that the
>> main bottleneck would be the "flat file" that's used to tell the
>> postmaster about the set of valid users --- every time a user is
>> added/dropped/changed, that file gets rewritten and then re-parsed
>> by the postmaster. So you could eat a lot of overhead if you change
>> users every few seconds or something like that.
> What you describe Tom (flat file), sounds a bit strange to me. Aren't users
> stored in a table? (pg_catalog.pg_authid)
Yeah, but the postmaster can't read pg_authid, nor any other table,
because it's not logically connected to the database. So any change
to pg_authid gets copied to a "flat" ASCII-text file for the postmaster.
There are a number of reasons for this arrangement, but they really
boil down to keeping the postmaster at arm's length from the backends.
If a backend goes nuts and scribbles all over shared memory before
crashing, it may well manage to take down some other backends with it,
but we don't want any risk that it'll take down the postmaster and
thereby prevent automatic restart. Hence the postmaster is designed
never to depend on valid contents in shared memory, and that means
it can't do much of anything in the way of database access.
This is also the reason that pg_hba.conf and friends are not tables
as you might otherwise expect.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Fuhr | 2007-01-29 15:08:54 | Re: Postgresql 8.1: plperl code works with LATIN1, fail |
Previous Message | Nik | 2007-01-29 14:38:25 | Re: Record not returned until index is rebuilt |