Re: [HACKERS] Options for growth

2003-01-20 Thread Daniel Kalchev
D'Arcy J.M. Cain said:
  On Thursday 16 January 2003 11:59, Adrian 'Dagurashibanipal' von Bidder wrot
 e:
   On Thu, 2003-01-16 at 17:42, D'Arcy J.M. Cain wrote:
We are also looking at hardware solutions, multi-CPU PCs with tons (24GB
 )
of memory.  I know that memory will improve access if it prevents
swapping but how well does PostgreSQL utilize multiple CPUs?
  
   At most one CPU is used for any single postgres backend (that means for
   any single database connection). So, if your load problem is single
   queries being too slow, thee's nothing you can do with adding more CPUs.
   If your problem is many connections maxing out the db, PostgreSQL can
   take full advantage of multiple CPUs.
  
  I most definitely have multiple queries running at once.  My main issue is 
  whether PostgreSQL scales up properly or does it get bogged down with too 
  many locked queries.

That would depend on the OS. Not many 'pc-based unix' support over 4 GB of 
memory, some don't even go that far.

If memory is an issue, have you considered going to 64bit CPU?

Memory is indeed an issue for a complex database setup, especially if you want 
to give the backends enough shared and sort memory.

As already said, PostgreSQL will utilize multiple CPUs - as effectively as 
your OS can do this of course. PostgreSQL is not an OS by itself and does not 
really control these resources.

I have also found it very helpful to split database from application servers 
(wish I do it as often as I recommend it :) - thus you can optimize the part 
that needs most resources.. In many cases the requirements are quite 
different. With todays gigabit LANs, bandwidth between machines shouldn't be 
an issue.

By the way, I too wonder which supported OS platform would support over 4GB of 
memory on a PC..

Daniel


---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org



[HACKERS] Foreign key wierdness

2003-01-20 Thread Dave Page
Hi all,

A pgAdmin user has noticed that Foreign Keys take significantly longer
to create when migrating a database in pgAdmin in v1.4.12 than in
v1.4.2.

The only difference in the migration code between these releases, is
that pgAdmin now qualifies tables names with the schema name. The
following log snippets are from identical migrations from an Access
database to PostgreSQL 7.3.1:

pgAdmin 1.4.12
==

Jan 19 16:34:26 lmb042 postgres[17986]: [78991-1] LOG:  query: ALTER
TABLE public.articles ADD CONSTRAINT productsarticles_fk FOREIGN
KEY(product_ref) REFERENCES public.products
Jan 19 16:34:26 lmb042 postgres[17986]: [78991-2]  (product_id) ON
DELETE CASCADE ON UPDATE CASCADE
Jan 19 16:34:26 lmb042 postgres[17986]: [78992] NOTICE:  ALTER TABLE
will create implicit trigger(s) for FOREIGN KEY check(s)
Jan 19 16:34:26 lmb042 postgres[17986]: [78993] LOG:  query: SELECT 1
FROM ONLY public.products x WHERE product_id = $1 FOR UPDATE OF x
Jan 19 16:38:33 lmb042 postgres[17986]: [78994] LOG:  duration:
247.585771 sec

pgAdmin 1.4.2
=

Jan 19 15:48:56 lmb042 postgres[17542]: [78991-1] LOG:  query: ALTER
TABLE articles ADD CONSTRAINT productsarticles_fk FOREIGN
KEY(product_ref) REFERENCES products (product_id)
Jan 19 15:48:56 lmb042 postgres[17542]: [78991-2]  ON DELETE CASCADE ON
UPDATE CASCADE
Jan 19 15:48:56 lmb042 postgres[17542]: [78992] NOTICE:  ALTER TABLE
will create implicit trigger(s) for FOREIGN KEY check(s)
Jan 19 15:48:56 lmb042 postgres[17542]: [78993] LOG:  query: SELECT 1
FROM ONLY public.products x WHERE product_id = $1 FOR UPDATE OF x
Jan 19 15:48:58 lmb042 postgres[17542]: [78994] LOG:  duration: 1.988144
sec

