Skip directly to content

Libdrizzle News

Subscribe to Libdrizzle News feed
Updated: 37 min 18 sec ago

Official Drizzle Blog: Drizzle source tarball 2011.08.23 has been released

Tue, 08/02/2011 - 18:38

Drizzle source tarball, version 2011.08.23 has been released.

We are working hard to get ready for Drizzle 7.1 beta.  Please feel free to help us out by giving things a spin : )

NOTE:  HailDB engine has been removed from the tree.

In this release:

  • Cleanup of build and test system
  • Removed haildb engine from tree
  • Updated and improved replication documentation
  • PBMS fixes to work with gcc 4.6 + code cleanup

The Drizzle download file can be found here

Categories: Libdrizzle News

MySQL Performance Blog: Percona turns 5 years old

Mon, 08/01/2011 - 21:46

It’s August 1st, 2011, and five years ago on or about this date (who can remember clearly?) Peter Zaitsev and Vadim Tkachenko founded Percona. What’s happened in the last five years?

We’re a privately held, privately funded company of over 50 employees distributed globally, serving 1200 customers worldwide with support, consulting, training, and engineering services for MySQL. Our revenue isn’t public, but we’re proud that we’re able to keep all those people busy and help provide for their families. We’ve contributed significantly to improved performance and advanced functionality in the MySQL server and InnoDB storage engine, and created the first and only opensource hot-backup tool for InnoDB, as well as many other open-source software engineering projects.

We’re happy that we’ve achieved this much, but our future plans are ambitious too. We’d rather first lay eggs and then cackle, than the other way around. So watch this blog for news about what’s next from Percona.

A heartfelt thanks to all of Percona’s customers, without whom there’d be no company. And likewise, to our team members. To the MySQL community, including MariaDB and Drizzle; and the business ecosystem and third-party providers, both closed and open source. Finally, much gratitude is due to Oracle, and also to MySQL’s previous stewards: Sun Microsystems, MySQL AB, and of course Monty Widenious and David Axmark, and Heikki Tuuri, who started it all so many years ago.

Here’s to the next five years.

Sincerely,

Peter Zaitsev, CEO
Vadim Tkachenko, CTO
Baron Schwartz, Chief Performance Architect
Tom Basil, COO
Bill Schuler, VP of Sales
Espen Braekken, VP of Global Services

Categories: Libdrizzle News

Daniel Nichter: What Drizzle needs

Sun, 07/31/2011 - 20:51
Drizzle 7 2011.03.13 was a GA release but far from a production-ready database server, in my opinion. I really like Drizzle, and I believe in its future, so I’m going to criticize what I think are its weak points because as Charles Kettering said, “A problem well stated is a problem half solved.” 1. Authentication [...]
Categories: Libdrizzle News

MySQL Performance Blog: Percona Server 5.1.57 with Galera 0.8.1

Fri, 07/29/2011 - 01:03

Codership team announced availability of MySQL/Galera 0.8.1, which is minor release, but actually it has bunch of improvements that makes Galera replication more user friendly (there are many bugs fixed, reported by me personally, what annoyed me a lot).

As part of my evaluation activity I ported MySQL/Galera 0.8.1 to Percona Server/Galera 0.8.1 and you can get source code on Launchpad.

I appreciate the fact that not everybody has fun from compiling source code (hint, hint for Drizzle developers), that is why I also made binaries for RHEL 6.1 / Oracle Linux 6.1
http://www.percona.com/downloads/TESTING/Galera/percona-5.1.57-galera-0.8.1.tar.gz

This is ABSOLUTELY NO production quality release, but you are welcome to play with it.

Categories: Libdrizzle News

Monty Taylor: Two subjects are one too many for a blog post

Sat, 07/23/2011 - 16:50

It's my turn to apologize. Andrew and I apparently really angered people by being upset about something last week, and for that, as he already has, I apologize. I don't like making people angry or upset.

I believe Henrik made an excellent point, which is that for various different reasons, there are those of us who were upset when Oracle bought MySQL and yet felt complelled to not communicate this publically. To be honest, emotions related to a business transaction ARE a little weird, so I'm not sure it's completely odd that people don't know how to appropriate express them. But as Henrik rightly pointed out, the Oracle takeover has been the elephant in the room (sorry Postgres - it's not you) and we've all been spending a good amount of energy NOT talking about it, because talking about it only leads to people getting upset. As I said before, I don't like making people upset, so I'll try to keep my comments there to myself for the most part.

