MySQL Developer Contests PostgreSQL Benchmarks 177
Lucas Marshall writes: "Developer Shed has an article written by the main MySQL developer Michael "Monty" Widenius in response to Great Bridge's press release reported here on Slashdot on Monday. He makes some pretty good points about fair benchmarking and software competition."
Re:show me the numbers (Score:1)
So... (Score:2)
Re:Now that is the way for the companies to settle (Score:1)
----------------------------------
What are the weapons of happiness?
Re:That Widenius guy should learn English (Score:1)
No, I couldn't have. But knowing that, I wouldn't have tried, either.
Re:Hardly. (Score:2)
Let's say you wanted to set up a slashdot style message base. You could start out with the following:
-- Posted Stories
CREATE TABLE "my_comments" (
"text" lztext,
"id" SERIAL,
"date" timestamp DEFAULT 'now()'
);
-- User comments
CREATE TABLE "user_comments" (
"text" lztext,
"section" int4,
"name", char(60) default 'anonymous',
"mail", char(60) default 'none',
"web", char(60) default 'none',
"parent" int4 DEFAULT 0,
"id" SERIAL,
"date" timestamp DEFAULT 'now()'
);
create index user_parent_index on user_comments(parent);
--(unique indices are implicitly created on the id fields by the SERIAL type)
Ok - posted stories go in my_comments,
and the user replies are stored in user_comments,
with user_comments.id being a unique id for every reply, section indicating the story to which it is
a reply, and parent indicating the comment to which this is a reply (to allow threading).
Let's say you run into problems with users editing
the URLs used to access this system, and they start leaving random comments scattered in hidden places in the system. Let's suppose you want to stop this:
ALTER TABLE user_comments ADD CONSTRAINT user_section_constraint FOREIGN KEY (section) REFERENCES my_comments (id)
MATCH FULL
ON DELETE CASCADE
ON UPDATE CASCADE
DEFERRABLE;
There - now all replies have to be to a valid story. You also have the advantage that if you delete a story, or change the ID of a story, all of the comments get either deleted or updated as part of the same transaction.
--
Re:this dude needs a grammar checker (Score:1)
Joke? (Score:1)
I don't get this. Are you trying to be funny? If so, explain your Try to find legitimate things to complain about.
A common query I do (on a MS SQL Server 7 system) is something of the form:
INSERT ... ; SELECT @@IDENTITY AS ID
Our database is heavily interconnected, as our system models the decision making process of a number of people. That being the case, you often need to input a record with all of the required fields, then do some analysis on the ripple effects before refining the data stored on the inserted record. Nearly any fuzzy logic system is going to want to do that. Also, it seems that web sites might want to use a similar query for logging user activity durring an active session.
Now, to be a little more on topic: There is a LOT to be said about tweaking SQL statements for a benchmark. A few months ago, I had a query that took over three minutes to execute, but was able to rewrite it as three seperate queries that extracted the same data that took a total of 10 miliseconds to execute. Oders of magnitude difference, all because I wanted a bunch of nulls to appear (the three queries generated a two dimensional coordinate system and left nulls out but ordered the data so that the nulls could be inferred). I've run into a number of instances that were similar. Some types of set processing are inherently faster than others.
Re:Doth he protest too much? (Score:1)
Solaris isn't meant to run on x86. That's mostly a PR Port.
Solaris is for running on Sun boxen. It's good at what it does (even if it's stock install is a bit under-featured - install the GNU tools as soon as you boot it up =).
If you're building a network or application platform, your OS should either follow or dictate your hardware choice - they should never be chosen independantly. If you need to run servers under Solaris, that means you get Sun boxen. If you need to run servers on x86 boxen that you've already bought, you choose *BSD (or Linux, if that's your thing).
Putting Solaris on an x86 would be the same as putting Linux on a Sparc - yeah, it will work, but why bother?
--
Compaq Test Drive - Oracle on Linux for yourself (Score:1)
What do you think about a LUG pooling spare hardware to put together 1 big box (yes, you'll hit the 1 CPU wall) but you need at least 8 hard drives and 1 GB of RAM to really take an Oracle DB out for a run - kinda like never getting above 3500 RPM in third gear.
Oracle 8i Release 2 Standard Edition now supports 4 CPUs. I can't wait until Intel releases their commodity 4-way chipset this spring (too bad AMD can't jump past them on that one).
Re:That's absurd (Score:1)
In most situations where MySQL is used, it shouldn't be, because it can't handle concurrent connections, because it is missing ACID features, namely A nd I.
Ignoring a problem doesn't make it go away.
Hardly. (Score:3)
The "last line of defense"? Hardly. See the Functionality missing from MySQL [mysql.com] section.
Summary:
MySQL has no referential integrity. (Under some definitions, this excludes it from even being considered a RDBMS.) It certainly lacks PostgreSQL's object-oriented capabilities, which are highly useful, such as table inheritence.
PostgreSQL has all of the above features, and has had them for some time (with the exception of FK's, which are new to 7.0). It is stable and well-tested. MySQL developers are still working on these features. I'd say MySQL has quite a way to go before it reaches PgSQL's "last line of defense".
Good idea, but difficult (Score:2)
That said, you can set up a very generic, very simple system to test the performance of various RDBMS. It will give you an idea of the minimum performance which you can expect, but it won't give you an accurate idea of what those RDBMS are capable of when running at peak performance.
Finally, database choice is, in the commercial terms, almost always dictated by factors other than pure performance. Availability of quality staff (tech support and DBA's) is a big one, since labour is more expensive than hardware. Software compatibility, even terms of the RDBMS license. Pure performance seems to be the third or even fourth criterion.
JMHO
--
Can the ODBC drivers really be the bottleneck? (Score:2)
They also make the point that the AS3AP test is a read-only test and should have been a piece-of-cake for MySQL, if you believed MySQL's slashdot-enhanced reputation as the ultimate in select-oriented web apps.
(Myself, I find this whole situation imensely amusing. MySQL has been sticking misleading benchmark results up on their web site for ages, and now they're whining that someone else has stolen their trick...)
Postgres (from a new postgre user) (Score:3)
Based on my requirements, and the need to have SQL 92 support (to port apps from larger systems, etc) mySQL and Postgres fall into different leagues. For sites that do not require the complex queries I do on a regular basis, mySQL is fine. That is what most Slashdot/php developers will ever need. I am having a hard enough time "betting the farm" to a free DB, that I know supports all the SQL I use.
There is a common mindset that benchmarks are biased, no matter who does them, or why. They are more to prove a product capable then to compare two products to one another.
Frankly, I'm impressed with how fast postgres can pull an 8k record out of a 1 gig table. It blows MS SQL server away for some things, while the boat rocks the other direction for "select DISTINCT field from table". (The same 148,000 record table.)
I liken the PostgreSQL benchmark to the Mindcraft study (The postgresql support company payed for the benchmarks.) While the actual performance figures of mySQL/postgresql many not be "fair", postgresql will fill a role for me a can't quite bring myself to use mysql for, and the next choice would be IBM DB2/Linux, which lacks good php support, and has much higher fees (to say the least!)
I hate mySQL users who have never used anything else saying "mySQL rul3z!", which I know will start to soon filter in (and down I hope) to this discussion.
-Pete
Nag nag nag (Score:1)
Benchmarks usually flawed (Score:1)
Re:I think a contest... (Score:1)
Re:Telling quote from the article. (Score:1)
There are a fair number of applications, especially web-based ones, where selects will be far more frequent than inserts. It depends entirely on the application.
Independent testing (Score:1)
Then the independent party runs the actual benchmark. Assuming that the independent testing party is TRULY independent, you should get fair benchmarks.
Note that that still doesn't mean one is better than the other than real-world applications, because somebody's real-world application isn't going to be someone else's real-world application.
Real-world is a stupid phrase, since it involves too many ifs.
Like I said in an earlier post, you really need to test them yourself.
Mike
"I would kill everyone in this room for a drop of sweet, tasty beer."
Re:You should drag it out anyway (Score:5)
Re:show me the numbers (Score:1)
7.0X is supposed to having major performance increses over the older 6.x versions.
-Pete
Shut your whining piehole. (Score:1)
I get tired of seeing MySQL always be the test case in turorials. Postgres needs more coverage.
Come on, MySQL isn't even under the GPL.
Re:show me the numbers (Score:2)
Yes, the MySQL folks have created their own set of benchmarks because they do poorly in the standard benchmarks created by the rest of the industry.
The reason for this is quite obvious, as Monty himselfs says in the article:
So because MySQL does so poorly on the TPC standard benchmarks, they created their own. Now, if the PostgreSQL guys can be considered biased for using industry standard benchmarks, then I can't imagine the word for MySQL's benchmarks. Whatever the word might be, it would have to be far stronger than simply "biased." First of all MySQL's benchmarks run as one single process. In other words, if your "real world" consists of multiple clients then MySQL's benchmark is nowhere near "real world."
In other words MySQL's benchmarks are customed tailored to highlight MySQL's strengths, while ignoring the strengths of most other databases.
I have said it once, and I will say it again. If your database is going to be mostly read-only, and if you aren't worried about the myriad of features that PostgreSQL has that MySQL doesn't, well then, you would be better off using MySQL. If, on the other hand, you will be both writing and reading from your tables (at the same time), or if you need transactions and ACID capabilities then PostgreSQL is a far better choice.
The sad part (for MySQL anyway) is that PostgreSQL can be set up so that it competitive as a read-only database. It takes a little more work (clustered indexes, disabling fsync, etc.), but it is do-able. If you need PostgreSQL's features, however, MySQL is not going to get you there.
Re:MaxSQL (Score:1)
Benchmarks inherently flawed (Score:3)
Re:Speaking Of Independent DB benchmarks (Score:1)
Throughput claimed in the article was 440,880 transactions per minute, or 7348 transactions per second. This was on a cluster of 32 IBM Netfinities, so that's 230 transactions per second per Netfinity. Furthermore, according to another post in this thread, those were all four-processor machines --- presumably because otherwise processor speed would have been a bottleneck --- so we have 57 transactions per second per processor.
I'm not saying, of course, that database benchmark numbers scale linearly as you add CPUs. I'm only saying that the fact that IBM can get 7000 transactions per second out of DB2 on 32 servers costing $14 million does not demonstrate that you are a bonehead if you can only get 300 transactions per second out of Oracle on a single PIII-600 costing $20,000 or so.
I still suspect that the benchmarks were unfair, but they do show PostgreSQL is getting faster.
Stop this pointless FUD-ing (Score:2)
I agree that Great Bridge's study was at best badly presented. We need better studies and better testimonials about these rather vital open source products, so that we can start crushing Oracle and SQL server with Open Source. The flamewars we're getting instead are just pointless and counterproductive. At least KDE and Gnome don't go around FUD-ing the stability of each other's software (well, maybe some).
LONG LIVE OPEN SOURCE MOVEMENT AND THE SOFTWARE COMMUNISM!
Re:MySQL Connection Failed (Score:1)
No one sees the irony?
It's a necessary part of your daily intake of ideas.
let the article speak for itself (Score:1)
Re:Be honest. (Score:1)
Just take the right tool for the right job, but people that claim their tool/religion/ideology is the One True Way make me stay away from their thing.
If normal, rational reasoning doesn't work and one has to resort to fanaticism, there is usually something wrong.
show me the numbers (Score:2)
B1ood
The Real Problem is Compatibility (Score:2)
Why do people take their benchmarks so seriously?
It is because people view choosing one software package over another as a serious commitment to one software package. Indeed, this is how the world operates, but this is not a good thing. I wouldn't mention this, but the adapatation layers necessary to obliterate the distinctions are inefficient themselves! How yucky can this situation get?
Choosing one software package over another, such as MySQL over PostgreSQL, should not make it difficult later to switch. This is where the focus should be instead of bitterly crusading under the banner of one package over another. Even with the best of evaluations, a choice represents a judgement over a fixed set of data, both current facts and speculated future facts. It is, in effect, establishing a constant choice in a dynamic environment. Obviously the choice will be soon invalidated.
If MySQL is the best choice now, and in the foreseeable future, the unforseeable future will silently sneak up on you and invalidate all your hard won conclusions. Loyalty to one software package is based on merit, and merit changes over time. Instead of investing so much time with benchmarking to get people to create brand loyalty under the guise of merit loyalty, effort should be directed to making the transition between software packages seemless.
Benchmarks should always be carried out through an adaptation layer. When software packages do poorly when compared with each other through this abstracted layer, it is up to the authors of the packages to optimize their code against the abstracted layer, not to bitch and moan about how unfair the world is and if someone would take the time to perform specialized tweaks on their package it would have run much better.
If PostgreSQL makes significant optimizations to the backend that would double the capacity of my application if only I were using it, I want it to be as easy as possible to make the switch. I do not want to violate the abstraction of the layer between me and the backend, because I'll just get trapped. If I allow this to happen I may as well have written to the native interface of the backend and plunge myself to the hilt where I get better performance and screw the opportunity cost of other packages improving or new ones coming down the pipe.
I would prefer effort be focused on making the ODBC drivers more efficient. The value in having competing database systems is to be able to switch between them based on merit and have the transistion be as painless as possible. Any time I see a battleground based on brand loyalty I see a situation where people are directing effort in the wrong places.
If it were more painless to switch software packages, there would be less bickering and more sharing.
</rant>Yes and no, but MySQL is being marketed as more... (Score:4)
PS: What exactly does "improving at open source speed" mean? If it means that you think MySQL, or for that matter any truely open source developed RDBMS, will ever be able to go toe to toe with the likes of Oracle or Sybase, then I'd take your bet any day. No previous Open Source project has ever taken on something of this size and complexity, and come out on top. So please don't tell me about this much fabled "open source speed" until it is a reality.
Of COURSE these benchmarks don't mean anything... (Score:1)
Re:Developer Shed a pr0n site? (Score:1)
Re:Doth he protest too much? (Score:2)
Never heard it put that way .. a PR port ...
It (x86 Solaris) works okay -- I'm just not much of a Solaris guru. The main killer was I couldn't get Netatalk (Appletalk services) to compile under x86 Solaris 8, and I'm not enough of a guru to figure out what went wrong. So *pfffbbbllt* -- away Solaris went.
Be honest. (Score:4)
Re:show me the numbers (Score:1)
Re:Benchmarks (Score:1)
Didn't we expect this to happen? (Score:1)
Of course, not that I'm complaining.
Re:Get off your lazy asses (Score:1)
I think a contest... (Score:2)
Re:You should drag it out anyway (Score:1)
Re:show me the numbers (Score:1)
Re: (Score:2)
Re:Ahh the wonder that is benchmarking software! (Score:1)
But in general its always the same thing , "look we got it to go so fast"... and then they hide how they did it..... hmmm how about opensourcing your freaking testing / tweaking ehh!
Use whatever works best for you (Score:3)
Use whatever works best for you.
Postgres is a fine solution for many things; MySQL is a fine solution for many things. I hope they both get better and better. Now why in the world would anyone get upset at the particular database choice someone else has made for themselves?
I must admit that the infomercial style press release by the Postgres people made me cringe. I would of course still consider using their database, but I would no longer trust their claims; I'll do the research myself. The MySQL team has always been very forthcoming with the strengths and limitations of MySQL, so I'll give them a little more credibility for now. I guess once you've hired a marketing team, you've gotta start slinging FUD, even if you're open source. Oh well.
In any case, I'm very glad that both databases are making strides to build a better product. I will continue to use and appreciate both.
X is faster (Score:1)
MySQL and PostgreSQL *both* useful (Score:5)
Of course MySQL has limitations! Of course it does not meet the definition of an RDBMS! It meets the needs of a significant set of *real world* problems with great efficiency.
PostgreSQL meets a different, but overlapping, set of problems with ever increasing speed and efficiency.
They are both open source.
They are both improving at open source speed.
They both rock.
Speaking Of Independent DB benchmarks (Score:4)
According to the original article [slashdot.org] the names of the proprietary databases benchmarked were not given because it violated licensing agreements. Flawed benchmarks like this are the reason why.
As someone who has downloaded, installed and used Oracle 8i, IBM's DB2 and Borland's Interbase I can testify that configuring any of these DB's properly is a non-trivial task that can easily be messed up by someone who has no idea what he/she is doing. Using non-native drivers, not indexing tables properly, improper tablespace sizing, choosing an improper number of data files, improperly managing data blocks, etc can all lead to creation of a suboptimal database application performance.
Most of the major DB companies provide DB's for independent benchmarking from organisations like the Transaction Processing Performance Council [tpc.org]. As can be seen from this story [zdnet.com] these tests involve several thousand transactions per second and not several hundred as reached by this Great Bridge sponsored benchmark. I suggest that someone with a deep pockets or a vested interest in seeing Open Source DBs succeed should enter PostgreSQl or MySQL in these TPC-C tests.
The Queue Principle
Re:That Widenius guy should learn English (Score:2)
Or indeed someone whose first language is not English. Someone from Finland [mysql.com] for example.
This man clearly has taken the time to learn English - could you have written that article in Finish? Or indeed any other language other than English?
Re:I don't get these statements ... (Score:2)
I've built quite large applications using Perl and it's AnyDBM_File hashes. (one administers networks, addresses and generates DHCP and DNS files for 40000 nodes, has been running for 4 years without any changes, fixes or intervention now).
Many who claim Mysql is so fast and a real RDBMS would be overkill for their app, should question whether Mysql itself wouldn't be overkill either, and whether a simple (hash)file-based solution wouldn't do even better. DBM files (bsd-db, ndbm, or whatever variant) can be used from many languages and are really fast. The latest versions derived from bsd-db (though no longer free) even have transaction support.
Re:Why MySQL or PostgreSQL won't get TPC-C results (Score:2)
Even more: Official PR on benchmark methodology (Score:3)
Re:More info: make your own conclusions (Score:3)
I use Porstgres on FreeBSD since 1996 and MySQL on Linux since 1998 without any problems: easy to set up, fast and reliable...
But I also administer an online store (one of the biggest here in Italy) which uses IBM DB2 on NT4.0 since 1997: there exists no combination which gave us more headaches, and the last week was a real nightmare: We had to reboot the whole server (not only the hanging services) about every 2 hours and did reinstall from scratch 3 times in the last 2 days... The system still is unstable - we do not know why. We are now loosing millions of lire a day due to lost sales because the server is down... One thing is sure: we will switch to Linux.
ms
Read the version numbers! ;P (Score:3)
Oh, forgot to emphasize a very, very important part of the 2nd PR (as I posted before): The version numbers of the databases (BIG HINT):
Very nice workaround for the EULAs, dontcha think? :P
P.S. I really should learn to spell postgreSQL properly...
Re:Of COURSE these benchmarks don't mean anything. (Score:2)
<P>As it is, MySQL offers the basics required to be considered a SQL database -- it responds to SQL requests internally. It does not use external applications to store data or index it or search it. It does the SQL functions (and others) itself. It does not support a couple of SQL functions which are supported in a different manner.</P>
<P>How can it NOT be defined as a database? It may not be as thorough a database _platform_ as Oracle or Pick, but it is definately a database application.</P>
<P>PS, I work in a <a href="http://picksys.com">Pick</a> office.</P>
(Hmm, should've been moderated down to a troll)
Re:Of COURSE these benchmarks don't mean anything. (Score:2)
Yet another person who seems to believe that 'database' has some form of strict definition requiring that it be what is commonly refered to as an MVDB (multi value data base).
As it is, MySQL offers the basics required to be considered a SQL database -- it responds to SQL requests internally. It does not use external applications to store data or index it or search it. It does the SQL functions (and others) itself. It does not support a couple of SQL functions which are supported in a different manner.
How can it NOT be defined as a database? It may not be as thorough a database _platform_ as Oracle or Pick, but it is definately a database application.
PS, I work in a Pick [picksys.com] office.
(Hmm, should've been moderated down to a troll)That's absurd (Score:3)
Mike
"I would kill everyone in this room for a drop of sweet, tasty beer."
I don't get these statements ... (Score:2)
From the article:(I use Oracle here as an example, as they press release implicate that they are using Oracle for testing; If not, they are not testing against the proprietary database leaders).
Did anyone read my comments here? [slashdot.org] If not, check out the tpc.org site. [tpc.org] Look at the top ten results by price/performance [tpc.org] and the top ten results by database vendor [tpc.org]. Gosh -- MS SQL hands down. So why is it taken as an article of faith by many on sladhot that Oracle is the best? (what happened to "the best tool for the job?") Oracle is a fine database, but I can't in good faith reccommend it to a client when MS SQL is SO MUCH cheaper and faster.
---
Re:Doth he protest too much? (Score:2)
Do you honestly think that anyone is going to trust thier customer's data, money and confidence to an 'experimental' database?
Until it's stable, it may as well not exist from the user's point of view.
--
Re:Can the ODBC drivers really be the bottleneck? (Score:2)
I notice that neither the original article nor the MySQL refutation talk in *any* detail about "tuning"; did PostgreSQL have its -F argument set on the postmaster, as that has given me a 4-fold speed improvement on mostly-insert/update applications demanding speed?
I'd agree with the 'horses for courses' thing, of course. The `advertising' is badly done, but publicity can't be all that bad. And postgresql still *is* a very reasonable database for a lot of applications regardless of the quality of the plug.
~Tim
--
Re:Of COURSE these benchmarks don't mean anything. (Score:2)
You _do_ realise that there is a difference, right?
Re:Joke? (Score:2)
Of course people drink coffee while they drive, but Lamborghini drivers are more interested in a small car with raw speed than having such luxuries.
Keep things in perspective.
There are many, many uses for a very fast select database that doesn't do frequent inserts (if you can't think of any, consider the site you're on right now).
Benchmarks are what they are . . . (Score:3)
Monty's reference to "lies" and deceit in his article are troublesome and uncollegial -- while there was certainly a goodly amount of gloating in one press release, I would have been far more impressed with an impassive, nuts and bolts, criticism of the ANSI benchmarks than the unfortunate essay here.
One thing for which I have found Benchmarks useful is to prove concept -- that the application can, at least, run the Benchmark.
In this regard, there is one benchmark that I find quite persusasive at the moment: MySQL generates zero --that's 0.000- transactions per second. It is my hope that they will soon turn to implementing this important feature, so that we may then compare apples to apples.
Re:ACID is a lousey definition of a Database (Score:2)
If I may re-iterate what you said without the improper use of RDBMS, it would be:
There.Re:Of COURSE these benchmarks don't mean anything. (Score:2)
Not that other database! (Score:2)
I think that when we develop OpenSource database applications we should, wherever possible, seperate out the database layer to allow users to decide which database backends to use. This is what makes applications like TWIG [screwdriver.net] so great.
We should be happy that we have two good Open Source database systems. We should push the development of both and give support to both. Of course they both have advantages and disadvantages so individuals should evaluate these based on their own requirements.
*ENOUGH* already! (Score:2)
Shades of Mindcraft's mindgames (Score:2)
Why MySQL or PostgreSQL won't get TPC-C results (Score:3)
First, TPC-C requires transactions That's what the T is for! MySQL doesn't support transactions. So, it's right out.
Next, to get decent TPC-C numbers, most vendors need a TP-Monitor sitting in front of the database. Seeing as the commercial TP-Monitors ain't cheap, and there are no open source TP-Monitors, that sort of rules out an all open-source TPC-C number.
Finally, to simulate the thousands of concurrent users that TPC-C requires, one needs an awful lot of hardware just to drive the test -- the top scoring IBM DB2 results used 128 CPUs for the servers and 196 CPUs for the clients. Can you imagine how much time was spent tuning this beast?
Just as a final note on how expensive this is, note that there are no published TPC-C numbers for the existing commercial RDBSes running on Linux or BSD. Given Larry Ellison's famous hatred of Microsoft, and how much he'd love for Oracle on Linux to outperform Oracle on Windows, doesn't this say something about the expense of running these tests?
Re:I don't get these statements ... (Score:3)
As for the 'top ten by database vendor' results... number one comes in at a measly $3.6 MILLION. Oh. Like my company can afford that. Number 2 is the same. Number 3 is, well, cheap in comparison, at $2.2 million. In fact, the cheapest system came from Sun, only cost (only!) something over $550k, and was running some Fujitsu software.
All in all, I think it proves that benchmarks, at least the ones that you're looking at, can be *very* flawed.
Please, don't let us get into dung slinging (Score:2)
I glanced over the article and it sure has valid points. Like specifically each database has it's weak points and it's strength and that benchmarks can and will be ultimatelively unfair.
Nothing new here.
I worked for over 4 years for a major database vendor (the competition would deny that) and the amount of dirt throwing and mud slinging going on in this area is unbelievable. The then major competitor (Oracle, powering the Internet - or so they claim) explicitely prohibits benchmarks by end users (customers) in their EULA (so I was told on /.) now go figure...
What's my point ? Very simple, let's be very careful when it comes to whack each other in the Open Source community in terms of Gnome is better then KDE, Postgres is better then MySQL or even SuSE is better then Red hat all of the above applies vice versa of course.
Hey, maybe I watched too much Casablanca and believe in ethics, honesty and not whining und trashing others that do a good job, but - yeah - I think it's important to respect each other or even join forces.
Re:Of COURSE these benchmarks don't mean anything. (Score:2)
(and/or)
Where is a database defined as only being an RDBMS?
Re:So... (Score:2)
When I use MySQL, I add the functions I need as per the documentation. If I need some form of atomicity, I implement it in my software. My software + MySQL becomes my full database package. That's what most people using MySQL are wanting out of it, a back-end database solution.
That said, the benchmarks are still valid (if tested properly) because a programmer can decide "do I need speed, or the features available in a full RDBMS?" and then choose appropriately.
I disagree... (Score:2)
What about Mozilla? Virtually stagnant.
Whether or not you agree, I recognize a significant difference between these types of projects and truely innovative and complex ones. While I don't refute the unique value of Open Source in some instances, I know it falls short in many others. For that argument though, I'll let time tell. Don't say I didn't warning you...2..3..years from now, Open source will largely be in the same place it is now, commercial/propietary software will be alive and well.
Re:There Ain't No Fair Benchmark (Score:2)
Just for the sake of anyone wanting a good reference for proper benchmarking, see The Benchmark Handbook [benchmarkresources.com] (now readable online).
Re:Are we surprised? (Score:2)
My response to their response... (Score:5)
>the test or even the results one can just assume
>that they have done a test that doesn't have
>anything to do with the real world
"In the AS3AP tests... Postgres peaked at 1127.8 transactions per second with five users, and still processed at a steady rate of 1070.4 with 100 users... MySQL reached a peak of 803.48 with two users, but its performance fell precipitously under the stress of additional users to a rate of 117.87 transactions per second with 100 users."
The test is standard, so the definition of what it entails is easy to come by and they provided what the results were. So your above complaint really has no substance to it.
However, I do agree there should have been more information - namely the software configuration.
>PostgreSQL has of course also a lot of weak
>areas, like slow connection, slow insert, slow
>create/drop tables, running long multiple
>transactions where you get a conflict
>at the end (in this page/row locking is better)
Yes, Postgres is slower to connect, though not grotesqely so.
Yes, Postgres is slower to do inserts, but updates and inserts don't block. So though MySQL may be impressive if you bench insert speed without considering its impact on overall performance, in real world applications you'll see very different behaviour.
I'm not sure exactly what you're refering to when you mention "conflicts" at the end of transaction blocks. This is one area where I find MySQL falls short, since a) it has no transactions and b) it doesn't have the framework for transactions (e.g. multi-version concurency control, etc).
>We here at MySQL has always tried to design very
>fair test that no one can misinterpret or lie
>about.
Unfortunately the benchmarks MySQL uses are all single client load, which is completely meaningless in a production environment and covers up the weakest parts of MySQL (e.g. all selects stalling while an insert or update is happening).
>It's a shame that Great Bridge funds a test that
>is solely done to confuse users instead of
>telling the truth; PostgreSQL is good in some
>areas, and bad in others, just like all other
>databases.
I fail to see where they state what you are claiming they did. They merely point that a) on the AS3AP test, using the current production release of MySQL with its ODBC implementation, the performance was lackluster, and that MySQL currently lacks the feature set to run TPC-C.
>The article doesn't mention anything about this >or even with which ODBC driver they used the
>different databases.
As opposed to the benchmark on the MySQL website, where they make no mention of how the databases were compiled, what limits were set, what version of Perl was used, what version of DBI was used, what version of the DBD drivers were used, what hardware platform it was run on, what operating system it was run on, etc, etc.
And futhermore they are benchtesting an alpha product against a faily old stable release (6.5 being current over a year before these benchmarks were posted, with a half dozen released in the meantime).
>I also don't agree with the argument that they
>are not testing MySQL 3.23 as this is still
>marked 'beta'. We have here at MySQL a completely
>different release schedule on our versions...
>Compared to our release schedule, PostgreSQL 7.0 >would be called alpha.
Nice way to imply that the Postgres team doesn't properly beta test. Fact of the matter is that the 7.0 release spend many many months in its alpha/beta/gamma cycle.
There were a couple bugs that slipped through the cracks, but the subsequent releases resolved all known issues, and came very promptly (15 days between 7.0 and 7.0.1, and then 3 days between 7.0.1 and 7.0.2).
As for the development cycles being different, I agree. Though I would go the other direction. The goals of the 7.0 development series were much less ambitious than those of the 3.23 series of MySQL has; e.g. replication, two new backends, transaction support, a real locking mechanism, etc. Not to mention that they stopped adding new features to 7.0 about 6 months ago, whereas MySQL is continuing to add features (and change existing features) of 3.23.
>The net result is that the posted test is about
>as wrong as you can do a test, the important
>thing is just to get the people that reads that
>page to understand that.
Funny, I would say the epitomy of both misleading and incorrect testing would be the sql-bench suite run by MySQL.
Re:Speaking Of Independent DB benchmarks (Score:2)
Those TPC Benchmarks are not going to provide you a whole hell of a lot of useful information if you are using PostgreSQL or an open source database.
That leads to this:
You need to analyze something and see if it can meet your needs.
It can be quite difficult without some sort of real world gauge to determine if a total port of your application to something like PostgreSQL will meet your needs so...
The best thing to do honestly is seriously and rigourusly test these things for yourself. Things like the TPC benchmarks are just rigged pissing contests to me, its not data I you can effectively use when there are just so many factors besides who can toggle a number to be bigger than another companies.. It just dont help you out
A *real* world test for me is going to be spending two of three weeks porting most of an application to PostgreSQL strapping it into a staging cluster and running a stress test utility on it. Who cares about TPC marks if the database backend holds up to the load my production environment currently experiences. Who cares if when I test it for scalability it scales? I really wish I could find the time to do such a test because when you do things like this the things you learn along the way generally 'make/break' a product in your mind as to whether or not its usable.
Thats all, is reading a simple OR complex benchmark gonna tell me how productive im gonna be writing Stored procedures in PostgreSQL? Is that benchmark going to tell me the amount of tuning time required to get a database to the point where it could perform at said level? Is it going to tell me anything? No not really.
They are just numbers that are very weakly linked to some words. *sighs*
I know im bringing up a lot of points so here is the correlation.
Benchmarks are more in theory not in practice. If you have a serious project you cant just use benchmarks to guide your way, you have to use products you are effecient in and products that meet your needs and or potential needs.
I just get real worked up over benchmarks like this, they just dont matter, as Pete pointed out on a previous post, Its apples and Oranges when your talking ANSI92 compliant and Not ANSI92 compliant. Its just such a mindbendingly unfair benchmark. I dont really even believe there is a safe way to benchmark databases except for your own testing. I will stop rambling now
Jeremy
If you think education is expensive, try ignorance
Benchmarks (Score:3)
Benchmarks are worthless, even if they are from a supposed "independant" or "unbiased" source.
Benchmarks are just that - benchmarks. They are supposed to be used as a guide.
Really, if you want real-world benchmarks of open-source or freely downloadble databases (even free version of Oracle), download them, set them up, follow the instructions for tweaking the installation for the best performance, plug some sample data in and find out for yourself. If you truly care about the quality of whatever you're developing, this simple couple of hours should be well spent.
My $0.02.
Mike
"I would kill everyone in this room for a drop of sweet, tasty beer."
Ahh the wonder that is benchmarking software! (Score:2)
The article doesn't mention anything about this or even with which ODBC driver they used the different databases.
The Great Bridge article did not mention in any detail what sort of transactions were being used on any of the DB's, what specific versions of the ODBC drivers were being used, with what OS and what tweaking! I rememeber that a lather large update into Infomix was tweaked by an Informix engineer using from 14 hours to 6 hours!! This was running EU10K's with nothing else on those beasts.... so there is always a lot of room for tweaking a DB's... Benchmarks MUST therefore be taken with a big chunk of salt.
That is a non sequitur... (Score:2)
Innovation is much much more than mere thought, and the desire, to create something new. It generally involves a certain amount of blood, sweat, and tears. No open source project has demonstrated this ability in my opinion. The fact that most of these "succesfull" Open Source projects are either relatively trivial, simple, or following someone elses lead does not make for a good counterexample for Open Source's ability. What's more, beyond the mere the lack of empirical examples of this capacity for exertion, I see fundamental problems with Open Source development as it is popularly envisioned and fleshed out. i.e., the notion that 100 people contributing part time is better than, say, 10 working full time, or the notion that 1 million people who can "fork" and work in many different...even larger teams.. can necessarily achieve the same product or better product as a single team around one leader and one vision....
Yes, I think there will be times when Open Source can offer unique value to this world that propietary software cannot. But that is different from the bulk of proprietary software today. I think the _real_ growth of Open Source will be more a process of addition, of creating new areas for software, than a replacement of much propreitary software. I view Open source software like Perl as being something special...Not in that it can go head to head with the major propietary languages/compilers, but rather in its ends and means. It can do a lot of really cool stuff with its modules and what not, in a way that the current propreitary model does not and cannot....
...gotta run
Doth he protest too much? (Score:4)
I dunno -- I like Postgres better cause I need transactions. MySQL wouldn't work for me as well.
OTOH, I like it a lot when nerds take punches at each other. Kinda like mud wrestling, but without the swinging breasts.
Maybe a Postgres/MySQL Nerf fight?
Re:Hardly. (Score:2)
Delete the primary, delete things referencing it. It's great, you don't have to putz around trying to maintain consistent data.
The answer of let the client do it is naive. It means that you can't allow more open access to the backend, only controlled client. Also, if the machine dies (someone shoots the powersupply?) in the middle of a bunch of delete and you get these orphaned entries.
We're using Slash (MySQL based) and a database system some "consultants" did for us that is MySQL based... I want to cry.
The lack of Views has resulted in a simple join taking 30 seconds. We're stuck building a View (generating a table every day) to optimize this.
The list of missing features is painful. And no, I won't run the Development version.
Converting to Postgres for much of our functionality is going to happen over the next month or two.
Alex
Are we surprised? (Score:2)
The only benchmarks we can trust are those that are totally independent. (The benchmarks being disputed here were sponsored by PostgreSQL.) I'm not accusing benchmarkers of being dishonest, but the only way we can be assured of impartiality is to run completely independent tests. We shouldn't care what the developers say -- we need to know what the users are saying.
Re:Of COURSE these benchmarks don't mean anything. (Score:2)
With that def. one can say that all ANY database is a file on the filesystem (or part of the fs) with an SQL frontend!!!
Re:Read the version numbers! ;P (Score:2)
What about DBMaker? (Score:4)
All this talk about DB's for linux, but nobody ever talks about DBMaker (www.dbmaker.com). It is a free database for linux, just not open source. It has support for PHP - PERL - PYTHON - ODBC - JDBC, excellent documentation, and supports transactions, locking, triggers, proceedures, and etc.
I have not had the time to evaluate it in depth, but plan to in a few weeks. Soon I will have to make a choice between MySQL, PostgreSQL, and DBMaker. Has anyone had good results with DBMaker?
Re:My response to their response... (Score:3)
http://www.benchmarkresources.com/handbook/5.html [benchmarkresources.com]
MaxSQL (Score:4)
MaxSQL [mysql.com], made by the mySQL folks, will have transaction support, long the last line of defense in postgresSQL's "we're better because" flamewar.
Frankly, the next year is going to be very interesting for the open source SQL market, and not so good for the big players. (I hear Informix had to lay off hundreds on the peninsula last week).
Kevin Fox
Re:Be honest. (Score:2)
Re:show me the numbers (Score:4)
The same page contains benchmarks against other popular databases as well.
NOTE: Pay attention to the numbers, as well as the bar diagrams. The bars are all clipped at the right side of the chart, which is misleading for a few rows.
Re:Are we surprised? (Score:2)
The only benchmarks we can trust are those that are totally independent. (The benchmarks being disputed here were sponsored by PostgreSQL.) I'm not accusing benchmarkers of being dishonest, but the only way we can be assured of impartiality is to run completely independent tests. We shouldn't care what the developers say -- we need to know what the users are saying.
That's one of the problems. I don't know that you can even trust independent benchmarks completely. Every place I've seen benchmarks I've seen at least a few questionable ones. I think it's important that anyone looking for hardware OR software realizes that they need to average as many benchmarks and reviews as possible to get a vague sense of the reality of the product.
Aside from that, the article sounded alot like "he said she said". Of course neither company will like the other's benchmark if it makes them look bad. End of story.
Re:Doth he protest too much? (Score:2)
I *LOVE* FreeBSD and OpenBSD. The ports tree is the best damn thing I've ever used. I use Linux for the Postgres DB, though, because I found it to be slightly faster (I think it's a SMP thing -- Linux seems to be just a bit faster).
But it's telling that I use a FBSD box to do all my work on it...
But, Solaris... I DID have x86 Solaris on the box when I was testing it, and I did NOT like it. Was it fast and stable? Sure. But, I wasn't weaned on Solaris -- my first "real" Unix was Slackware. I did some poking around on SunOS boxes in college, but mostly for playing MUDs. I could telnet and IRC, but that was about it. I'm more used to how Linux/BSD does things than Solaris. They seem to put things in funny places to me.
But make no mistake -- if Linux fails me, and I can't make FreeBSD do what I need it to, I'd slap Solaris on that bitch and pay my friend, the Solaris Guru to admin it.
There Ain't No Fair Benchmark (Score:3)
If you visit TPC.org [tpc.org], you will find that they don't have one benchmark, but rather about four, with substantially different purposes:
The notion that there can be a comparable benchmark between the databases is something of which people should disabuse themselves.
If you need to have high performance transactional behaviour, I would point out that ODBC is NOT the issue; regardless of whether the SQL-CLI drivers suck, the important point is that neither database fully supports the industry standard SQL/XA [jcc.com] or X/Open DTP and XA [aurorainfo.com] standards.
Serious transaction systems commonly use transaction monitors like BEA Tuxedo or Encina, interfacing via XA to a relational database (like Oracle, Sybase, DB/2, Sleepycat DB, [bea.com] TimesTen, ...). From that perspective, MySQL and PostgreSQL are both still "toys," although SDTP - A Multilevel-Secure Distributed Transaction Processing System [sri.com] outlines how an XA interface to PostgreSQL was constructed in Common Lisp [hex.net] for use in a set of applications running on FreeBSD. [freebsd.org]
If you build a benchmark based on an application exercising the strengths of MySQL, it will probably perform badly when used with PostgreSQL, and vice-versa.
Take these systems seriously when they start supporting things like XA, and when BEA makes Tuxedo available for use with them.
More info: make your own conclusions (Score:4)
Re:My response to their response... (Score:3)
[www.cwi.nl]
http://www.cwi.nl/~kwakkel/pythagoras/testpilot
Re:I don't get these statements ... (Score:2)
A Dick and a Bush .. You know somebody's gonna get screwed.
Re: (Score:2)