Quote:
Thanks Gunnar, this is valuable information about MySQL!
So - how does MySQL performance behave comparing PPC32 to PPC64?
AFAIR you already even did some Altivec-optimizing.
Are there any news on that?
I believe that MySQL will experience a huge performance leap from the ODW to OSW.
Many of the differences of the PPC64 to PPC32 will be benefitial to the database performance.
The first difference between PPC32 and PPC64, that everybody notices, is that the integer registers are twice as big now.
MySQL works internally a lot with big integers (64bit).
The 64bit PPC64 register will speed up all the computing functions. But in the big picture of overall database performance this will only be a small improvement.
The 64bit registers give the PPC64 a much bigger address space that will allow to completely memory map all the database files. This will simplify the IO and improve the performance. This should result in a real speed up.
I think the biggest plus will be the increased memory throughput. The MySQL database performance depends very much on the memory throughput. The ODW was a bit limited on that side. I have not had my hands on the OSW yet, but looking at other G5 systems I'm hoping for a big speed up, maybe in the range of up to 5 times here.
I believe that the OSW will be an excellent MySQL server. The increased memory throughput, the bigger address space - allowing to better map the database files and the possibility to add more memory should result in superb MySQL performance.
MySQL is known to be very fast and it runs very good on PPC.
Its clear that an OSW with MySQL will be an impressive database server. It will be able to hold its ground and compete well against all other servers on the market.
While its clear that we will get very good results on the OSW out of the box, we still have a very good tuning potential on the PowerPC.
Often algorythms are designed without taking special powers of certain CPU families into account. By using Altivec or other general PPC specific features, we will be able to improve a number of functions in MySQL and other applications.
To answer your Altivec question:
We know that Altivec can give impressive speed ups if the problem can be solved by a vectorized function.
MySQL is of course a very complex program and not as easy to vectorize as an RC5 algorythm. MySQL utilizes hundreds of functions and operates a lot on structures which are often not good aligned for Altivec usage.
Because of this, adding general performance improvements to the MySQL server by using Altivec is difficult. But vectorizing some single functions showed impressive results: 400-800% speed ups were no problem.
One MySQL usage case that we had was limited (bottle necked) by a single functions which was vectorizeable. By Altivec enabling this single function we got a 400% total server performance increase.
Improving the performance for a few functions was quite easy. But improving the general server performance will be much more work - we are not quite there yet.
But I have to say, that we mainly looked at functions which were easy to improve without the need to redesign huge parts of MySQL backend. Simple drop in replacements so to say. We can surely achieve much bigger speed ups if we change bigger parts of the backend and for example optimize the way certain data structures are internally organized into formats which are better to handle with Altivec.
In total, I'm expecting huge MySQL performance increases by the new hardware.
Altivec showed potential but its a big task to optimize such complex programs as MySQL.
I'm sure putting more effort in optimizing the new MySQL storage engines for PPC64 will be a very rewarding project.
Cheers
Gunnar