Jamal Ghaffour a écrit :
Hi,

I'm working on a project, whose implementation deals with PostgreSQL. A brief description of our application is given  below.

I'm running version 8.0 on a dedicated  server 1Gb of RAM. 
my database isn't complex, it contains just 2 simple tables.

CREATE TABLE cookies (
    domain varchar(50) NOT NULL,
    path varchar(50) NOT NULL,
    name varchar(50) NOT NULL,
    principalid varchar(50) NOT NULL,
    host text NOT NULL,
    value text NOT NULL,
    secure bool NOT NULL,
    timestamp timestamp with time zone NOT NULL DEFAULT 
CURRENT_TIMESTAMP+TIME '04:00:00',
    PRIMARY KEY  (domain,path,name,principalid)
)

CREATE TABLE liberty (
    principalid varchar(50) NOT NULL,
    requestid varchar(50) NOT NULL,
    spassertionurl text NOT NULL,
    libertyversion  varchar(50) NOT NULL,
    relaystate  varchar(50) NOT NULL,
    PRIMARY KEY  (principalid)
)

I'm developping an application that uses the libpqxx to execute 
psql queries on the database and have to execute 500 requests at the same time.


UPDATE cookies SET host='ping.icap-elios.com', value= '54E5B5491F27C0177083795F2E09162D', secure=FALSE, 
timestamp=CURRENT_TIMESTAMP+INTERVAL '14400 SECOND' WHERE 
domain='ping.icap-elios.com' AND path='/tfs' AND principalid='192.168.8.219' AND 
name='jsessionid'

SELECT path, upper(name) AS name, value FROM cookies  WHERE timestamp<CURRENT_TIMESTAMP AND principalid='192.168.8.219' AND 
secure=FALSE AND (domain='ping.icap-elios.com' OR domain='.icap-elios.com')

I have to notify that the performance of is extremely variable and irregular.
I can also see that the server process uses almost 100% of
a CPU.

I'm using the default configuration file, and i m asking if i have to change some paramters to have a good performance.

Any help would be greatly appreciated.

Thanks,
Hi,

There are some results that can give you concrete  idea about my problem:
when i 'm launching my test that executes in loop manner the  SELECT and UPDATE queries described above, i'm obtaining this results:

UPDATE Time execution :0s: 5225 us
SELECT Time execution  :0s: 6908 us

5 minutes Later:

UPDATE Time execution :0s: 6125 us
SELECT Time execution  :0s: 10928 us

5 minutes Later:

UPDATE Time execution :0s: 5825 us
SELECT Time execution  :0s: 14978 us

As you can see , the time execution of the SELECT request is growing relatively to time and not the UPDATE time execution.
 I note that to stop the explosion of the Select time execution, i m using frequently the vaccum query on the cookies table.
Set  the  autovacuum parmaeter in the configuation file to on wasn't able to remplace the use of the vaccum command, and i don't know if this behaivour is normal?

Thanks,
Jamal