Another good writeup of HandlerSocket.
I’m a big fan of NoSQL when it comes to remove useless work put on some over loaded SQL box , for solving write scalability issues but i will try to demonstrate that in most case you can push a MySQL and MariaDB server at the same level in vertical scalability compare to NoSQL solution.
I found some of the benchmarks not always taking into account the best practice of RDBMS usage, no persistante connections (shorten authentification , socket and thread stack allocation), not using prepared statement to cache plans and limit network usage, using bad primary keys like varchar or big numeric data type.
I think the biggest issue so far with HandlerSocket is that most of the features present in Redis are not yet implemented in HandlerSocket so we can’t be sure of the performance numbers after these are implemented.
Some of these require row level locks which I don’t think the Handler interface in MySQL provides.
incr() for example requires a read, then a write of a value on a row. You need to hold a row level lock or two incrs can collide and you can lose one of the values. IE on the same row they need to be serialized.
HandlerSocket has some benefit if you don’t run into this requirement in your application though and Redis is limited in feature set when compared to the robust (and proven) InnoDB.