libeatmydata is a small LD_PRELOAD library designed to (transparently) disable fsync (and friends, like open(O_SYNC)). This has two side-effects: making software that writes data safely to disk a lot quicker and making this software no longer crash safe.
DO NOT use libeatmydata on software where you care about what it stores. It’s called libEAT-MY-DATA for a reason.
I’ve recently been migrating things over to git from the old BZR repository.
Grab the latest by just doing
git clone https://github.com/stewartsmith/libeatmydata.git - although most Linux distros package libeatmydata as eatmydata
Download: The launchpad download page has all the latest libeatmydata downloads.
If installing from source, do the following:
git clone https://github.com/stewartsmith/libeatmydata.git(or extract from source tarball)
autoreconf -i(if building from git only)
sudo make install
Once libeatmydata is installed (either from a package or from source like above, simply run the eatmydata wrapper script:
I use it primarily on Linux. Others have reported success on MacOS X, OpenSolaris, Solaris, Debian GNU/kFreeBSD. Patches welcome!
Running mysql-test-run –do-test=innodb without/with libeatmydata:
This saves us about a third of the total runtime!