Giuseppe Maxia spoke at the May 2009 Boston MySQL User Group about MySQL 5.4 and what it can do, the new performance features, etc.
Sorry for the (relatively) short notice, but I will be talking at Sun’s CommunityOne conference in San Francisco on June 1st.
I’ll be talking about, and demonstrating, the DTrace probes we have put into MySQL in a joint presentation with Robert Lor who will be doing the same for Postgres.
CommunityOne West Badge
Our presentation is on the Monday afternoon.
Check out the CommunityOne West Conference Site for more details and registration.
One of the hot mutexes in InnoDB is the buffer pool mutex.
Among other things this mutex protects the page hash where
pages reside when they are in the cache.
There is already a number of variants of how to split out
this mutex. Here follows a short description of the various
approaches.
1) Google v3 approach
Ben Hardy at Google took the approach of using an array of
mutexes (64 mutexes) and this mutex only protects the
actual read, insert and delete from the page hash table.
This has the consequence of a very simple patch, it means
also that when the block has been locked one has to check
that the owner of the block hasn't changed since we didn't
protect the block between the read of the hash and the
locking of the block, thus someone is capable of coming in
between and grabbing the block for another page before we
get to lock the …
For whatever reason, let’s look at “Total Physical Source Lines of Code” from a recent mysql-6.0 tree (and PBXT from PBXT source repo):
See the spreadsheet here.
Raw data:
Blackhole 336
CSV
1143
Archive
2960
MyISAM
34019
PBXT
41732
Maria
69019
InnoDB
82557
…
The MySQL Query Analyzer ("Quan") is designed to save development time on query coding and tuning by expanding on all of the good things found in the Slow Query Log, SHOW PROCESSLIST; EXPLAIN plan, and 5.1 profiler all with no dependence of any of these atomic things. To this end, we integrated Quan into the Enterprise Monitor so developers can monitor security, performance, availability AND all of their queries across all their MySQL servers from a single, consolidated view.
The MySQL manual for str_to_date states:
If str contains an illegal date, time, or datetime value,
STR_TO_DATE() returns NULL. An
illegal value also produces a warning.
Surely "I'm_not_a_valid_date" is not a valid date, time or
datetime value.
mysql> select str_to_date("I'm_not_a_valid_date","I'm_not_a_valid_date");
+------------------------------------------------------------+
| str_to_date("I'm_not_a_valid_date","I'm_not_a_valid_date") |
+------------------------------------------------------------+
| 0000-00-00 |
+------------------------------------------------------------+
1 row in set (0.00 sec)
The problem here is that values in the format string which are
not preceded by the percent sign (%) are treated as constant
characters which must match the input string exactly. Normally
these characters are used as delimiters. For example, …
My colleague Lenz might have forgotten to post before he
disappeared on a well-deserved vacation but we've enabled Russian
as a choice in PlanetMySQL. Feel free to start submitting your
Russian language blogs.
Russian Language PlanetMySQL: http://ru.planet.mysql.com
New feed submissions: http://ru.planet.mysql.com/new
We haven't completely translated all the strings yet (that's my
fault, I need to stringify the vote stuff) but we're getting
there!
(EDIT: LenZ is not on vacation... in fact he is at PHPDay2009 in
Verona, Italy... sorry LenZ)
Keep it. Make sure it gets correctly positioned in the coming months.
It appears that with the Oracle acquisition, the reason-to-exist for Falcon is regarded as gone (a non-Oracle-owned InnoDB replacement), previously seen as a strategic imperative - much delayed though.
But look, each engine has unique architectural aspects and thus a niche where it does particularly well. Given that Falcon exists, I’d suggest to not just “ditch it” but have it live as one of the pluggables. What Oracle will do to it is unknown, but Sun/MySQL can make sure of this positioning by making sure in the coming months that Falcon works in 5.1 as a pluggable engine, perhaps also creating a separate bzr project/tree for it on Launchpad.
Then the good work can find its way into the real world, now.
One interesting and useful paper on real-world concurrency by Bryan Cantrill and Jeff Bonwick.
Abstract: In this look at how concurrency affects practitioners in the real world, Cantrill and Bonwick argue that much of the anxiety over concurrency is unwarranted. Most developers who build typical MVC systems can leverage parallelism by combining pieces of already concurrent software such as database and operating systems (i.e., concurrency through architecture), rather than by writing multithreaded code themselves. And for those who actually must deal with threads and locks, the authors include a helpful list of best practices to help minimize the pain.
One interesting and useful paper on real-world concurrency by Bryan Cantrill and Jeff Bonwick.
Abstract: In this look at how concurrency affects practitioners in the real world, Cantrill and Bonwick argue that much of the anxiety over concurrency is unwarranted. Most developers who build typical MVC systems can leverage parallelism by combining pieces of already concurrent software such as database and operating systems (i.e., concurrency through architecture), rather than by writing multithreaded code themselves. And for those who actually must deal with threads and locks, the authors include a helpful list of best practices to help minimize the pain.