Installing a Binary Distribution
Precompiled binaries for MySQL running on linux i686, linux x86_64, and Mac OS X 10.4 are provided. If your MySQL matches the condition, please follow the steps below to install the matching binary distribution.
- determine whether if your MySQL installation was compiled with --with-fast-mutexes option, by looking at CONFIGURE_LINE of bin/mysqlbug script.
- download appropriate binary distribution of Q4M from http://q4m.31tools.com/dist/. If your MySQL installation was compiled with --with-fast-mutexes option, then choose a Q4M archive having with-fast-mutexes within its filename. Otherwise, choose one with without-fast-mutexes.
- untar the distribution
- copy support-files/q4m-forward to bin directory of MySQL
- copy libqueue_engine.so to lib/mysql/plugin directory of MySQL (or to lib/plugin directory in case lib/mysql/plugin does not exists)
- run support-files/install.sql
- run the test suite
Installing from Source
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.)
- download the source distribution of Q4M from http://q4m.31tools.com/dist/
- untar the Q4M distribution
- run configure
- run make
- run make install
- run support-files/install.sql
- run the test suite
- --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|fdatasync|fsync|fcntl
- select disk synchronization method (default:yes). Fcntl is only avialable for Mac OS X, and is slow. If you have performance problems, changing this value would help.
- --enable-mmap
- use memory-mapped file for reading data (default:yes)
- --with-delete=pwrite|msync
- method for deleting rows, weather to use pwrite or write directly to mmaped file (default:pwrite)
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) $
SVN Repository of Q4M
SVN repository of Q4M is located at http://kazuho.31tools.com/svn/q4m/.