Yesterday, over at my personal blog, I blogged about the impact of the MySQL slow query log. Since
we’re working on Percona Server 5.6, I did wonder if this was a
good opportunity to re-examine how we could provide slow query
log type functionality to our users.
The slow query log code inside the MySQL server does several
things that aren’t good for concurrency on modern systems. For
starters, it takes a mutex while both doing formatting of what to
write and while doing the write(2) system call itself. This is,
in fact, entirely unneccesary.
From the man page for the write system call:
If the file was open(2)ed with O_APPEND, the file offset
is first set to the end of the file before writing. The
adjustment of the file offset and the write operation are
performed as an atomic step.
So we can …
[Read more]