From: Date: February 1 2005 9:14am Subject: Some experiments List-Archive: http://lists.mysql.com/cluster/1443 Message-Id: <49185D4B-7429-11D9-913F-000A959312A2@mysql.com> MIME-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable I made some experiments to see how one could improve performance of=20 communication between MySQL Server and the ndbd processes. In the process I stumbled over a performance=20 improvement that makes a very simple select query fetching one record from ndbd via primary key and 2 integer attributes=20= execute 40% faster (only accounts for time spent in MySQL Server and ndbd, including client will decrease improvement in=20= percent). This will be pushed into all branches this week. In addition I experimented with various priority settings. The=20 communication cost was decreased by 10% when I raised the priority of the MySQL Server process (in the experiment it was actually=20= an NDB API test program but this should not make a big difference). This plays well with experiments made a couple of=20 years ago on Solaris 7 where I was able to increase performance by 50% by setting the API part in real-time scheduling mode. The major reason for these improvements is due to the thread model and=20= with a higher priority on the MySQL Server part, there are less context switches. The experiments were made on a Mac OS X laptop with all processes on=20 localhost. The results is only a hint of that a few percent improvements can be derived through simple means. However before=20 actually used in practice they should be tested and verified on the HW and OS used. Rgrds Mikael PS: I mainly used the renice shell command (renice -10 pid increases=20 the priority of process with number pid where -20 <=3D prio <=3D 20) Mikael Ronstr=F6m, Senior Software Architect MySQL AB, www.mysql.com Jumpstart your cluster: http://www.mysql.com/consulting/packaged/cluster.html