Saturday, September 25
PostgreSQL, MySQL, & Oracle job trends
I am keep find reviews about PostgreSQL 9.0, and they overwhelming show how superior PostgreSQL is compared to MySQL in terms of both performance and reliability amongst other things. Also it seems that for some work loads, even at the enterprise level, PostgreSQL holds its own compared to Oracle in terms of performance. One company claims to have done hundreds of conversions from Oracle to PostgreSQL (presumably prior to PostgreSQL 9.0!).
Wednesday, September 22
PostgreSQL - comments on Slashdot
The second comment I quoted from Slashdot, goes into detail about the commitment the PostgreSQL development team have towards maintaining and increasing the performance of PostgreSQL.
One of the other comments,m said that PostgreSQL version 8.2 was benchmarked at only 15% less than Oracle! So it would be interesting to do the same benchmark with PostgreSQL version 9.0, as this version is significantly faster.
http://developers.slashdot.org/story/10/09/20/2219254/PostgreSQL-90-Released
[...]
Re:Thank you! (Score:4, Informative)
by Anonymous Coward writes: on Tuesday September 21, @01:19PM (#33644378)
Thirded. There is absolutely no reason for anyone to be using MySQL any more other than the old silly excuse "my hosting provider doesn't have anything else". PostgreSQL is now faster than MySQL in all but the most trivial of contrived cases, doesn't require you to choose between table types for different load types, is just as easy to use and install, has all the features that MySQL has and runs on a Windows server (for those idiots who think that is a good thing). Also, the PG community is vastly more helpful and knowledgeable than the rabble that is the MySQL user base.
Finally, PostgreSQL is a proper independent open source project with a structure that all other open source projects should be judged by. MySQL has gone from hand to hand in the corporate world and has a future that is far from certain.
[...]
Re:As always... (Score:5, Interesting)
by greg1104 (461138) writes: Alter Relationship
You've got the performance part backwards for PostgreSQL; it goes up with every release, sometimes a little, sometimes in a big way. See PostgreSQL history [suckit.blog.hu] for a comparison covering versions 8.0 to 8.4. The mild regression in 8.4 shown there is actually reversible; it's mainly because a query related parameter for how many statistics to collect and use for query planning was increased by default. That results in better plans for most real-world queries, but it detuned this trivial benchmark a little bit. You can get performance back to 8.3 levels just by turning the parameter back to the "optimized for trivial queries" default of the older versions if you care about that. Most people prefer the new default. In the real world, 8.4 is actually faster due to improved handling of background VACUUM tasks too, which don't show up in simple benchmarks either.
I'm the current lead architect on building a PostgreSQL Performance Farm [2ndquadrant.com] to prevent regressions from popping into future versions of the code too. There is a recently completed beta client [github.com] for that purpose. We're in the process of working out how to integrate into future development, starting with 9.1, so that potential regressions are spotted on a commit by commit basis. I haven't seen any performance regressions between 8.4 and 9.0, only moderate improvements overall and large ones in specific areas that were accelerated.
Now, if you use some of the new replication features aggressively, that can add some overhead to slow down the master. But that's true of most solution; the data coming off the master has to take up some time to generate. The way PostgreSQL 9.0 does it is is pretty low overhead, it just ships the changed blocks around. Theoretically some statement based solutions might have lower overhead, but they usually come with concerns about non-determinism on the slaves when replayed (random numbers, timestamps, and sequence numbers are common examples).
Given the non-disclosure terms of most of the closed source databases, nobody can publish benchmarks that include them without going through something like the TPC or SPEC process. The last time that was done in 2007, PostgreSQL 8.2 was about 15% slower than Oracle [toolbox.com] running the same database-heavy workload. And note that it was PostgreSQL 8.3 that had one of the larger performance increases, so that was from just before a large leap forward in PostgreSQL performance.
At this point, Oracle and most other commercial databases still have a large lead on some of the queries run in the heavier TPC-H benchmarks. Links to more details as to why are on the PostgreSQL wiki [postgresql.org]. It just hasn't been a priority for development to accelerate all of the types of queries required to do well in that benchmark, and nobody so far has been willing to fund that or the subsequent certification via the TPC yet. Sun was the only one throwing money in that direction, and obviously the parts of that left within Oracle will no longer do so.
[...]
Monday, September 20
PostgreSQL Version 9.0.0 has been released - Oracle beware!
Note that this release of PostgreSQL includes many substantive performance enhancements and features to improve management plus it has 2 key features that kept people using MySQL (which is now controlled by Oracle), such as streaming replication.
From the PostgreSQL 9.0.0 release notes:
Built-in replication based on log shipping. This advance consists of two features: Streaming Replication, allowing continuous archive (WAL) files to be streamed over a network connection to a standby server, and Hot Standby, allowing continuous archive standby servers to execute read-only queries. The net effect is to support a single master with multiple read-only slave servers.
Now PostgreSQL 9 is even faster than MySQL (even PostgreSQL 8.0 was significantly faster than MySQL, especially when ACID compliance was required, also in situations involving non-trivial queries and/or heavy concurrent transactional loads), and so much easier to manage.
I am assuming that people have competent DBA's who know how to implement databases for both reliability and high performance (like making use of the relevant features of each database, and tuning the configurations appropriately) . Not to mention that PostgreSQL is more cost effective than using Oracle for intensive workloads that MySQL could not handle efficiently.
PostgreSQL is very standards compliant, much more so than MySQL, with extensions compatible with the Oracle DBMS.
I think a lot of corporates will test using PostgreSQL 9.0.0 with the idea of going into converting production systems from MySQL and Oracle using PostgreSQL 9.1; my reasoning is that: corporates are likely to find corner cases that may not reveal themselves in developer testing, nor in the kinds of workloads that mere mortals like myself come across. It is interesting that there was an alpha released of PostgreSQL version 9.1, before the final release of version 9.0!
The release has now been formally announced, the source can be downloaded, and binary packages are also available
Converting to PostgreSQL is non-trival – so why bother?
In general, converting a production Database to another RDMS (Relational Database Management System) is never trivial, and a decision to convert should not be taken lightly.
MySQL to PostgreSQL
Since MySQL is very non-standard, there would be a lot of work converting to PostgreSQL. However, the factors that may encourage people to convert from MySQL to PostgreSQL include:
- vastly improved performance
- greater reliability
- ease of management
- fear of Oracle finding ways of extracting large fees from MySQL support
I assume that Oracle has performance and reliability that is better than PostgreSQL, especially under intensive and very mission critical workloads (a friend of mine is an Oracle consultant). However, the impression I have, is that for a lot of enterprises, PostgreSQL is sufficiently adequate in these areas. I already know of conversions from Oracle to PostgreSQL version 8, so I expect more conversions now that PostgreSQL version 9 is available.
The reasons for converting from Oracle to PostgreSQL include:
- ease of management
- vastly cheaper licencing (the PostgreSQL licence costs nothing)
- don't need armies of expensive Oracle DBA's and consultants
- the source code is available, and you are legally allowed to modify it (important if you have non-standard mission critical requirements, and for tracking down elusive bugs)
Note that there are several organisations that provide extensive professional support for PostgreSQL. In NZ for example, there is Catalyst a company that has considerable expertise in using and supporting PostgreSQL.
I can also provide professional consultancy services relating to both PostgreSQL and MySQL.
Wednesday, November 25
Some open source sites I follow
Daily summary of news about Linux: linuxtoday.com
Home page for probably the fastest and most reliable open source database: http://www.postgresql.org I first started using databases on Mainframes (specifically an ICL 4/72, a massive machine with one megabyte of core memory) in the 1970's, now I have to support MySQL because a client uses it, but PostgreSQL is much easier to use - I felt compelled to buy a book about MySQL administration, whereas the documentation that came with the PostgreSQL was sufficient. PostgreSQL is also known as Postgres. Funnily enough. I have also had a couple of years experience with PROGRESS 4GL, which is both a database and what they call a 4th generation language - I only mention it, as I have to remind myself to say "Postgres" rather than "PROGRESS" at times!
News about court cases involving Open Source, such as the long running attempt by a company to claim money from Linux users, also about software patents: http://groklaw.net