← Back to team overview

maria-developers team mailing list archive

first contribution

 

Hi,

after some struggling I got this message from Bazaar: Created new
stacked branch referring to /+branch-id/633549.

I hope everything worked fine. If not let me know so that I can correct
it.

I created a branch to 10.0.4 of MariaDB and
named it: contrib_AQ_01. I've uploaded this some minutes before. 


For some time I played with the source of MySQL 5.5.8. I've taken some
of my modifications to MariaDB 10.0.4 and want to give them to you for
further discussions.

To say it first: this is not production-ready-code, it's a proof of a
concept.

My modifications are made for the MyIsam-engine in the handling of a
full table-scan with a table of dynamic sized records.

The reason for uploading this is: during my tests I executed statements
like   SELECT * FROM table INTO OUTFILE 'x.x';
With my test-data this took about 20 seconds with the original code and
12 seconds with my modifications.
I've tested my code with a single table which contains 10 Mio records, a
total size of 1GB. 

As i've written before: it's a proof of concept.

I've not implemented all the possible cases. I wanted to know if a full
implementation is a complete waste of time or if it is a bit useful (in
this case I will do it).

Some more details: in mi_dynrec.c there is a funtion
_mi_get_block_info()
and i've added a funtion AQ_mi_get_block_info(), these 2 functions do
the same thing but in a different way. In my version of this function
I've implemented only those case that I needed for my tests.

Because I started with examining the source of MySQL I modified the code
in the MyIsam-engine and applied these to the MyIsam-engine in MariaDB.
For staying compatible with MySQL I think it's better to use these
modifications in the Maria-engine of MariaDB, but only if you agree with
my approach.

This is what I modified:
in myisamdef.h I added: #define USE_CODE_OF_AQ
converting this line in a comment allowed me to use the old code, a
define with this identifier activates my code after a recompile. This
allowed me to do some comparisons.
You will find my modifications in myisamdef.h, mi_dynrec.c and
mi_extra.c if you look for this identifier.

Please look at my approach. If you agree I will continue with this and
check all the cases which i didn't touch for now.

thank you
AugustQ