Installing Q4M
To install Q4M, download either our source distribution or a binary distribution. Binary distribution is only available for Linux i386 or x86-64 platforms. The source distribution would work on Solaris >=8 or Mac OS X as well.
SVN repository of Q4M can be found at http://kazuho.31tools.com/svn/q4m/.
Installing the Source Distribution
For 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 distribution
- run configure
- run make
- run make install
- run support-files/install.sql
- --with-mysql=mysql-source-dir
- set the directory of MySQL source code (required)
- --prefix=mysql-dir
- set the directory under which MySQL 5.1 is installed (optional)
- --with-debug
- if your MySQL is built with --with-debug option, Q4M should be built with this option as well. Or your MySQL server will crash. (optional)
- --with-sync=yes|no|fsync|fcntl
- select disk flush method. The fcntl option only works on Mac OS X, which calls fcntl with F_FULLFSYNC option. (optional)
Installing the Binary Distribution
Follow the steps below to install the binary distribution.
- untar the distribution
- copy libqueue_engine.so to lib directory of MySQL 5.1
- run support-files/install.sql
Testing the Installation
To 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.pl t/01-base................ok t/02-queue...............ok t/03-queue-error-wait....ok t/03-queue-error.........ok t/04-blob................ok t/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.........ok All tests successful. Files=6, Tests=5370, 140 wallclock secs (115.80 cusr + 5.92 csys = 121.72 CPU) $