List:Internals« Previous MessageNext Message »
From:Michael Widenius Date:March 13 2001 10:10pm
Subject:MySQL parallel server
View as plain text  

>>>>> "Denis" == Denis Pithon <denis.pithon@stripped> writes:

Denis> Hi all,
Denis> Last week, I told you that a "check table" writing occured out of a
Denis> locked section. I tried to repeat this problem with one standard MySQL
Denis> server... without success. I have many doubts now (is it really "check"?)
Denis> and I try to elucidate this problem.

Denis> Since I have started to use MySQL as a parallel server, I
Denis> often have this kind of message with "check table":

Denis> "2 clients is using or hasn't closed the table properly." 

Denis> I have a theory about it, perhaps I'm wrong: MySQL _never_ closes the used
Denis> tables, until the server is shutdown or maximum number of opened files is
Denis> reached. I guess that a chunk of bytes is written to files before closing
Denis> the table (previous  cases). Without this final writing, all servers see
Denis> MYI or MYD files marked as used.

That is right.

The first time a table is updated, the table is marked as 'used' by
incrementing a counter in the file. When the table is closed the
counter is decremented.

Denis> If I'm true, I need to synchonize _all_ informations to files. I don't
Denis> wan't servers to hide informations each others...

As the 'changed' number is updated relatively on close/update, I don't
really see a big problem with this.  The 'table is in use' warning is
just something one should ignore on multi-mysqld system.

Anyway, if all servers close the file properly, then the number should
be 0 when it's not in use by any server.  If this isn't the case, you
should try to find out what is going wrong!

MySQL parallel serverDenis Pithon12 Mar
  • MySQL parallel serverMichael Widenius14 Mar