I'd also like to apoligize for writing a blog post with too many thoughts. I only included the discussion of the naming as what I thought was a humorous take on the backstory of why I was writing in the first place, I see the folly of my ways there. In the future, if what I want to talk about is annoyance at people eye-rolling at my passion for Open Source, I will endeavor to only talk about that. That way, with a single topic post, when it's referenced other places, there will be no confusion.

To sum up, I am sorry for causing any confusion or any anger or for making anyone upset.

Categories: Libdrizzle News

Mark Atwood: Regarding Autotools, and attempts to replace it

Thu, 07/21/2011 - 13:46
In the world of software development on Linux, especially in the open source world, there is a set of packages called "autotools", which abstracts and manages portability between compilers and other aspects of the software build environment. Nobody likes it. In fact, most people who use it hate it. There are many attempts to replace it.

And the problems with autotools are getting worse, because it itself was never designed to have cleanly portable control files between versions. Back when most everyone just FTPed down a tarball, and then ran the prebuilt ./configure, it worked pretty well. Now that people pull a projects raw repo over SVN, BZR, or GIT, and then have to run liptoolize, aclocal, automake, autoconf, etc themselves, and who knows what version of autotools is locally installed, all hell breaks loose.

With respect to all the autotools replacements, such as cmake, Ant, etc, and all the other ones mentioned in Eric Raymond's recent blog post: they ALL are some multiple combination of horribly slow, enforce their own special "one true way" of laying out source trees, are specific to what languages they will deign to handle, have abysmally bad error messages when there is a problem (and being worse than autotools in this respect is an amazing achievement), require the installation of a JVM and a huge pile of buggy poorly documented class files, require the installation of a huge pile of buggy poorly documented Python modules, require the installation of a huge pile of buggy poorly documented Perl modules, cannot intelligently detect and handle optional build dependencies, cannot cross compile, cannot build out of a read-only source tree, cannot build out of tree, and/or cannot build shared object files.

I wish to gods and monsters that this was not true, but it is. And until the writers of the competing build chain systems understand why all this stuff is important, and are willing to support it, autotools will stick around, and people will continue to use it.

This is not to say that it cannot be used better. One of Monty Taylor's herculian tasks the Drizzle project has been pandora build, which is a refactoring and rewrite to the years of cargo-cult accumulated cruft that has infested most autotools based open source projects.
Categories: Libdrizzle News

Official Drizzle Blog: Drizzle source tarball 2011.07.22 has been released

Wed, 07/20/2011 - 19:21

Drizzle source tarball, version 2011.07.22 has been released.
In this release:

  • Continued code refactoring (thanks again to Olaf van der Spek)
  • Multi-master replication is back
  • Various bug and documentation fixes

The Drizzle download file can be found here

Categories: Libdrizzle News

Monty Taylor: Oracle do not, in fact, comprise the total set of MySQL Experts

Fri, 07/15/2011 - 18:47

There's been quite the thread on Google+ (my how technology changes quickly...) over a comment Andrew Hutchings made on an Oracle MySQL Blog Annoucment for their new "Meet The MySQL Experts" Podcast. I should have ignored it - because I honestly could not give two shits one way or the other about Oracle or any podcasts that they may or may not decide to broadcast. But to be straightfoward about it ... the title of the podcast is ludicrous. In case you were wondering, "The" in English is the definite article and implies a singular quality to the thing that it describes... effectively implying that Oracle's MySQL Experts are, in fact, the only MySQL Experts. We all know that's false- Percona and SkySQL are both full of experts as well - likely have more MySQL Experts per-capita than Oracle does, as if a per-capita measure were important. Of course, as Matt Montgomery pointed out, there is absolutely no reason for Oracle to point people toward's someone else's experts ... and that's fine. It's just that there are other ways to phrase the title that still assert Oracle's product and trademark and which are not, from a purely grammatical sense, lies. "Meet Our MySQL Experts" or even "Meet MySQL Experts" or "MySQL Experts Talk to You" or "Hey! Look! MySQL Experts are going to drink Black Vodka!" (ok, probably not the last, since that would point people to MariaDB - but it is at least a true statement... MySQL Experts WILL, inevitably, drink Black Vodka)

As I said earlier though - I don't really care about Oracle... they have no impact or meaning in my life... so if they want to either play silly grammatical games OR be unaware as to the actual meaning of words in English - that's fine. But then Matt Lord said something that really pissed me off:

 Any religion and its dogma can be problematic in the real world, whether or not it involves any kind of deism or not. :)

