Re: [HACKERS] Open 6.5 items

From: Vadim Mikheev <vadim(at)krs(dot)ru>
To: t-ishii(at)sra(dot)co(dot)jp
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, PostgreSQL-development <pgsql-hackers(at)postgreSQL(dot)org>
Subject: Re: [HACKERS] Open 6.5 items
Date: 1999-05-31 09:33:52
Message-ID: 37525780.99FAC65B@krs.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tatsuo Ishii wrote:
>
> I have just done cvs update and saw your changes. I tried the same
> testing as I did before (64 conccurrent connections, and each
> connection excutes 100 transactions), but it failed again.
>
> (1) without -B 1024, it failed: out of free buffers: time to abort!
>
> (2) with -B 1024, it went into stuck spin lock
>
> So I looked into sources a little bit, and made a minor change to
> include/storage/lock.h:
>
> #define INIT_TABLE_SIZE 100
>
> to:
>
> #define INIT_TABLE_SIZE 4096
>
> then restarted postmaster with -B 1024 (this will prevent
> out-of-free-buffers problem, I guess). Now everything seems to work
> great!
>
> I suspect that huge INIT_TABLE_SIZE prevented dynamic expanding the
> hash tables and seems there's something wrong in the routines
> responsible for that.

Seems like that -:(

If we'll not fix expand hash code before 6.5 release then
I would recommend to don't use INIT_TABLE_SIZE in

lockMethodTable->lockHash = (HTAB *) ShmemInitHash(shmemName,
INIT_TABLE_SIZE, MAX_TABLE_SIZE,
&info, hash_flags);

and

lockMethodTable->xidHash = (HTAB *) ShmemInitHash(shmemName,
INIT_TABLE_SIZE, MAX_TABLE_SIZE,
&info, hash_flags);

but use NLOCKENTS(maxBackends) instead.

Vadim

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message The Hermit Hacker 1999-05-31 12:19:13 Re: [HACKERS] History of PostgreSQL
Previous Message Tatsuo Ishii 1999-05-31 08:24:46 Re: [HACKERS] Open 6.5 items