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.
q4m-0.2.tar.gz (source)
q4m-0.2-linux-i386.tar.gz (linux; i386)
q4m-0.2-linux-x86_64.tar.gz (linux; x86-64)
q4m-0.2-linux-i386.tar.gz (linux; i386)
q4m-0.2-linux-x86_64.tar.gz (linux; x86-64)
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
- --libdir=mysql-lib-dir
- set the library directory of your MySQL. It is in most cases either lib/mysql or lib subdirectory of MySQL
- --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.
- --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.
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) $