A similar select query follows every key creation, but is not issued by
pgAdmin, or the user's application(s), so I assume PostgreSQL is doing
it for some reason. Any ideas why it takes so long (for the same data)
when pgAdmin qualifies the table name in the ALTER statement?

Thanks, Dave.

---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html



Re: [HACKERS] Options for growth

2003-01-20 Thread Adrian 'Dagurashibanipal' von Bidder
[no cc:s please]

On Mon, 2003-01-20 at 10:31, Daniel Kalchev wrote:
 D'Arcy J.M. Cain said:
   On Thursday 16 January 2003 11:59, Adrian 'Dagurashibanipal' von Bidder wrot
  e:
On Thu, 2003-01-16 at 17:42, D'Arcy J.M. Cain wrote:
 We are also looking at hardware solutions, multi-CPU PCs with tons (24GB
  )
 of memory.  I know that memory will improve access if it prevents
 swapping but how well does PostgreSQL utilize multiple CPUs?
   
At most one CPU is used for any single postgres backend (that means for
any single database connection). So, if your load problem is single
queries being too slow, thee's nothing you can do with adding more CPUs.
If your problem is many connections maxing out the db, PostgreSQL can
take full advantage of multiple CPUs.
   
   I most definitely have multiple queries running at once.  My main issue is 
   whether PostgreSQL scales up properly or does it get bogged down with too 
   many locked queries.
 
 That would depend on the OS. Not many 'pc-based unix' support over 4 GB of 
 memory, some don't even go that far.

 By the way, I too wonder which supported OS platform would support over 4GB of 
 memory on a PC..

Linux? I don't think there's any problem handling more than 4G memory in
the system. On 32bit architectures, there's of course the 3G (I think)
per process limit, but as postgres uses multiprocess and not
multithreading, this issue doesn't hit so soon. Of course, if the per
process memory is the problem, you'd have to go to 64bit.

cheers
-- vbi

-- 
featured link: http://fortytwo.ch/gpg/intro



signature.asc
Description: This is a digitally signed message part


Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Tom Lane
Dave Page [EMAIL PROTECTED] writes:
 A pgAdmin user has noticed that Foreign Keys take significantly longer
 to create when migrating a database in pgAdmin in v1.4.12 than in
 v1.4.2.

The only reason ADD FOREIGN KEY would take a long time is if
(a) it has to wait awhile to get exclusive lock on either
the referencing or referenced table; and/or
(b) it takes a long time to verify that the existing entries
in the referencing table all have matches in the referenced table.
(that's the behind-the-scenes query you see)

I'm betting that the table was busy, or there was a lot more data
present in the one case, or you hadn't ever vacuumed/analyzed one or
both tables and so a bad plan was chosen for the verification query.
The schema reference is definitely not the issue.

regards, tom lane

---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org



Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Dave Page


 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED]] 
 Sent: 20 January 2003 15:28
 To: Dave Page
 Cc: PostgreSQL Hackers Mailing List; Didier Moens
 Subject: Re: [HACKERS] Foreign key wierdness 
 
 
 Dave Page [EMAIL PROTECTED] writes:
  A pgAdmin user has noticed that Foreign Keys take 
 significantly longer 
  to create when migrating a database in pgAdmin in v1.4.12 than in 
  v1.4.2.
 
 The only reason ADD FOREIGN KEY would take a long time is if
 (a) it has to wait awhile to get exclusive lock on either
 the referencing or referenced table; and/or
 (b) it takes a long time to verify that the existing entries
 in the referencing table all have matches in the referenced table.
 (that's the behind-the-scenes query you see)
 
 I'm betting that the table was busy, or there was a lot more 
 data present in the one case, or you hadn't ever 
 vacuumed/analyzed one or both tables and so a bad plan was 
 chosen for the verification query. The schema reference is 
 definitely not the issue.

Thing is Tom, this issue can be reproduced *every* time, without fail.
The difference is huge as well, it's a difference of a couple of
seconds, the total migration will take around 1704.67 seconds without
schema qualification, and 11125.99 with schema qualification to quote
one test run.

As I understand it, this has be tried on a test box, and a production
box (running RedHat builds of 7.3.1), and is a migration of the same
source Access database.

I've been looking at his for some time now (couple of weeks or more),
and the only thing I can find is the SELECT ... FOR UPDATE in the
PostgreSQL logs that I quoted. These exactly follow *every* fkey
creation, and are definately not issued by pgAdmin. If they were issued
by another app or user, how come they exactly follow each fkey creation,
and are on the reference table of the fkey?

Regards, Dave.

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]



Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Tom Lane
Dave Page [EMAIL PROTECTED] writes:
 Thing is Tom, this issue can be reproduced *every* time, without fail.

