ThinkPart

Andrey's blog

 

mysqlnd and the compressed protocol, again

 

mysqlnd patched for compressed protocol passes almost all tests, but all of the most relevant and those who test with big result sets. I have a few failures due to "Packet out of order" which is due to the crippled packet numbering when com...pressed is turned on-the outter layer has different counter than the inner, compressed one, and it is unknown how the server resets them (for example in the COM_CHANGE_USER tests).

 


Read more ...

The MySQL compressed protocol

 

MySQL's compressed protocol is not so widely used, but there are still users that use it. Thus, the need to implement it in mysqlnd.

Unfortunately the compressed protocol is full of landmines, a lot of them, exploding one by one.


Read more ...

Compressed protocol for mysqlnd

 

Compressed protocol support for mysqlnd has ready alpha patch. Tested with simple queries, not tested against the test suite or big packets.

100 000 queries per second against MySQL

 

No! There is no error in the topic. You can see yourself:


Read more ...

Where is the problem in the following code?

 
#define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \
 { \
     if (MYSQLND_G(collect_statistics) && statistic != STAT_LAST) { \
        mysqlnd_global_stats->values[statistic]++; \
    } \
 }

I usually don't make this mistake, but in this particular case I did. Can you spot it?

Query caching in PHP/mysqlnd - Reloaded

 

The MySQL UC 2009 is over and I got bored in the evening before I had to leave Santa Clara and decided to play again with query caching in mysqlnd. I have always said that mysqlnd is ready for it, the infrastructure is there and that we need just few changes to make it work. Well, I decided to bite the bullet and do it. Spent about 4h in the evening and on the next day 2h while waiting on the San Jose (SJC) airport and continued on the flight to Denver, where I am having vacation. On the plane I was almost ready and today I made the final changes to the preliminary patch, that seems to work :)

I did a small benchmark, a microbenchmark.


Read more ...