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 Storage Engine (ClouSE) installation and configuration is now fully automated. Try new ClouSE installer and you’ll have cloud storage access configured in no time.
OblakSoft is pleased to announce the release of Cloud Storage Engine (ClouSE) installer that can be used to deploy and configure ClouSE with your MySQL server. Now ClouSE can be deployed with just one command. The installer will guide the user through the configuration process, prompt for Cloud Storage connection parameters, and install ClouSE into MySQL.
Presented is a step-by-step guide for ClouSE installation and configuration, from downloading the binaries to running the installer. The guide was designed by request of WordPress-to-Cloud users, however it is fully applicable to any generic ClouSE installation.
The slides have notes, they are a little hard to discover with the SlideShare interface, look for a tab below the slide that looks like “Notes on Slide #”.
Let us know how we can further streamline cloud adoption for your MySQL applications.
I got a few questions like the ones below that I’d like to address to avoid further confusion.
How exactly secure is ClouSE for MySQL, the first secure database in the cloud? Am I protected against standard application level security attacks or even accidental admin mistakes?
With the help of ClouSE I get instantaneous backup for my database on the highly durable cloud storage. But how would I protect my data in case a malicious attack or an accident did occur?
I’ve got a comment pointing out that data encryption on the storage level doesn’t protect from SQL injections. Of course, data encryption does not protect from SQL injections (as long as there is SQL involved, there will be a risk of a SQL injection). Neither does it protect from the infinite number of attack vectors that can happen at any layer of the application stack: PHP, Apache, MySQL, Linux, application code, application users, etc.
When I talk to prospective customers about the Cloud Storage Engine for MySQL (ClouSE) the question of cloud reliability often comes up, especially recently in the light of the outages in AWS.
Cloud outages lead to a lot of publicity. Cloud opponents jump in with “that’s why I haven’t moved to the cloud and never will”, cloud proponents rebut with “N rules for building highly available applications for the cloud”, cloud competitors call on customers to move to their cloud. But it’s important to look into details, because not all outages are created equal.
Here is the data I found on the AWS outages in the last couple of years:
Can OLTP database workloads use Amazon S3 as primary storage? Now they can, thanks to the Cloud Storage Engine (ClouSE), but the question is: how fast?