List:Internals« Previous MessageNext Message »
From:Michael Widenius Date:January 12 2010 10:59am
Subject:Re: myisam_use_mmap = 1 but still lots of [p]read()s
View as plain text  
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
Thread
myisam_use_mmap = 1 but still lots of [p]read()sRobert Milkowski9 Jan
  • re: myisam_use_mmap = 1 but still lots of [p]read()sMichael Widenius11 Jan
    • Re: myisam_use_mmap = 1 but still lots of [p]read()sRobert Milkowski12 Jan
      • Re: myisam_use_mmap = 1 but still lots of [p]read()sMichael Widenius12 Jan