Too often people confuse FOSS with the cathedral and the bazaar, shared development, shared ownership and other high minded ideals and frameworks. In the end, it's a trademarked and in-house developed product that is released as FOSS. It's not a cross, don't try to impale yourself on it. :D

It's not that big of a deal people! We're surrounded by beauty and tragedy, this is just work.

Now, first of all, I like Matt Lord. And with that in mind, I have the following to say:

I am fully in support of trademarks and trademark protection. I am fully in support of people making a living doing what they do - especially if they are doing it by providing a service. I recognize that Oracle owns the trademark MySQL and can do with it as they see fit.Oracle does, in fact, own the product called MySQL, with all of the rights that go along with that... and honestly I do not think they are being bad shepherds of that product. Whether I like Oracle or not, it is undeniable that they are now a part of the MySQL picture, and I say good for them.

The reason I get pissed off is the attitude that it's not that big of a deal. The MySQL trademark and the business around MySQL is a BIG DEAL to Oracle, and if I were to try to put forward the opinion that they should just, you know, stop caring about it, people would think I was crazy. Why is it so unreasonable then for me to care about the portion of this that I happen care about? Why is it not ok for me to NOT be in this for the money, for me to NOT be in this just as work?

I think it might be worthwhile reading The Cathedral and The Bazaar again - because it describes the two different models you are talking about rather than being a single entity that one might confuse FOSS with. The Cathedral, as described in the book, is the model traditionally taken by the MIT and Gnu-derived projects,  (although emacs has a more open dev model now) and is currently also employed by Oracle on MySQL. In fact, it has been the MySQL model for quite some time - well before Oracle entered the picture. It involves a mostly closed dev process from which code drops are made unannounced and at the whim of the folks in the Cathedral. It's not de-facto a bad thing, it's just a description of a process. With the Cathedral, ironically enough, it is the ideals of Free Software (that the software itself be free) that are more important and that an open development process is less important. The Bazaar, on the other hand, is the process Linux uses - where all of the development is done in a distributed manner and in the open. The assertion in the book, and one of the philosophical differences between Free Software and Open Source (which makes the use of FLOSS or FOSS completely ludicrous) is that having an open development process is more valuable than just the software being free, although the by-product of an open development process is that your software sort of has to be Open Source. The irony here that I mentioned earlier is that, of course, Oracle approaching its Free Software offerings via the Cathedral model gives it none of the benefits you would think a corporation might want from an arrangement such as Eric Raymond's Open Source Bazaar model might afford them, and instead themselves choose to operate under a set of zealous ideals much more akin to Richard Stallman.

I'm sure that analogy is not pleasing to either Stallman or Ellison.

Although I understand that the ideals behind Free Software may not be important to you, I do not think that there is any constructive reason in the context of a discussion about Oracle's business practices asserting trademark ownership to imply me subscribing to those ideals is silly. It would be very difficult to accurately describe the success of any of the currently valuable pieces of Free Software as not due in any large part to those of us who routinely impale ourselves on the cross of Free Software. MySQL AB's business strategy itself, which involved attaching FUD to discussions of the GPL to incite people to buy licenses that they quite simply did not need ... (a perfectly valid if devious business strategy) was predicated on the existence of such an enormous shit-ton of users that they could focus on converting a percent of a percent of those users into customers and still wind up selling the business for a billion dollars. That shit-ton of users grew out of the emergence of LAMP as the dominant pattern for the Web. LAMP arose because it was technically much better than any of the alternatives... and the pieces of LAMP became dominant because of the work of a set of people who do, in fact, care about the ideals of either Free Software or Open Source.

You seem to be quick to put things in business perspectives and to remind people that it's ok for Oracle to do business. I agree. It's ok. But we wouldn't have had MySQL to work in the first place for if it wasn't for a bunch of people for whom it was not just a job, for whom it was not just work and for whom the ideals you are looking down on are not silly things.

So disagree with me all you want to about the effects of Oracle's choices on the health of MySQL. Defend Oracle all you want to on whatever terms you want, in whatever way you want to define a set of values such that they are positive. I'm right there with you on some of it, I might disagree with you on other bits, and that's just life and how we go on being people ... but please do not smirk and snicker and roll your eyes and tell me that the things that I think are important are not. I assure you, I find them to be very important and I do not believe I am the only person who does.