And have you vacuumed or analyzed yet?  Or possibly you are short an
index or two (you really need indexes on both the referencing and
referenced columns).

 I've been looking at his for some time now (couple of weeks or more),
 and the only thing I can find is the SELECT ... FOR UPDATE in the
 PostgreSQL logs that I quoted. These exactly follow *every* fkey
 creation, and are definately not issued by pgAdmin.

No, I told you: those are the internal verification query (it comes from
RI_FKey_check_ins(), if you want to look).

If you really think the schema qualification has something to do with
it, try issuing the ADD FOREIGN KEY command manually in psql, with and
without schema name.

regards, tom lane

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Hannu Krosing
On Mon, 2003-01-20 at 15:47, Dave Page wrote:
  -Original Message-
  From: Tom Lane [mailto:[EMAIL PROTECTED]] 
  Sent: 20 January 2003 15:28
  To: Dave Page
  Cc: PostgreSQL Hackers Mailing List; Didier Moens
  Subject: Re: [HACKERS] Foreign key wierdness 
  
  
  Dave Page [EMAIL PROTECTED] writes:
   A pgAdmin user has noticed that Foreign Keys take 
  significantly longer 
   to create when migrating a database in pgAdmin in v1.4.12 than in 
   v1.4.2.
  
  The only reason ADD FOREIGN KEY would take a long time is if
  (a) it has to wait awhile to get exclusive lock on either
  the referencing or referenced table; and/or
  (b) it takes a long time to verify that the existing entries
  in the referencing table all have matches in the referenced table.
  (that's the behind-the-scenes query you see)
  
  I'm betting that the table was busy, or there was a lot more 
  data present in the one case, or you hadn't ever 
  vacuumed/analyzed one or both tables and so a bad plan was 
  chosen for the verification query. The schema reference is 
  definitely not the issue.
 
 Thing is Tom, this issue can be reproduced *every* time, without fail.
 The difference is huge as well, it's a difference of a couple of
 seconds, the total migration will take around 1704.67 seconds without
 schema qualification, and 11125.99 with schema qualification to quote
 one test run.

can you try running ANALYZE (or VACUUM ANALYZE) after importing data but
before creating the foreign keys ?

 As I understand it, this has be tried on a test box, and a production
 box (running RedHat builds of 7.3.1), and is a migration of the same
 source Access database.
 
 I've been looking at his for some time now (couple of weeks or more),
 and the only thing I can find is the SELECT ... FOR UPDATE in the
 PostgreSQL logs that I quoted.

does this SELECT ... FOR UPDATE occur only when schemas are used ?

  These exactly follow *every* fkey
 creation, and are definately not issued by pgAdmin. If they were issued
 by another app or user, how come they exactly follow each fkey creation,
 and are on the reference table of the fkey?

I think Tom was trying to tell that the backend code indeed runs this,
but that it should not be that slow.

-- 
Hannu Krosing [EMAIL PROTECTED]

---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]



Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Dave Page


 -Original Message-
 From: Tom Lane [mailto:[EMAIL PROTECTED]] 
 Sent: 20 January 2003 16:08
 To: Dave Page
 Cc: PostgreSQL Hackers Mailing List; Didier Moens
 Subject: Re: [HACKERS] Foreign key wierdness 
 
 
 Dave Page [EMAIL PROTECTED] writes:
  Thing is Tom, this issue can be reproduced *every* time, 
 without fail.
 
 And have you vacuumed or analyzed yet?  Or possibly you are 
 short an index or two (you really need indexes on both the 
 referencing and referenced columns).

