NoSQL continues to get more and more coverage as scalability issues arise from popular web applications that have witnessed a need for a massive amount of basic primary key queries that return a single row of data. With less of a need for the extraneous features of a traditional relational database, many web applications, to improve performance, have moved to a hashmap-style datastore that stores values based on a key. While NoSQL databases provide a simple mechanism of storing and retrieving data, many organizations implement a relational database in addition to a key-value-store in a mixed-use environment when complex queries are necessary. The relative immaturity of NoSQL technologies compared to the long history of relational database techonolgies makes using them in production a risk. In an interesting case of adapting well-tested database technology with new paradigms, Yoshinori Matsunobu recently discussed and released a MySQL plugin, called the HandlerSocket plugin, that provides a NoSQL front-end to a MySQL database using InnoDB as it’s database engine.
We have covered NoSQL before on our sister site SQLProNews, where Mike Marr gave an introduction to the concepts and motivations behind NoSQL, and Mike Kavis compared NoSQL and relational databases. Yoshinori-san combined the best of both worlds by implementing and releasing the HandlerSocket plugin that uses the InnoDB database engine through the MySQL plugin API. The plugin decreases the overhead of key-based lookups, as a NoSQL solution provides, while continuing to support more complex SQL based queries through the MySQL interface. In his blog he details the setup procedure for installing the plugin as well as its numerous advantages.
The HandlerSocket plugin adds the value of NoSQL, with extended queries, concurrent access handling, its high performance with a single cache, without giving up the power that a full SQL query engine allows. By keeping all the data in one place for both SQL and NoSQL queries, it makes it more trivial to keep data consistent than it is in a mixed environment. Seriously consider using Yoshinori-san’s HandlerSocket plugin for MySQL for a less risky foray into NoSQL territory. It brings NoSQL to MySQL; so that developers don’t have to sacrifice either.