2 messages in com.mysql.lists.clusterRe: Invalid schema object version err...
FromSent OnAttachments
Brendan Wood20 Jun 2007 11:12 
Stewart Smith24 Jun 2007 18:40 
Subject:Re: Invalid schema object version error after recreating a table
From:Stewart Smith (stew@mysql.com)
Date:06/24/2007 06:40:56 PM
List:com.mysql.lists.cluster

On Wed, 2007-06-20 at 11:12 -0700, Brendan Wood wrote:

I just wanted to check on a problem that I'm encountering with a new mysql cluster setup I'm working on. I've made a basic three machine cluster (two data/mysql nodes and one management server) using MySQL 5.0.37. I'm testing it with our application server setup, but I've been getting sporadic "Got error 241 'Invalid schema object version' from NDB" messages.

We've managed to come up with a reproducible test case:

mysql node1: create table mysql node2: select * from table mysql node1: drop table mysql node1: create table mysql node2: select * from table (error)

If the client issues the select again, it seems to work correctly, but JBoss Messaging chokes terribly on it anyway. There are a few bugs that seem to be related, but I wanted to make sure:

(without looking at the specific bugs... but don't need to :)

This is expected behaviour.

The MySQL Server caches the schema of all the tables. This is so that a lot of things can happen without having to send anything over the wire (which is slow... compared to local RAM).

Unfortunately, when we do finally send things down to the data nodes with the incorrect schema, it's common for there to be no nice way inside the MySQL Server to restart processing the query. So we have to give a temporary error.

All applications should handle temporary errors (and not just because of NDB... what if you got a timeout on a lock or deadlock detection on $engine ?).

Without thinking too hard, this should be less of a problem in 5.1... but certainly not something we're going to change at this point in 5.0.

Jumpstart your cluster: http://www.mysql.com/consulting/packaged/cluster.html