Didier?

  I've been looking at his for some time now (couple of weeks 
 or more), 
  and the only thing I can find is the SELECT ... FOR UPDATE in the 
  PostgreSQL logs that I quoted. These exactly follow *every* fkey 
  creation, and are definately not issued by pgAdmin.
 
 No, I told you: those are the internal verification query (it 
 comes from RI_FKey_check_ins(), if you want to look).

Sorry, brain hiccup.

 If you really think the schema qualification has something to 
 do with it, try issuing the ADD FOREIGN KEY command manually 
 in psql, with and without schema name.

Well to be honest I'm having a hard time believing it, but having looked
at this in some depth, it's the only thing that the 2 versions of
pgAdmin are doing differently. Even the PostgreSQL logs agree with that.
I'm relying on Didier for test results though as I don't have a test
system I can use for this at the moment.

But it gives us something to try - Didier can you create a new database
please, and load the data from 2 tables. VACUUM ANALYZE, then add the
foreign key in psql using the syntax 1.4.2 uses. Then drop the database,
and load exactly the same data in the same way, VACUUM ANALYZE again,
and create the fkey using the qualified tablename syntax.

Thanks, Dave.

---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org



Re: [HACKERS] Survey results from the PostgreSQL portal page

2003-01-20 Thread Emmanuel Charpentier
Gavin Sherry wrote:

On Mon, 20 Jan 2003, Christopher Kings-Lynne wrote:



I wonder why people ask for better documentation. I think the 
documentation is really good. Ever read Oracle stuff? *ugh*.

Ever read MySQL docs - *hack*!!



The documentation definately needs work -- particularly client
library documentation and PL/PgSQL. I want to work on this when I get
time.


Case in point : in 7.3, the ODBC driver documentation (which was terse and 
somewhat outdated, to begin with ...) has disappeared from the main tree. 
You have to go to GBorg to find (some) relevant information (and no 
examples, BTW). But to find an information I really needed, I had to use 
... the driver source, fer Crissakes !! I felt back in '74, when I tried to 
learn Fortran.

[ BTW : note to Hiroshi Inoue : Thank you ! I partially solved by problem, 
and think a real solution is bound to to undoing some 7.2 to 7.3 
modifications ...]

The same could be said of the JDBC driver, btw, while it's doc is still in 
the main doc tree.

This one is one of my pet peeves at the moment ...

	Emmanuel Charpentier


---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org


Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Dave Page


 -Original Message-
 From: Hannu Krosing [mailto:[EMAIL PROTECTED]] 
 Sent: 20 January 2003 18:05
 To: Dave Page
 Cc: Tom Lane; PostgreSQL Hackers Mailing List; Didier Moens
 Subject: Re: [HACKERS] Foreign key wierdness
 
 
  I've been looking at his for some time now (couple of weeks 
 or more), 
  and the only thing I can find is the SELECT ... FOR UPDATE in the 
  PostgreSQL logs that I quoted.
 
 does this SELECT ... FOR UPDATE occur only when schemas are used ?

No, in both case, just significantly more slowly with schema
qualification. Note that the qualification is added to the ALTER TABLE
statement though - PostgreSQL's qualifying the name in the SELECT for
every case.

Regards, Dave.

---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



[HACKERS] Grant options

2003-01-20 Thread Peter Eisentraut
I am implementing the grant option feature which enables an object owner
to allows others to re-grant privileges.  For REVOKE you can specify
CASCADE and privileges granted in this manner are revoked recursively.

