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!
Though slides for my MySQL Conference talks were on the O’Reilly website, I placed them in my talks page too, for both dtrace and security presentations.
I also gave a lightning talk about mydumper. Since my original announcement mydumper has changed a bit. It supports writing compressed files, detecting and killing slow queries that could block table flushes, supports regular expressions for table names, and trunk is slowly moving towards understanding that storage engines differ :)
I’ve been using mydumper quite a lot in my deployments (and observing 10x faster dumps). Now, the sad part is how to do …
[Read more]