Oracle released a technology preview this week a new version of MySQL that adds support for a Memcached plugin daemon for accessing InnoDB, MySQL's default storage engine. It's available from MySQL Labs. The plugin daemon is only available for Linux at this time.

Memcached stores key-value queries in memory to achieve NoSQL performance. Memcached has always worked with MySQL, but has run independently. This plugin should speed up the process considerably by allowing Memcached to access the InnoDB API directly.

Here are the features, according to the InnoDB blog:

  • Memcached as a daemon plugin of mysqld: both mysqld and memcached are running in the same process space, with very low latency access to data
  • Direct access to InnoDB: bypassing SQL parser and optimizer
  • Support standard protocol (memcapable): support both memcached text-based protocol and binary protocol; all 55 memcapable tests are passed
  • Support multiple columns: users can map multiple columns into "value". The value is separated by a pre-defined "separator" (configurable).
  • Optional local caching: three options - "cache-only", "innodb-only", and "caching" (both "cache" and "innodb store"). These local options can apply to each of four Memcached operations (set, get, delete and flush).
  • Batch operations: user can specify the batch commit size for InnoDB memcached operations via "daemon_memcached_r_batch_size" and "daemon_memcached_w_batch_size" (default 32)
  • Support all memcached configure options through MySQL configure variable "daemon_memcached_option"

memcached was originally created for Live Journal. It's now managed by Couchbase, the corporate sponsor of Membase and Apache CouchDB. Update: memcached is actually an independent project.