From: Michael Widenius Date: January 12 2010 10:59am Subject: Re: myisam_use_mmap = 1 but still lots of [p]read()s List-Archive: http://lists.mysql.com/internals/37633 Message-Id: <19276.22009.975116.955578@narttu.askmonty.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi! >>>>> "Robert" == Robert Milkowski writes: Robert> During peak hours I can see several hundreds read()/s, sometimes even Robert> more, and getting rid of all these syscalls would probably improve Robert> performance. >> >> You are right; Currently the myisam_use_mmap is not fully >> implemented. >> >> Looking quickly at the mi_dynrec.c code, it looks like the following >> functions needs to be fixed to get read of the reads: >> >> _mi_read_cache() >> _mi_read_rnd_dynamic_record() >> _mi_get_block_info() >> >> Should not be that much work. >> >> _mi_cmp_buffer() doesn't have to be changed as this is not used >> by MySQL. >> _mi_write_part_record() doens't have to be changed as the write calls >> are only used when writing to a buffer that will be written to end of >> file. >> >> Regards, >> Monty >> Creator of MySQL >> >> Robert> Thanks for reply. Robert> If I would like to contribute the changes (assuming I would find enough Robert> free time) how should I go about it? To contribute to Sun and MySQL, you need to sign Sun's contributor agreement http://forge.mysql.com/wiki/Sun_Contributor_Agreement If you in addition want to also contribute to MariaDB, you need to either sign our contributor agreement: http://askmonty.org/wiki/index.php/MCA or submit the patch to maria-developers@stripped under BSD. I am happy to help you with any questions regarding doing the patch. We can discuss this ether on this list, the maria-developers list or in the #maria channel on Freenode. Robert> Also the comment for send_results_to_client() function is wrong as the Robert> return code of 1 actually means that a query was cached while 0 means Robert> that it wasn't. The description of return codes 0 and 1 should be swapped. Thanks; Now fixed in MariaDB 5.1 Regards, Monty Creator of MySQL