Q4M

Q4M, short from Queue for MySQL, is a message queue that works as a pluggable storage engine of MySQL 5.1.
Download

Q4M Ranking & Summary

Advertisement

  • Rating:
  • License:
  • GPL
  • Price:
  • FREE
  • Publisher Name:
  • Cybozu Labs, Inc.
  • Publisher web site:
  • http://q4m.31tools.com/

Q4M Tags


Q4M Description

Q4M, short from Queue for MySQL, is a message queue that works as a pluggable storage engine of MySQL 5.1. Q4M, short from Queue for MySQL, is a message queue that works as a pluggable storage engine of MySQL 5.1, designed to be robust, fast, flexible. The development started in late December of 2007, and although it is very primitive, operates quite swiftly.RobustQ4M logs all message transfers to disk. A power failure or OS crash would never loose a message.FastAlthough Q4M syncs every operation to disk, it runs fast by using group commits, and checksums for data recovery. Even with HDD write cache disabled, it is able to transfer >1,000 messages per second on an ordinally Pentium 4 linux box.FlexibleSince Q4M works as a storage engine of MySQL, it is possible to JOIN queues against ordinally MySQL tables. Or you may use triggers for sending data into queue.Requirements:? MySQL 5.1.xInstalling the Source DistributionFor installing the source distribution, source code of MySQL is required. download and build MySQL 5.1 (installation is not mandatory, but if you plan to install Q4M into a binary distribution of MySQL, make sure to use the same configuration options for building the MySQL source distribution. The configuration of MySQL can be found in bin/mysqlbug script.)untar the Q4M distributionrun configurerun makerun make installrun support-files/install.sqlBelow are the important options when configuring Q4M. --with-mysql=mysql-source-dirset the directory of MySQL source code--libdir=mysql-lib-dirset the library directory of your MySQL. It is in most cases either lib/mysql or lib subdirectory of MySQL--with-debugif your MySQL is built with --with-debug option, Q4M should be built with this option as well. Or your MySQL server will crash.--with-sync=yes|no|fsync|fcntlselect disk flush method. The fcntl option only works on Mac OS X, which calls fcntl with F_FULLFSYNC option.Installing the Binary DistributionFollow the steps below to install the binary distribution. untar the distributioncopy libqueue_engine.so to lib directory of MySQL 5.1 run support-files/install.sqlTesting the InstallationTo test your installation, run the run_tests.pl. You can set your database location by using the DBI environment variable. DBI_USER and DBI_PASSWORD variables are also avialable. An output like below should appear. $ DBI='dbi:mysql:database=test;host=kazdev;port=3307' ./run_tests.plt/01-base................okt/02-queue...............okt/03-queue-error-wait....okt/03-queue-error.........okt/04-blob................okt/05-multireader.........Multireader benchmark result: Number of messages: 6400 Number of readers: 32 Elapsed: 3.366 seconds Throughput: 1901.245 mess./sec.t/05-multireader.........okAll tests successful.Files=6, Tests=5370, 140 wallclock secs (115.80 cusr 5.92 csys = 121.72 CPU)$ Using Q4MTo evaluate Q4M, download either a binary or source distribution from the install page, and follow the installation instructions. We also have a small tutorial. You may use SQL to access Q4M queues, or there is a wrapper module available for perl (Queue::Q4M). What's New in This Release: · This release fixes a file descriptor leak on DROP TABLE. · It includes binaries for Linux i386, Linux x86_64, and Mac OS X 10.4 (x86) as well as a source code tarball.


Q4M Related Software