Each test set has 3 time sets.

First is on pgbench -i (-s 5)
Second is on pgbench -t 3000 -s 5

Third is on postmaster during the run of the first 2.


The first test on a slow harddrive has a large effect for increasing the
namedatalen length.

Second through 4th sets don't really show any issues when the drives are
quite a bit quicker -- IBM Deskstars stripped).  Looks like something
threw the results off near the end of the second set / beginning of the
3rd set.  Probably nightly maintenance.  I'm afraid I don't have a good
box for benchmarking (potential for many variables).

Anyway, if people are using machines that are heavily disk bound,
they're probably not running a production Postgresql installation. 
Those who are will benefit from the longer length of namedatalen.

That said, the pg_depend patch going through fixes 50% of the serial
problem (auto-drop on table drop).  The other 50% (short non-conflicting
names) is very easy to complete.



------ SLOW SINGLE IDE DRIVE ---------
NAMEDATALEN: 32

       89.34 real         1.85 user         0.13 sys
      146.87 real         1.51 user         3.91 sys

      246.63 real        66.11 user        19.21 sys


NAMEDATALEN: 64

       93.10 real         1.82 user         0.16 sys
      147.30 real         1.45 user         3.90 sys

      249.28 real        66.01 user        18.82 sys


NAMEDATALEN: 128

       99.13 real         1.80 user         0.51 sys
      169.47 real         1.87 user         4.54 sys

      279.16 real        67.93 user        29.72 sys


NAMEDATALEN: 256

      106.60 real         1.81 user         0.43 sys
      166.61 real         1.69 user         4.25 sys

      283.76 real        66.88 user        26.59 sys


NAMEDATALEN: 512

       88.13 real         1.83 user         0.22 sys
      160.77 real         1.64 user         4.48 sys

      259.56 real        67.54 user        21.89 sys


------ 2 IDE Raid 0 (Set 1 ---------
NAMEDATALEN: 32

       61.00 real         1.85 user         0.12 sys
       87.07 real         1.66 user         3.80 sys

      156.17 real        65.65 user        20.41 sys


NAMEDATALEN: 64

       60.20 real         1.79 user         0.19 sys
       93.26 real         1.54 user         4.00 sys

      162.31 real        65.79 user        20.30 sys


NAMEDATALEN: 128

       60.27 real         1.86 user         0.12 sys
       86.23 real         1.59 user         3.83 sys

      154.65 real        65.76 user        20.45 sys


NAMEDATALEN: 256

       62.17 real         1.86 user         0.12 sys
       89.92 real         1.31 user         4.13 sys

      160.37 real        66.58 user        20.08 sys


NAMEDATALEN: 512

       62.12 real         1.82 user         0.16 sys
       87.08 real         1.50 user         4.00 sys

      157.37 real        66.54 user        19.57 sys

------ 2 IDE Raid 0 (Set 2) ---------
NAMEDATALEN: 32

       62.33 real         1.83 user         0.13 sys
       91.30 real         1.62 user         3.96 sys

      161.91 real        65.93 user        20.80 sys


NAMEDATALEN: 64

       62.39 real         1.83 user         0.13 sys
       93.78 real         1.68 user         3.85 sys

      164.34 real        65.72 user        20.70 sys


NAMEDATALEN: 128

       62.91 real         1.84 user         0.15 sys
       90.87 real         1.58 user         3.91 sys

      161.86 real        66.14 user        20.21 sys


NAMEDATALEN: 256

       72.59 real         1.79 user         0.52 sys
       97.40 real         1.62 user         4.71 sys

      178.38 real        68.78 user        31.35 sys


NAMEDATALEN: 512

       80.64 real         1.87 user         0.41 sys
       99.19 real         1.64 user         4.87 sys

      188.45 real        67.33 user        35.22 sys

------ 2 IDE Raid 0 (Set 3) ---------
NAMEDATALEN: 32

       79.63 real         1.80 user         0.41 sys
       89.69 real         1.54 user         4.69 sys

      177.55 real        68.65 user        28.34 sys


NAMEDATALEN: 64

       74.94 real         1.89 user         0.52 sys
       91.44 real         1.70 user         4.32 sys

      174.74 real        66.25 user        33.59 sys


NAMEDATALEN: 128

       64.07 real         1.86 user         0.16 sys
       79.06 real         1.53 user         4.35 sys

      151.27 real        67.92 user        22.96 sys


NAMEDATALEN: 256

       78.43 real         1.81 user         0.58 sys
       89.23 real         1.58 user         4.27 sys

      175.71 real        66.94 user        37.41 sys


NAMEDATALEN: 512

       60.67 real         1.87 user         0.10 sys
       84.61 real         1.47 user         3.88 sys

      153.49 real        66.04 user        19.84 sys


#!/bin/sh

PGSRC=/home/rbt/postgresql/pgsqlnamedatalen
PGBASEPORT=6400
PGBASEBIN=/data/buildtree/dbname

LOG=/home/rbt/bench_namedatalen.log


for newDATALEN in 32 64 128 256 512 ; do

  PGBIN=${PGBASEBIN}_${newDATALEN}
  PGPORT=`echo "${PGBASEPORT}+${newDATALEN}" | bc`

  sed -E 's/NAMEDATALEN\s[0-9]+/NAMEDATALEN ${newDATALEN}/g' ${PGSRC}/src/include/postgres_ext.h > ${PGSRC}/src/include/postgres_ext.h.tmp
  mv ${PGSRC}/src/include/postgres_ext.h.tmp ${PGSRC}/src/include/postgres_ext.h

  cd ${PGSRC}
  ./configure --prefix=${PGBIN} --with-pgport=${PGPORT} || (echo "UNABLE TO CONFIGURE"; exit)

  make clean
  make clean install

  cd ${PGSRC}/contrib/pgbench

  gmake install


  ${PGBIN}/bin/initdb -D ${PGBIN}/data  || (echo "UNABLE TO INITIALIZE"; exit 1)

  time -a -o ${LOG} ${PGBIN}/bin/postmaster -D ${PGBIN}/data -F &

  sleep 5

  echo "NAMEDATALEN: ${newDATALEN}" >> ${LOG}
  echo  >> ${LOG}
  time -a -o ${LOG} ${PGBIN}/bin/pgbench -i -s 5 -d template1 -p ${PGPORT}

  time -a -o ${LOG} ${PGBIN}/bin/pgbench -t 3000 -s 5 -d template1 -p ${PGPORT}
  echo >> ${LOG}
  ${PGBIN}/bin/pg_ctl -D ${PGBIN}/data stop
  echo >> ${LOG}
  echo >> ${LOG}
  rm -rf ${PGBIN}
done

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

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

Reply via email to