With MySQL Cluster 7.2 we introduced native support for the Memcache protocol. From the very start of the project we knew there would be some challenges in storing large values — “blobs” that are bigger than the maximum NDB row size — from the Memcached server. Coincidentally in 7.2 we also increased this maximum row size from 8000 bytes to 14,000 bytes. This helped out a little bit when the first preview release became available, back in September,and there was still no way to access blobs through memcached.
We had always wanted the memcached server to be event-driven and to use asynchronous APIs on the back-end, but we had no asynchronous API for blob access. Reading a blob is a multi-step operation: it requires reading first a header row, and then a series of blob parts from a (hidden) parts table. The existing blob implementation, known as NdbBlob, encapsulates all of this into a single synchronous, blocking, API call.
…
[Read more]