We're using MySQL Cluster and get errors like

DBD::mysql::st execute failed: Got temporary error 1218 'Send Buffers 
overloaded in NDB kernel' from NDBCLUSTER at 
/usr/local/share/perl/5.10.1/Data/ObjectDriver/Driver/DBI.pm line 161.

Pretty frequently. Since most of these errors are temporary we should 
probably retry them but I'm not sure whether there's any established 
best practice for this, especially within transactions. Should we retry 
the individual statement or retry the whole transaction?

There's this module

http://search.cpan.org/~bduggan/DBIx-TryAgain-0.05/lib/DBIx/TryAgain.pm

and I'm wondering if anyone's used it in anger. 

For what it's worth these are the temporary errors we get

270 'Transaction aborted due to node shutdown'
1218 'Send Buffers overloaded in NDB kernel' 
4010 'Node failure caused abort of transaction' 
4028 'Node failure caused abort of transaction'
4119 'Simple/dirty read failed due to node failure'"

Simon


Reply via email to