JDBC delete not recovering space? - Mailing list pgsql-jdbc

From John Guthrie
Subject JDBC delete not recovering space?
Date
Msg-id 01da01c309af$5bf9f320$3dc810ac@corphq.psynapsetech.net
Whole thread Raw
In response to JDBC and primary Key missing  ("Nuno Duarte Leitao" <nunomdl@eml.cc>)
Responses Re: JDBC delete not recovering space?
Re: JDBC delete not recovering space?
List pgsql-jdbc
i am seeing some odd behavior and wonder if anyone can help me explain it
and fix it...

i've written a java task that runs in a thread and monitors disk space on
the partition where i have my $PGDATA. if the space available drops below a
certain level, i remove some old records ... and vacuum.

the odd thing is that running via jdbc the space seems to not be recovered.
example - if i start with 100,000 records of approximately 1K size and i
remove 50,000, using 'df' in another shell i see no space recovery. from
another shell, using psql, i run vacuum and again i see no gains.

the really odd thing is that if i do this whole scenario in psql - create
100,000, delete the oldest 50,000, and vacuum - i *do* see the space
recovered.

even better (or worse), if i do the whole test in java, verify that little
or no space is recovered, then run psql and delete a single records and
vacuum, bam(!) i get a boatload of space back.

 note that in the java task i explicitly set auto-commit to true and i run
queries from psql that show results that reflect the deletions, so i don't
see this as a transaction problem. also, if i shut down postgresql i see the
correct (reduced) record count but still no space recovery. i can restart
it, run psql, and vacuum, but still no space recovery... but if i then
delete a record and vacuum again, i get space, lots of space (i.e.
megabytes).

any ideas anyone? thanks

john

---
john guthrie
psynapse technologies


pgsql-jdbc by date:

Previous
From: Roberto Bouza
Date:
Subject: An I/O error has occured while flushing the output
Next
From: "Jeroen Habets"
Date:
Subject: Re: JDBC delete not recovering space?