| From: | Neil Conway <neilc(at)samurai(dot)com> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Petr Jelínek <pjmodos(at)parba(dot)cz>, pgsql-patches(at)postgresql(dot)org |
| Subject: | Re: limiting connections per user/database |
| Date: | 2005-06-27 05:16:46 |
| Message-ID: | 42BF8BBE.6040102@samurai.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-patches |
Tom Lane wrote:
> I looked at this but did not actually see the code path that requires
> forcing creation of the per-DB entry right at this spot. The HASH_FIND
> calls for this hashtable seem to all happen on the backend side not the
> collector side. Can you explain why we need this?
Yeah, I missed this when making the original change (this code is rather
opaque :-\). The problem is that if we don't initialize the dbentry for
the database we connect to, it won't get written out to the statsfile in
pgstat_write_statsfile(). So the database won't be counted as having any
backends connected to it in pgstat_read_statsfile() (see line 2558 of
pgstat.c in HEAD).
BTW, the comment at line 2210 of pgstat.c is misleading: the n_backends
in the entries of the dbentry hash table are explicitly ignored when
reading in the stats file -- the value is instead derived from the
number of beentries that are seen.
-Neil
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2005-06-27 05:42:00 | Re: limiting connections per user/database |
| Previous Message | Tom Lane | 2005-06-27 05:00:56 | Re: limiting connections per user/database |