Categories: Libdrizzle News

Brian Aker: MySQL, Enum, skip the if()

Thu, 07/14/2011 - 21:46

There are a number of different, and very valid patterns for handling objects of different types. This is not about that, this is about how to not mix a pattern.

A very, very common bit of code that is in MySQL (and can therefor be found in Drizzle):

if ((cached_result_type == DECIMAL_RESULT) or (cached_result_type == INT_RESULT))

{

do_something();

}

else

{

do_something_else();

}

DECIMAL_RESULT and INT_RESULT are each possible result types.

Are there more?

Why yes there are. In the above bit of code the original author thought about two cases, and assumed all other cases could just be lumped into the else.

I’ve fixed dozens of bugs over the last few years based on similar assumptions.

What assumptions? 

1) The no one would ever add another result type.

2) That no other bug fix might create a case where the else no longer held true.

3) That the else was ever correct in the first place.

Without changing the entire design, what would be better?

Use a switch and make a case for each enum. That way if a new enum is added anywhere in the code where logic is required based on the enum you will catch it when you compile (assuming you have your warning flags turned up in your compiler). 

Also? Skip “default”. Unless you are taking something off the wire/file/etc you can skip default because you aren’t going to end up with an invalid enum. If you are doing one of these actions?

Sanitize the data first, don’t just cast it.

Categories: Libdrizzle News

Brian Aker: MySQL, Enum, skip the if()

Thu, 07/14/2011 - 14:46

There are a number of different, and very valid patterns for handling objects of different types. This is not about that, this is about how to not mix a pattern.


A very, very common bit of code that is in MySQL (and can therefor be found in Drizzle):


if ((cached_result_type == DECIMAL_RESULT) or (cached_result_type == INT_RESULT))


{


do_something();


}


else


{


do_something_else();


}



DECIMAL_RESULT and INT_RESULT are each possible result types.


Are there more?


Why yes there are. In the above bit of code the original author thought about two cases, and assumed all other cases could just be lumped into the else.


I’ve fixed dozens of bugs over the last few years based on similar assumptions.


What assumptions? 


1) The no one would ever add another result type.


2) That no other bug fix might create a case where the else no longer held true.


3) That the else was ever correct in the first place.


Without changing the entire design, what would be better?


Use a switch and make a case for each enum. That way if a new enum is added anywhere in the code where logic is required based on the enum you will catch it when you compile (assuming you have your warning flags turned up in your compiler). 


Also? Skip “default”. Unless you are taking something off the wire/file/etc you can skip default because you aren’t going to end up with an invalid enum. If you are doing one of these actions?


Sanitize the data first, don’t just cast it.

Categories: Libdrizzle News

Mark Atwood: SQL identifier case, Unicode case, and boost::to_upper, all in a fight that nobody will win

Wed, 07/13/2011 - 16:21
The SQL standard says that table and row names are case insensitive. Drizzle table names are in Unicode with UTF8 encoding. boost::to_upper et al mangles UTF8 case. Down this path there is going to be a lot of pain. My own inclination is to tell the SQL Standard to realize that its 2011, no longer 1961, and break all the apps that are lazy about identifier case, but other people will probably disagree.
Categories: Libdrizzle News

Mark Atwood: Multi Master Replication is back in Drizzle

Wed, 07/06/2011 - 20:51
This last March, David Shrewsbury put together a basic implementation of multi-master replication into DrizzleDB link. We were able to actually merge it with the mainline trunk, but then had to remove it until we had refactored and fixed more things. Today, we were able to put it back in.

It's worth reading Shrew's original blog posts, and then trying it out.
Categories: Libdrizzle News

Official Drizzle Blog: Drizzle source tarball 2011.07.21 has been released

Wed, 07/06/2011 - 15:04

Drizzle source tarball, version 2011.07.21 has been released.
In this release:

  • Continued code refactoring (thanks again to Olaf van der Spek)
  • Continued work on the stored procedure interface (yay Vijay!)
  • Improvements to the Storage Engine API tester from Stewart
  • Various bug fixes

The Drizzle download file can be found here

Categories: Libdrizzle News

Baron Schwartz: Measuring open-source success by jobs

Tue, 07/05/2011 - 00:15

It’s notoriously hard to measure the usage of open-source software. Software that’s open-source or free can be redistributed far and wide, so the original creators have no idea how many times it’s installed, deployed, or distributed. As a proxy, we often use downloads, but that’s woefully inadequate.