Currently, I have made it so that you can only give grant options to
users, not groups.  The problem is that when a user has granted privileges
having had the grant option through a group and is later removed from the
group then the privileges should be revoked, but the old problem is that
it's not possible to do this in all databases.

I have extended the aclitem external format as follows:

grantee=a*bc*/grantor

means the a and c privileges are held with grant option (the letters
are just examples), and the whole thing was granted by the given grantor.
(You can hold the same privilege many times granted by different users.)

What are the requirements for backward compatibility here?  If the * are
missing then the privilege is held without grant option which is currently
the default.  If the /grantor portion is missing then it's assumed to be
equivalent to the grantee.  This makes sense in a limited number of cases.
One would like to have the object owner as the default but the
aclitemout function doesn't have information about that.

I noted three undocumented SQL function operating on ACLs: aclinsert,
aclremove, aclcontains.  What are those intended for?  How should they
maintain the integrity of the ACL that is ensured by cascading revoke?

In order to query the availability of a grant option I would like to
extend the has_foo_privilege family of functions so that they can take as
the privilege type argument, say, 'UPDATE WITH GRANT OPTION' instead of
'UPDATE'.  In order to be able to represent the grantee/grantor
relationship in the information schema I also need a function
has_foo_privilege_granted_by(grantee, objectid, priv, grantor).

Comments?

-- 
Peter Eisentraut   [EMAIL PROTECTED]


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html



[HACKERS] Win32 port patches submitted

2003-01-20 Thread Jan Wieck
Hi,

I just submitted the patches for the native Win32 port of v7.2.1 on the
patches mailing list.

If you are not subscribed to the patches list you can download them from

http://www.janwieck.net/win32_port


Jan

-- 
#==#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.  #
#== [EMAIL PROTECTED] #

---(end of broadcast)---
TIP 6: Have you searched our list archives?

http://archives.postgresql.org



Re: [HACKERS] Foreign key wierdness

2003-01-20 Thread Tom Lane
Didier Moens [EMAIL PROTECTED] writes:
 I just formally tested on PostgreSQL 7.2.2 (logs sent to Dave), and the 
 results are perfectly inline with those from 7.2.3 : a massive slowdown 
 when upgrading from pgadminII 1.4.2 to 1.4.12.

I thought the complaint involved PG 7.3?  There is no schema syntax in 7.2.

regards, tom lane

---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly



[HACKERS] pg_dump ordering

2003-01-20 Thread Christopher Kings-Lynne
Hey Peter,

I remember a while back you were saying you were working on pg_dump object
ordering?  What happened with that?  Did you need some help with it?

I ask because my 7.2 to 7.3 upgrade is making me cry and I want to prevent
future pain...

Chris


---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster



Re: [HACKERS] Can we revisit the thought of PostgreSQL 7.2.4?

2003-01-20 Thread Marc G. Fournier
On Sat, 18 Jan 2003, Tom Lane wrote:

 PS: I'm not taking a position on Justin's suggestion that there should
 be a 7.2.4.  Marc and Bruce would be the ones who have to do the work,
 so they get to make the decision...

I have no problems creating one ... Bruce?


---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?

http://www.postgresql.org/users-lounge/docs/faq.html



[HACKERS] Recent initdb error

2003-01-20 Thread Rod Taylor
setting privileges on built-in objects... ok
creating information schema... sed: 1: s/^[0-9]*\.[0-9]*\.\([0 ...:
undefined label 'L;s/.*//;q;: L;s/.*\(\)$/\1/'
ok
vacuuming database template1... ok


Seems to have appeared with the changes for the SQL_FEATURES table.


The below works:
  micro_version=`echo $VERSION | sed
's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/;t LABEL
s/.*//;q
:LABEL
s/.*\(\)$/\1/'`


For some reason my sed isn't liking the semicolons.


-- 
Rod Taylor [EMAIL PROTECTED]

PGP Key: http://www.rbt.ca/rbtpub.asc



signature.asc
Description: This is a digitally signed message part