Skip to content

Latest commit

 

History

History

native

This is a simple tutorial on compiling libHornetQLibAIO.so

DEPENDENCIES

Make sure you install these packages:

- G++ (yum install gcc-c++ or aptitude install g++)
- Gcc (yum insall gcc or aptitude install gcc)
- autotools-dev (including libtool, automake, autoconf) (yum install autoconf libtool or aptitude install autotools-dev autoconf libtool)
- Make (yum install make or aptitude install make)
- libaio (0.3.106) (yum install libaio or aptitude install libaio)
- libaio-dev (yum install libaio-devel or aptitude install libaio-dev)
- JDK (full JDK)


LIBAIO INFORMATION

libaio is part of the kernel project. The library makes system calls on the kernel layer.

This is the project information:

Git Repository:  git://git.kernel.org/pub/scm/libs/libaio/libaio.git
Mailing List:    [email protected]


STEPS TO BUILD

1. Make sure you have JAVA_HOME defined, and pointing to the root of your JDK:

Example:
 
 $> export JAVA_HOME=/usr/share/jdk1.5.0_13
 
 
2. Call bootstrap. Bootstrap will call all the initial scripts you need
 $>  ./bootstrap
 
if you are missing any dependencies, autoconf would tell you what you're missing.
 

COMPILED FILE

The produced file will be under ./src/.libs/libHornetQLibAIO.so


PERF-DISK

There is a script on this directory called perf-disk. This script will tell you how many bytes per second your disk is capable of.

If you interrupt this script, you will see a file (/tmp/foo.dat) created on your disk, which is used to measure the performance.


DISKTEST

There is also an executable that performs direct libaio write emulating the same behaviour you should see on the Journal.

To verify what is your maximum disk throughput execute disktest

Usage: disktest<Platform> <directory> <number-of-files>

example:
chmod +x disktest
./disktest32 /tmp 20


At the end of the execution you will see something like:

Total time on write files = 198, Bytes/millisecond = 105916 

disktest is also compiled by our build scripts. disktest.cpp is also a sample of how to make calls into libaio.



DOCUMENTATION

The User Manual, chapter 38 (Libaio Native Libraries) will provide more details about our native libraries on libaio.



README IS A REQUIRED FILE

This file exists here as required by autoconf, or else we would have a compilation error.