Frequent 'deadlock detected' in 7.4 ... or just my bad code? - Mailing list pgsql-admin

From Marc G. Fournier
Subject Frequent 'deadlock detected' in 7.4 ... or just my bad code?
Date
Msg-id 20040405114031.N79409@ganymede.hub.org
Whole thread Raw
Responses Re: Frequent 'deadlock detected' in 7.4 ... or just my bad code?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-admin
G'day ...

  I've got a script that runs on all the servers that dump's IP traffic
data to a 7.4 database ... they all run at the same time, but I'm starting
to get the following on a reasonably regular basis:

ERROR:  deadlock detected at /usr/local/abin/ipaudit2ams.pl line 175.

  The code that is causing it, from the times I've been able to catch it,
is a simple update to the same table:

       $upd->execute( $traffic{$company_id}{$ip_id}{$port}, $company_id, $ip_id, $date ) || die $upd->errstr;

  Now, the scripts are wrap'd in a BEGIN/END ... if a file fails to be
loaded, I want the whole thing to rollback ... the deadlock itself, I'm
presuming, is because two servers are trying to update the same
$ip_id/$port/$company_id record, at the same time ...

  Now, reading the DEADLOCKS section at:

    http://www.postgresql.org/docs/7.4/static/explicit-locking.html

  This is to be expected ... but, other then breaking the transaction
itself into smaller chunks, or staggering the scripts run times ... is
there something I'm overlooking to eliminate this?  I could increase the
deadlock timeout, as an option as well ...



----
Marc G. Fournier           Hub.Org Networking Services (http://www.hub.org)
Email: scrappy@hub.org           Yahoo!: yscrappy              ICQ: 7615664

pgsql-admin by date:

Previous
From: Rajesh Kumar Mallah
Date:
Subject: debugging queries from psql
Next
From: Tom Lane
Date:
Subject: Re: Do Petabyte storage solutions exist?