MySQL 5.6 through the eyes of a custom storage engine MySQL plugin
MySQL is famous for its pluggable storage engine architecture which allows a DBA or an application developer to choose the right engine for the task. An application uses MySQL API and is isolated from all of the low-level implementation details at the storage level. As an example, the Cloud Storage Engine (ClouSE) enables existing MySQL applications to use cloud storage such as Amazon S3 or Google Cloud Storage to store its data. The application doesn’t need to be changed or even redeployed: with ClouSE, remote cloud storage will look like a better (ultra-scalable, durable, always-on) alternative to the local storage.
As you may already know, ClouSE now supports MySQL 5.6 release series. See this announcement for more detail. Let’s go through the set of changes that were required on the ClouSE side in order to keep up with core MySQL 5.6 changes.
We had to adapt our code to compile and work with MySQL 5.6 while keeping 100% compatibility with MySQL 5.5. As much as we could, we tried to fix the code in a way that would work with both release series, but there are cases where the code has to be conditionally compiled for each release series.
Here is the list of MySQL 5.6 breaking changes and our solutions, in no particular order.
Cloud-powered BLOB type provides ACID guarantees and fast direct access to blobs via Web URLs.
Typically unstructured data (such as pictures, media files, documents)
a) Is either stored on the file system, unlike the related with it relational data which is stored in the database. This is well known, “convenient” practice that allows fast access to files but offers no transactional story and no unified data management (for db and filesystem)
b) Or is stored in BLOBs. This ensures transactional consistency and reduces management complexities, but is really bad for performance and scalability.
We took advantage of the cloud, and came up with an upgrade to the BLOB – a solution that combines the benefits of the two.
I think the standardization indicates that cloud computing is moving towards maturity. No matter what the reasons for standardization are, I think that the standardization will boost cloud computing adoption and innovation. Standardization makes cloud adoption decisions easier because it mitigates the fears of data lock-in by a single vendor. It also increases the number of IT professionals and engineers who can work with the technology, because learning transferable skills is more attractive that learning single-vendor technology. This will boost bottom-up cloud adoption because more IT professionals and engineers will know how to do it. And last but not least it will keep the leader in check and innovating: a strong leader will only benefit from getting followers. A complementary approach to standardization is creating interoperability between vendor-specific services and established standard technology. For example we at OblakSoft have created ClouSE technology that brings cloud storage services to millions of MySQL-based applications seamlessly and securely, http://www.oblaksoft.com. In the end, I think providing more choices should help cloud computing to enter mainstream.