Re: [PATCHES] Win32 CHECK_FOR_INTERRUPTS() performance - Mailing list pgsql-hackers

From Merlin Moncure
Subject Re: [PATCHES] Win32 CHECK_FOR_INTERRUPTS() performance
Date
Msg-id 6EE64EF3AB31D5448D0007DD34EEB3417DD683@Herge.rcsinc.local
Whole thread Raw
Responses Re: [PATCHES] Win32 CHECK_FOR_INTERRUPTS() performance
Re: [PATCHES] Win32 CHECK_FOR_INTERRUPTS() performance
List pgsql-hackers
OK, running the latest patch.  Observations:
1. Confirmed that time for count(*) on narrow sets is greatly improved:
A real easy way to show this off is:

select count(*) from generate_series(1,(10^6)::integer);

with about a 60% drop in time on my XP box.

2. Did ISAM style record iteration over relatively large (50k records)
bill of materials.  This was previous test where I reported no
performance gain...for a single user (n=1).  For n=6, I am seeing about
a 20% reduction in the overall running time of the test, and a greatly
improved overall responsiveness of the server while running the test.

I tested this by doing select * from medium_sized_table while 6 backends
were busy feeding records to the ISAM app.  While pg under 0 load might
serve the table in one second, with the n=6 test running the time might
(on win32) take 5 minutes.  On linux, the worst case time was around
1/(n*2).  Qingqing's patch brings win32 much closer to linux!

3.  A pl/pgsql function stuck in a empty loop is unkillable except by
killing the process on the server, which cycles the entire server.  This
was the behavior before the patch, btw.

I ran tests for about an hour, randomly killing/canceling backends
without any problems.

Merlin




pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Question about Ctrl-C and less
Next
From: Tom Lane
Date:
Subject: Re: Question about Ctrl-C and less