Q4M adoption by Mixi, and the release of version 0.8
Last week, Mixi - Japan's largest social network service provider, launched an experimental microblogging service called Echo, and according to their delevopers' blog entry, they are using Q4M to level their write loads. Thank you to the developers of Mixi Echo for using Q4M, I hope Echo will go well and soon become a first-class service.
Meanwhile, several bugs were found in Q4M (that arise under rare cases or complex usage senarios), so I have just uploaded version 0.8, available from the Q4M homepage.
This release fixes the following bugs.
- block div-by-zero exception on conditional subcription
- do not crash when a nonexistent table (or a non-Q4M table) is specified as an argument of queue_wait
- fix memory corruption that used to occur under certain cases when multiple table-conditions where passed to queue_wait
- return correct data when a single table is passed multiple times to queue_wait function causing a wait
From this release, the plugin_version field of information_schema.plugins table will show the correct version number of Q4M.
mysql> select plugin_version from information_schema.plugins where plugin_name='queue'; +----------------+ | plugin_version | +----------------+ | 0.8 | +----------------+ 1 row in set (0.01 sec)It is also possible to view the status of Q4M.
mysql> show engine queue status\G *************************** 1. row *************************** Type: QUEUE Name: Status: I/O calls ------------------------------------ sys_read 71 sys_write 58292 sys_sync 43271 read_cachehit 0 Writer thread ------------------------------------ append 10095 remove 34422 Conditional subscription ------------------------------------ evaluation 31809 compile 26543 compile_cachehit 26531 High-level stats ------------------------------------ rows_written 47002 rows_removed 46469 queue_wait 44931 queue_end 4110 queue_abort 3 queue_rowid 4085 queue_set_srcid 89 1 row in set (0.00 sec)