Today I created a patch that builds on the Google v3
patch where I added some ideas of my own and some ideas
from the Percona patches. The patch is here.
Here is a reference to the patch derived from the Google
v3 patch.
Here is a reference to my original patch (this is
likely to
contain a bug somewhere so usage for other than
benchmarking
isn't recommended).
So it will be interesting to see a comparison of all those
variants directly against each other on a number of benchmarks.
In the Google v3 patch the buffer pool mutex have been
split into an array of buffer page hash mutexes and a
buffer flush list mutex and the buffer pool mutex also
remains.
I derived the patch splitting out the buffer flush list
mutex from the Google v3 patch against the MySQL 5.4.0
tree. The patch is here.
I derived a lot of prototype patches based on MySQL 5.4.0
and Dimitri tried them out. This particular patch seems
to be the most successful in the pack of patches we
tested. It had a consistent positive impact.
The main contribution of this patch is twofold. It
decreases the pressure on the buffer pool mutex by
splitting out a critical part where the oldest dirty
pages are flushed out to disk. In addition this patch
also decreases the pressure on the log_sys mutex …
This is the translation of an article from my german language blog. It is
not a literal translation, but has been amended and changed a bit
to take more recent information into account.
It started out as a discussion within the german language MySQL
group in USENET. There the eternal question came up why
phpMyAdmin gets no love at all from the helpers and regulars in
that group. My answer was:
phpMyAdmin (PMA) like many other GUI tools for MySQL has a number
of limitations. For a web tool such as PMA these come from its
operating principles and can hardly be changed. But let's start
at the beginning:
In MYSQL the connection is a special context or scope for many
things. At least the following things are part of the connection
scope:
- Transactions. A disconnect implies a ROLLBACK. …
This Wednesday (May 20, 2009) Andrey Hristov and Ulf Wendel from the MySQL Connector development team are going to talk about the MySQL Connector for C++ at 10:00 AM PT. Andrey and Ulf are planning to talk about the architecture, API, portability, support for: buffered/unbuffered result sets, prepared statements, stored procedures; and the planned features for Connector/C++ 1.0.6 GA.
Plan to attend if you are a C++ developer working [or planning to work] on MySQL database applications. Anyone can attend this webinar for free, and it may last for about 45 minutes. Register at the following location to receive further instructions on how to join the web conference:
…
[Read more]
While I hope the MySQL Proxy never crashes, it will happen, there
will be some strange (or maybe not so strange) usage or workload
and it will die.
To avoid this, you could decide not to use it, or maybe you could
use something like Linux HA to have more than one MySQL Proxy running
at all times. Or you could use one of the new features that comes
with the version 0.7.0.
What is it?
We now have a --keepalive option. As the name indicates, if the
mysql proxy process dies/crashes, it will come back up in a few
seconds (less than 5 seconds).
How does it work?
If you start the MySQL Proxy with the keepalive option, there
will be two processes with the same name. One will be very small,
about 600KB. and then you …
This Wednesday (May 20, 2009) Andrey Hristov and Ulf Wendel from the MySQL Connector development team are going to talk about the MySQL Connector for C++ at 10:00 AM PT. Andrey and Ulf are planning to talk about the architecture, API, portability, support for: buffered/unbuffered result sets, prepared statements, stored procedures; and the planned features for Connector/C++ 1.0.6 GA.
Plan to attend if you are a C++ developer working [or planning to work] on MySQL database applications. Anyone can attend this webinar for free, and it may last for about 45 minutes. Register at the following location to receive further instructions on how to join the web conference:
…
[Read more]This Wednesday (May 20, 2009) Andrey Hristov and Ulf Wendel from the MySQL Connector development team are going to talk about the MySQL Connector for C++ at 10:00 AM PT. Andrey and Ulf are planning to talk about the architecture, API, portability, support for: buffered/unbuffered result sets, prepared statements, stored procedures; and the planned features for Connector/C++ 1.0.6 GA.
Plan to attend if you are a C++ developer working [or planning to work] on MySQL database applications. Anyone can attend this webinar for free, and it may last for about 45 minutes. Register at the following location to receive further instructions on how to join the web conference:
…
[Read more]mysql [localhost] {msandbox} ((none)) > select length(crc32(3)) * 8, bit_length(crc32(3)); +----------------------+----------------------+ | length(crc32(3)) * 8 | bit_length(crc32(3)) | +----------------------+----------------------+ | 80 | 80 | +----------------------+----------------------+ 1 row in set (0.00 sec)
|
In Montreal with Dups and Kaj, we were looking at a number of technical problems, and each one of you got something valuable from the meeting. One of Kaj's problems was a collection of Wordpress blogs infested by spam. Kaj has done something already but the situation was critical. Before applying Akismet to his comments, he needed to cleanup the majority of the spam in same easy way. |
It is not rocket …
Seems like nowadays InnoDB crash recovery is much funnier. Please allow me to show you something:
while (buf_pool->n_pend_reads >= recv_n_pool_free_frames / 2) { os_aio_simulated_wake_handler_threads(); os_thread_sleep(500000);
Translation – if there’re more than 128 outstanding I/O requests, sleep for half a second. Hehehe. Optimized for floppies!