On Wed, 20 Feb 2008, Jeff Davis wrote:
However, building indexes in parallel would allow better CPU utilization.
We have a process here that dumps a large quantity of data into an empty database, much like pg_restore, and then creates all the indexes at the end. In order to speed up that bit, I initially made it spawn off several threads, and make each thread run a CREATE INDEX operation in parallel. However, this resulted in random errors from Postgres - something to do with locked tables. So I changed it so that no two threads create indexes for the same table at once, and that solved it.
Obviously creating several indexes for the same table in parallel is better from a performance point of view, but you may have to fix that error if you haven't already.
Matthew -- for a in past present future; do for b in clients employers associates relatives neighbours pets; do echo "The opinions here in no way reflect the opinions of my $a $b." done; done ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your message can get through to the mailing list cleanly