Hi!
>>>>> "Robert" == Robert Milkowski <milek@stripped> writes:
<cut>
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.
<cut>
Thanks; Now fixed in MariaDB 5.1
Regards,
Monty
Creator of MySQL