Zmanda specializes in backup and recovery solutions. First they gave the world Amanda, and now they've given MySQL users a new reason to rejoice with the launch of Zmanda Recovery Manager (ZRM) for MySQL. I recently got to speak to Paddy Sreenivasan, the Vice President of Engineering and co-founder of Zmanda Inc., amidst his busy schedule, about what they do and why MySQL users should be jumping towards ZRM for MySQL for all their backup & recovery needs.
Running RPM based or other packaged MySQL Binary you may have a problem if you would like to rebuild binary for some reason - change some build settings, apply some third party patches or simply try latest snapshot (This time I was both applying patches for Innodb scalability and Vadim's patches to get proper slow query log). There are number of things as default paths and GCC build and link options you would like to keep the same as in original binary to minimize the change and finding this was not pleasant.
This time however Vadim advised me better solution - run mysqlbug script and get configure options from it. This is so easy.
After build is completed I simply take mysqld from sql directory and try it out as this is the only piece which I'm interested in. Quick to try, quick to rollback. You may run make install though if you need to but better to be ready to reinstall rpm after it
Back at our users conference in April we announced our pluggable storage engine program encouraging developers to extend MySQL with new innovative engines. Not only have we expanded our internal development with engines like Falcon, Cluster and others, but we're seeing significant new developments from the MySQL ecosystem. The pluggable storage engine architecture enables us to work with partners and with the community to reach a much broader range of needs with MySQL than we could on our own.
There are two new storage engines coming out of stealth mode. Both help strengthen MySQL in the rapidly growing Data Warehousing market, coming at …
[Read more]Unisys, which was the first large system integrator to build out an open source practice, has expanded its open source arsenal to include Alfresco, the open source alternative for Enterprise Content Management. From the press release:
The agreement enables Unisys to offer a team of Alfresco-certified consultants who can migrate, implement and deploy content and records management solutions based on open source software. Adding this team and capability rounds out an impressive Unisys worldwide set of ECM resources and solutions built around best-in-class ECM software products and providers.
The alliance also singularly positions Unisys, with its services-led solutions approach, to deliver highly scalable and available Alfresco implementations based on new open source or hybrid stacks. …
[Read more]Relational databases use indexes to speed up their performance usually due to the fact that their underlying storage is inherently slow (which has historically meant disk).
I've often created secondary indexes with MyISAM which aren't used in day-to-day operation but that are needed for debugging or exploration of the database.
For example, if you were to have a USER table with a handle (their account name) and an ID (the primary key) you could index by the handle but usually these are long strings and take up a good amount of CPU time to build the index and memory to cache the index.
It dawned on me the other day that this isn't necessary with MySQL Cluster (NDB). With MyISAM you need to use an index because a full table scan might take 10-20 minutes and hold back any INSERTs in the process which could become a big problem.
It also has secondary problems including confusing the OS level page cache and …
[Read more]NULL values are suprisingly hazardous for MySQL's way of optimizing IN subqueries. MySQL takes the '=' from '=ANY' and tries to push it down into the subquery, essentially changing IN subquery into EXISTS subquery. That is, a subquery like
outer_expr IN (SELECT inner_expr FROM ... WHERE subq_where)
is converted to:
EXISTS (SELECT 1 FROM ... WHERE subq_where AND outer_expr=inner_expr)
and then MySQL can use the pushed-down equality to limit number of rows it has to look through when running the subquery. This "pushdown" works as long as outer_expr and inner_expr can't be NULL or you don't care whether subquery result is NULL or FALSE (MySQL figures that you don't care if the subquery is a part of OR or AND expression in the WHERE clause).When you start caring about producing correct NULL or FALSE results, problems start coming from left and right, literally:
NULL problem in the right part
…
[Read more]I recently attended the MySQL Camp 2006 un-conference at Google's headquarters in Mountain View, California. This article is a high-level overview of the event. If you didn't go, you really missed something good. Go to the next one!
mysqlreport v2.7a has been released. It only fixes one bug: –host was completely ignored if a socket was available. Thanks to Sam for pointing this out to me.
Any bets on whether or not I remember to commit this patch?
For the record its the forth time I have written this field type
(I've also done MACADDR and UUID before as well).
mysql> create table foo (a ipv4);
Query OK, 0 rows affected (0.02 sec)
mysql> show create table foo;
+-------
+-----------------------------------------------------------------------
--------------+
| Table | Create Table |
+-------
+-----------------------------------------------------------------------
--------------+
| foo | CREATE TABLE `foo` (
`a` ipv4 DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------
+-----------------------------------------------------------------------
--------------+
1 row in set (0.00 sec)
mysql> insert into foo VALUES ("10.0.2.1");
Query OK, 1 row affected (0.00 sec)
…