I’ve recently begun trying to figure out how many job openings are mentioning various open-source projects. I think that this might be a better metric because it’s driven by the end result (usage), rather than intermediate processes (downloads, etc). I think that it’s likely that usage and demand for skilled people is somewhat realistically related.

To be more concrete, I’ve been watching RSS feeds from job posting aggregators for several alternative versions of MySQL: Percona Server, MariaDB, and Drizzle. It appears that Percona Server is by far the most in-demand in terms of job skills. (I haven’t seen a job posting for the others at all, so far.)

On the other hand, my sample is skewed; I think Percona Server is better known in America, but MariaDB might be more visible in Europe. And I’m not sure that the sample data set is large enough to be statistically significant. Percona Server jobs are utterly dwarfed by MySQL jobs.

There are other flaws in my method: some software doesn’t really need as much manpower to run as others. I would say that given an equal number of WordPress and Drupal websites, more of the Drupal websites are going to be trying to hire experts to manage their sites. So nothing is apples to apples.

What do you think about this metric and its merits or drawbacks? Is there a better way to figure out how much adoption a project really has?

Related posts:

  1. Does MySQL really have an open-source business model?
  2. What does an open source sales model look like?
  3. Open-source database developer mailing lists
  4. Making Maatkit more Open Source one step at a time
  5. MySQL: Free Software but not Open Source

Categories: Libdrizzle News

Pythian Group: Log Buffer #227, A Carnival of the Vanities for DBAs

Sat, 07/02/2011 - 06:24

An ideal summer day is when the sun is shining, the warm sunshine refreshes your body, the light breeze becomes naught with your hair, the birds sitting on intoxicated leaves smile at you, and you to top all of that you get the latest hot issue of the Log Buffer. Yes to put cherry on your cake, Log Buffer #227 is here.

Oracle:

David Kurts tells us about applying Hints to Objects inside Database Views.

Jonathan Lewis answers another burning question on on multi-column bitmap indexes and the inability of Oracle to create a bitmap index join when (to the human eye) the strategy was an obvious choice.

A blog post about the mapping of Physical Disk, LUNS, Cell Disks, and Grid Disks in Exadata by lovely Oracle.

Assume that you had a detail table that contained several attributes for each of the unique key values.  How would one go about finding all of the unique key values that share the same set of attributes? Charles Hooper answers.

Randolf Geist gives a short heads-up note regarding a bug that obviously has been introduced with 11.2.0.2.

SQL Server:

Mark Broadbent has posted a tribute to the blogger Jen Stirrup, how has just been recognized by Microsoft by their MVP Award program and become a Most Valuable Professional.

ROW_NUMBER() can be used to generate a sequential number for each row in the result set. Unlike RANK() and DENSE_RANK(), ROW_NUMBER() in case of ties it does not generate same number, it simply ignores the tie and generates sequential numbers for each of the tied rows. Vishal gives an example.

Jason Brimhall is giving a interesting spin in the realm of SQL statistics.

Juneau is the code name for the new SQL Server Development Tool (SSDT), to be released along with the next version of SQL Server, codenamed “Denali“. James Serra has an interest overview.

Wes Brown is looking at assembling a basic data dictionary from the column level meta data stored in SQL Server.

Pradeep Adiga sheds light on SavetoSQLServer method error in his blogpost with a story to tell.

MySQL:

Mark Atwood shares his valuable thoughts on node.js and libdrizzle.

Michael “Monty” Widenus blogs about his last MariaDB 5.3 feature before they go beta and that is Progress reporting for ALTER TABLE, LOAD DATA INFILE etc.

In order to optimally size the amount of RAM to allocate to a set of new machines for running MTR, Jonathan Perkin ran a few tests to check the memory usage of an MTR run for mysql-trunk and cluster-7.1.

By far, the most popular way for PDI users to load data into LucidDB is to use the PDI Streaming Loader. Nicholas Goodman has a good blog post about this.

Haidong Ji has presented a comparison of HandlerSocket and mysql client libraries with Python.

Happy Summer !!!

Categories: Libdrizzle News

Mark Atwood: Thoughts on node.js and libdrizzle

Fri, 07/01/2011 - 15:55
Today I was chatting with a technical friend, and she mentioned that she has a "todo" of writing a decent node.js driver for MySQL. A bit more chatting back and forth, and http://nodejsdb.org/db-drizzle/ was discovered. It was written to use libdrizzle and drizzled, but since libdrizzle can talk to MySQL, it should work for her needs as well.

