Saturday, February 20, 2010

Time to use -Werror

This is in 5.1.44. It is easy to make mistakes like this in a large and rapidly changing code base. Why not compile with -Werror to catch the problem?
double Item_cache_decimal::val_real()
{
DBUG_ASSERT(fixed);
double res;
if (!value_cached && !cache_value())
return NULL;
my_decimal2double(E_DEC_FATAL_ERROR, &decimal_value, &res);
return res;
}

Monday, February 15, 2010

Save MyISAM

What is the future for MyISAM? MySQL has invested a lot in storage engines over the past few years (Falcon, Maria) and it isn't clear that anything will come from those efforts. A lot of effort has been put into InnoDB and much will come from that. There has not been a significant effort to improve MyISAM (other than hot backup). What could be done with it?
  1. Support undo. The manual claims that MyISAM supports atomic operations. They must use a different meaning for atomic. When a long-running insert, update, delete or replace statement is killed it remains half-done for MyISAM. This could be fixed by supporting undo for MyISAM. I will guess that MySQL can reuse some of the code they added for hot backup to implement undo.
  2. Reduce mutex contention. MyISAM could use multiple key caches per table as MPAB has proposed.
MyISAM performance matters even when you don't explicitly create MyISAM tables. MyISAM is used for some implicit temp tables created to evaluate ORDER BY and GROUP BY clauses.

    Wednesday, February 3, 2010

    Dude, where is my link?

    What happened to the obvious link from mysql.com to dev.mysql.com? Did it move here or here?
     
    Creative Commons License
    This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.