NoSQL Access with Percona Server
Percona Server includes a special NoSQL interface called HandlerSocket. The HandlerSocket plugin allows users to access XtraDB tables as a key-value store through a simplified TCP protocol, bypassing the SQL parser, query optimizer, and all the upper-level layers of the server. This direct access to the tables results in incredibly fast and scalable access to the database. Users have reported the ability to issue more than 750,000 queries per second on a single commodity server!
The HandlerSocket access method provides key benefits that are lacking in other popular NoSQL data stores:
- Persistent, ACID-Compliant Storage
- HandlerSocket bypasses the upper layers of the server, but it doesn't compromise on XtraDB's proven transactional behavior. All data written to the server is fully transactional and durable. There is still automatic recovery if the server loses power, for example. In contrast, most other NoSQL databases are not ACID-compliant, and some of them don't even persist data.
- Resistance to Corruption
- Most NoSQL databases provide little or no protection against data corruption. In fact, they don't even try to detect it. HandlerSocket leverages XtraDB's strong guarantees of data integrity. Data is checksummed when being moved between memory and disk, and should a hardware failure corrupt the data, XtraDB will refuse to access it. There is strong protection against partial page writes, too. No database protects your data more reliably than XtraDB.
- Access Your Data Through SQL, Too
- Your data is still stored in XtraDB tables, and nothing prevents you from accessing them through MySQL as you usually do! You can run complex joins, GROUP BY queries, and everything else that key-value stores don't let you do.
- Single Source Of Truth
- One of the problems with using an additional caching or NoSQL data store (such as memcached) is that you must worry about problems such as cache consistency, synchronization, and expiration. No longer! All of these problems are caused by storing multiple copies of the data, and with HandlerSocket, you have both SQL and NoSQL access to the same data for perfect consistency and synchronization.