MySQL InfiniBand Transporter





Native InfiniBand Support for MySQL Cluster

Introduction:

Database systems are an integral part of today's IT infrastructures. The handling of the rapidly growing data sets is a demanding challenge for the used database systems. Special purpose computers are quite expensive to procure. Thus, as in the HPC arena, the usage of networked commodity computers (Clusters) is a promising way to save costs. These clusters can be used to share the amount of data as well as to split the load requirements.
MySQL is one of the most popular open source database systems and offers under the name MySQL Cluster such a system as described above. MySQL Cluster provides an interface to implement arbitrary interconnects as the networking foundation for you clustered database.
We implemented a so called MySQL Cluster Transporter for native InfiniBand to provide low latency and high bandwidth.
Here you can see some results from the testReadPerf Benchmark included in MySQL.

Processing speed measured with testReadPerf

Average response time measured with testReadPerf


System requirements:

  • Tested with MySQL-5.0.15
  • Mellanox Verbs API

Download:

You can download the InfiniBand Transporter diff file here as free software under a BSD license.
There is also an diff file for an RDMA optimized Transporter included but it isn't bugfree yet.

Usage:

Patch the MySQL distribution with one of the diff files above. Then make in the MySQL root directory:
	autoreconf
	./configure --prefix= --with-ndbcluster --with-ndb-ib= --with-ndb-test --enable-thread-safe
	make all
	make install
Then, you can configure the cluster. Here you can find an example config.ini file.

References:

Dirk Dunger
MySQL Cluster mit nativer InfiniBand Unterstützung (german)
Diploma thesis at Chemnitz University of Technology.