I would love to see some work done on how well libmysql+mysqld, libdrizzle+mysqld, and libdrizzle+drizzled handle highly concurrent asynchronous event-oriented workloads such as those generated by all these new node.js applications.

I suspect that all sorts of surprising bugs will be discovered.

Please help us discover those bugs.
Categories: Libdrizzle News

Mark Atwood: Textual configuration has comments, GUIs dont.

Mon, 06/27/2011 - 21:58
I have been running the test and merge process for DrizzleDB using Jenkins.

Jenkins is a pretty standard Java-based web app. The configuration settings are stored in XML files, and that configuration is manipulated using "easy to use" Web GUI.

The "old skool" UNIX-like way to keep configuration settings is in a text file, which is edited with an ordinary text editor, and is read by the program daemon on start or SIGHUP. This is considered "scary", "hard to learn" and "hard to use" by novices.

There is a big problem with GUI-only managed configuration, text file configuration has a major advantage.

I did not set up the Jenkins server or nodes. I am not the only person with admin access to it. Several other people have set it up, set up various projects in it, and added new nodes and new types of nodes.

As I work on it, and look at the existing configuration, I often find things that are "surprising", things that make me say "Is that right? That can't be right? Can it?". And then I have to spend time digging into it. Something it IS right, for reasons I didn't know at that moment. Sometimes it used to be right, but isn't necessary any more. And sometimes, it just wasn't right.

In a textual configuration file, you can put comments. The purpose of a comment is to communicate into the future, to tell those who came after you (including your future self) what you were intending to do, and why you selected some "surprising" option or way of doing things.

There is no good way to put comments into GUI or WebGUI configuration, even if it has a freeform field labelled "comments".
Categories: Libdrizzle News

Patrick Crews: Drizzle’s Jenkins system using dbqp for randgen and crashme testing

Tue, 06/21/2011 - 22:27

Well, that’s pretty much it, thanks for stopping by ; )

In all seriousness, it’s kind of neat that we’re using dbqp to run some of our staging tests and we gain a few neat things:

Speed

Here are the trend charts for randgen and crashme.  While it doesn’t look like randgen is showing much of an improvement, it is worth mentioning that this job now runs both the standard and the transaction log tests in a single run >: )  Previously, we had a separate drizzle-automation job for the transaction log.  Just the trx_log tests took ~30 minutes to run (plus build time).  Long story short, we’re saving about 30-40 minutes on randgen testing per staging run and only needing to build once!

Maintainability

The jobs we run are in the tree and anyone can easily repeat them.  While Drizzle-automation kicks major butt (and I have taken many ideas from it), it is a separate piece of software that requires setup and maintenance.  Basing things around an in-tree setup means that you only need the code and any required bits and pieces.  Now if we need to set up a new randgen machine, we only need the randgen and dbd::drizzle installed (and we plan on including randgen in-tree soon, so you won’t even need that!).  If we need to set up a new crash-me machine, we only need dbd::drizzle – and everyone should have dbd::drizzle installed! ; )

Ease of use

Pretty much all tests provide the same standard output:

dtr mode

From the command:

./dbqp

Our default mode is dtr (aka using drizzletest.cc to execute standard .test files). To run all available tests, use the make target – make test-dbqp

20110621-081404  trigger_dictionary.loaded                  [ pass ]       43
20110621-081408  logging_stats.cumulative                   [ pass ]     1045
20110621-081412  errmsg_stderr.stderr                       [ pass ]       36
20110621-081412  ===============================================================
20110621-081412 INFO Test execution complete in 496 seconds
20110621-081412 INFO Summary report:
20110621-081412 INFO Executed 566/566 test cases, 100.00 percent
20110621-081412 INFO STATUS: PASS, 566/566 test cases, 100.00 percent executed
20110621-081412 INFO Spent 254 / 496 seconds on: TEST(s)
20110621-081412 INFO Test execution complete
20110621-081412 INFO Stopping all running servers...

randgen mode

From the command:

./dbqp --mode=randgen --randgen-path=/path/to/your/randgen


