Received: from sss.pgh.pa.us (sss.pgh.pa.us [209.114.132.154]) by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id eBKJ9t609701 for ; Wed, 20 Dec 2000 14:09:55 -0500 (EST) (envelope-from tgl@sss.pgh.pa.us) Received: from sss2.sss.pgh.pa.us (tgl@localhost [127.0.0.1]) by sss.pgh.pa.us (8.11.1/8.11.1) with ESMTP id eBKJ9SC06504; Wed, 20 Dec 2000 14:09:28 -0500 (EST) To: Alexaki Sofia cc: pgsql-interfaces@postgresql.org Subject: Re: Shared Memory: out of memory In-reply-to: References: Comments: In-reply-to Alexaki Sofia message dated "Tue, 19 Dec 2000 16:51:45 +0200" Date: Wed, 20 Dec 2000 14:09:28 -0500 Message-ID: <6501.977339368@sss.pgh.pa.us> From: Tom Lane X-Archive-Number: 200012/195 X-Sequence-Number: 541 Alexaki Sofia writes: > My application creates transactions consisting of about 3000 > updates operations ('insert into table' and 'create table'). > My database consists of a huge (200000) number of tables which > form a hierarchy. > The postmaster throws the following error massage >> NOTICE: ShmemAlloc: out of memory >> FATAL 1: LockAcquire: lock table 1 is corrupted You could try increasing the NLOCKS_PER_XACT space-estimation parameter in src/include/storage/lock.h. However, I'd advise rethinking your database design instead. 200000 tables will incur all sorts of performance penalties, starting with long Unix directory search times. You'll be much better off if you put the same data into fewer tables (probably with more columns). regards, tom lane