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)