20110621-170141  main.subquery                              [ pass ]     3780
20110621-170148  main.subquery_semijoin                     [ pass ]     3016
20110621-170156  main.subquery_semijoin_nested              [ pass ]     3750
20110621-170202  main.varchar                               [ pass ]     2658
20110621-170202  ===============================================================
20110621-170202 INFO Test execution complete in 147 seconds
20110621-170202 INFO Summary report:
20110621-170202 INFO Executed 19/19 test cases, 100.00 percent
20110621-170202 INFO STATUS: PASS, 19/19 test cases, 100.00 percent executed
20110621-170202 INFO Spent 77 / 147 seconds on: TEST(s)
20110621-170202 INFO Test execution complete
20110621-170202 INFO Stopping all running servers...

crashme mode

From the command:

./dbqp --mode=crashme


20110621-181515  main.crashme                               [ fail ]   149840
20110621-181515  func_extra_to_days=error        # Function TO_DAYS
20110621-181515  ###
20110621-181515  ###<select to_days('1996-01-01') from crash_me_d
20110621-181515  ###>2450084
20110621-181515  ###We expected '729024' but got '2450084'
20110621-181515  func_odbc_timestampadd=error        # Function TIMESTAMPADD
20110621-181515  ###
20110621-181515  ###<select timestampadd(SQL_TSI_SECOND,1,'1997-01-01 00:00:00')
20110621-181515  ###>1997-01-01 00:00:01.000000
20110621-181515  ###We expected '1997-01-01 00:00:01' but got '1997-01-01 00:00:01.000000'
20110621-181515  ###
20110621-181515  ###<select {fn timestampadd(SQL_TSI_SECOND,1,{ts '1997-01-01 00:00:00'}) }
20110621-181515  ###>1997-01-01 00:00:01.000000
20110621-181515  ###We expected '1997-01-01 00:00:01' but got '1997-01-01 00:00:01.000000'
20110621-181515
20110621-181515 ERROR Failed test.  Use --force to execute beyond the first test failure
20110621-181515  ===============================================================
20110621-181515 INFO Test execution complete in 153 seconds
20110621-181515 INFO Summary report:
20110621-181515 INFO Executed 1/1 test cases, 100.00 percent
20110621-181515 INFO STATUS: FAIL, 1/1 test cases, 100.00 percent executed
20110621-181515 INFO FAIL tests: main.crashme
20110621-181515 INFO Spent 149 / 153 seconds on: TEST(s)
20110621-181515 INFO Test execution complete
20110621-181515 INFO Stopping all running servers...

While this isn’t a huge feature, it is nice to have a standardized report for knowing if something failed, what failed and how (we always dump test tool output on test failures).  Why is this nice?  Well, the world is a busy place and only needing to know one way of reading test output simplifies things just a teensy little bit.  This small improvement becomes a huge benefit over time if you happen to spend good chunks of your day looking at test output like me : )

Other than that, I’m still working on teaching dbqp interesting new tricks that will help me in testing SkySQL‘s Reference Architecture – expect to hear more about that next month!

Categories: Libdrizzle News

Official Drizzle Blog: Drizzle source tarball 2011.06.20 has been released

Tue, 06/21/2011 - 19:15

Drizzle source tarball, version 2011.06.20 has been released.

This is a Fremont development release.  Our stable GA release can be found here.

In this release:

  • NOTE:  Removed the drizzleadmin utility has been removed.  The same functionality can be achieved via cleaner, alternate methods (UDS and the console plugin + ssh)
  • DATA_DICTIONARY tables' identifiers now use MAXIMUM_IDENTIFIER_LENGTH to match INFORMATION_SCHEMA behavior
  • Continued code refactoring - thanks to Olaf van der Spek for his contributions here
  • Various bug fixes
  • The dbqp test runner now has sql-bench and crashme modes.  Docs are here.  You can read more here.

The Drizzle download file can be found here.

Categories: Libdrizzle News

Henrik Ingo: Percona.tv: State of the MySQL Ecosystem

Mon, 06/13/2011 - 07:29

In December I covered the topic The state of MySQL forks: co-operating without co-operating (which was also a response to Giuseppe Maxia's take on the same topic). Since half a year has now passed, I was wondering if I should follow up with an update. (Drizzle having a GA release would be the major news in such an update.)

But I see that Peter Zaitsev covered this topic in the opening keynote of their Percona Live conference. Since I agree with Peter's view on this topic, I just recommend you watch the talk on Percona.TV. He also uses the same categorizations of the forks, and includes "community patches" as its separate slide.

read more

Categories: Libdrizzle News

Pages