Recently, I have been traveling a lot to the west coast (I live in Quebec) so I had plenty of time to update WaffleGrid while flying. Here are the new features/ports:
So now, if you update the innodb_memcached_servers with a statement like “set global innodb_memcached_servers = ‘serverA,serverB:11212′;” then MySQL will disconnect from the current servers and reconnect to the new ones. The key prefix is incremented to prevent cache coherency problems.
You might have noticed that Matt added many WaffleGrid statistic counters like shown here. Those counters have been ported to the InnoDB plugin version.
I also added a CRC32 checksum for each block sent to memcached, the checksum value is stored in the memcached flags integer variable. With this feature, accidental cache corruption or network communication problem should be trapped correctly.
Finally, I realized many variables were not correctly protected for multi-threaded access. Remember… my main job is not developer, I have my limitations. Those variables are now per thread so the risk of collision should be much smaller.
Want to try? Easy, just do
bzr branch lp:~y-trudeau/wafflegrid/waffleGrid-Innodb-plugin
and replace the storage/innobase directory in 5.1 source tree. Remember, the code is very young, use it at your own risk.
Next on my list is to improve error handling and design some automatic tests. By the way, I welcome any more senior C programmer than me to review the code, I am sure there are some nasty things there.