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