![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Got something really odd happening here. Simple test program, in java, with jdbc, postgres 7.4.5, on a redhat linux system... app does a heavy loop of a prepared UPDATE, then Commit, 10000s of times. the table has a few columns, nothing fancy at all. On our Redhat Enterprise 2.1 server (dual xeon, 3GB ram, etc), I can't vacuum the table it generates, it won't free the 'dead' rows... |
#3
| |||
| |||
|
|
"John R Pierce" <pierce (AT) hogranch (DOT) com> writes: Got something really odd happening here. Simple test program, in java, with jdbc, postgres 7.4.5, on a redhat linux system... app does a heavy loop of a prepared UPDATE, then Commit, 10000s of times. the table has a few columns, nothing fancy at all. On our Redhat Enterprise 2.1 server (dual xeon, 3GB ram, etc), I can't vacuum the table it generates, it won't free the 'dead' rows... You've got some background client holding a transaction open. Or else the test program isn't really committing when you think it is. |
#4
| |||
| |||
|
|
You've got some background client holding a transaction open. Or else the test program isn't really committing when you think it is. there are no background programs. I've done all the usual checking of `ps' outputs looking for such. in the test case I mailed to this list, I had created a standalone database with one table, and run the test program directly against it. |
#5
| |||
| |||
|
|
*HOWEVER*... About an hour after mailing that, I realized that the buggy RHEL2.1 system was running with Intel Hyperthreading enabled (so it appeared as 4 CPUs) while the no-problems RH8.0 system had hyperthreading enabled (we'd previously been benchmarking some multithreaded stuff both ways). So, its *just* possible that the earlier RHEL2.1 (kernel 2.4.9-e.43enterprise) had issues which the later RH8 (2.4.20-28.8smp) were resolved. I'll not be able to test this hypothesis until monday morning. |
#6
| |||
| |||
|
|
About an hour after mailing that, I realized that the buggy RHEL2.1 system was running with Intel Hyperthreading enabled (so it appeared as 4 CPUs) while the no-problems RH8.0 system had hyperthreading enabled (we'd previously been benchmarking some multithreaded stuff both ways). So, its *just* possible that the earlier RHEL2.1 (kernel 2.4.9-e.43enterprise) had issues which the later RH8 (2.4.20-28.8smp) were resolved. I'll not be able to test this hypothesis until monday morning. I run RHEL2.1 on the same your HW with HT enabled and I never had a problem with that. |
#7
| ||||
| ||||
|
|
About an hour after mailing that, I realized that the buggy RHEL2.1 system was running with Intel Hyperthreading enabled (so it appeared as 4 CPUs) while the no-problems RH8.0 system had hyperthreading enabled (we'd previously been benchmarking some multithreaded stuff both ways). So, its *just* possible that the earlier RHEL2.1 (kernel 2.4.9-e.43enterprise) had issues which the later RH8 (2.4.20-28.8smp) were resolved. I'll not be able to test this hypothesis until monday morning. I run RHEL2.1 on the same your HW with HT enabled and I never had a problem with that. are you running PGSql 7.4.x ? (we have this same issue with 7.4.2 and 7.4.5). fyi, my RHEL2.1 has all available up2date fixes, and I did *NOT* install RH's postgres RPM, rather, I fetched and built 7.4.5 from source |
|
could you perhaps give my test program a try? create a database 'test', a user 'test' with password 'test', and table 'test' as described in my original message, and compile and run this program: http://www.hogranch.com/files/PGTest.java compile the java program with Sun J2SE JDK 1.4.x.. $ javac PGTest.java |
|
(postgresql.jar has to be in your CLASSPATH, or you can specify it as -cp .:/path/postgresql.jar .. I'm using the one that compiled with 7.4.5 and my jdk 1.4.x) |
|
I am unable to vacuum the freespace in this table until I stop and restart the postgresql service. put your autovacuum back online when you're done messing. I can not reproduce this problem on a RH8 (2.4.20.x) system |
#8
| |||
| |||
|
|
there are no background programs. I've done all the usual checking of `ps' outputs looking for such. in the test case I mailed to this list, I had created a standalone database with one table, and run the test program directly against it. That sounds suspiciously like you think that only background clients connected to the same database count. Actually, any other client connected to the same *postmaster* can look like an open transaction to VACUUM ... |
![]() |
| Thread Tools | |
| Display Modes | |
| |