>>>>> "Denis" == Denis Pithon <denis.pithon@stripped> writes:
Denis> Hi all,
Denis> ** About our main change (we lock data file each time MySQL server lock
Denis> index file)
Monty> Why do you need to do this? As MySQL will not access the
Monty> data file if the index file is not locked, there shouldn't
Monty> exist a need to lock the data file.
Denis> When you lock (R or W) a file through GFS, you are sure to see _all_
Denis> changes done by the other nodes on this file. If you don't lock data file
Denis> with node "bar", new rows previously inserted by node "foo" won't be seen
Denis> by node "bar". If you remember, I often have a synchronization problem
Denis> between index file and data file before this change. "check table" said
Denis> Size of datafile is: 0 Should be: 25
Denis> Index file is up to date, but not data file. That's the reason why we lock
Denis> data file. Just to retrieve last changes of the data file.
Ok. So 'lock' actually is a kind of 'sync' for the GFS. That explains
why you need it.
Denis> ** Check table
Me> I have some minor problems with "check" tables. I must check
Me> (no pun!) if it locks tables before any access, and if it
Me> uses files mentionned above. If it doesn't lock, these
Me> troubles are quite normal...
Monty> Check tables uses the normal MySQL locks, so this shouldn't
Monty> be a problem.
Denis> I "strace" mysqld, to check that all read/write access are nested in
Denis> lock/unlock calls. In fact, it seems that "check table" write to the table
Denis> _after_ it released the lock. But I must control it again.
Please do! It shouldn't!
Denis> ** Transactionnal
Denis> Bad news (for me), BDB use mmap. That's really bad in our cluster context.
Denis> I could try to "msync" after each query/trx but I don't know if it's
Denis> possible and safe. Somebody knows ?
Denis> I'm waiting hard for innobase... Hoping there is no fatal mmap, and that I
Denis> could "parallelize" it!
Heikki, any comments ?