Cloud computing, the use of computing resources, is a growing technology that allows people to store servers, code, mobile, PC and databases in it. The cloud as it is referred to is on the rise, many people believe all computing will be in the cloud. While some are more reasonable they say that PCs will not be the center of business operations any more, for the flexibility of the cloud will be irresistible. [1] Cloud databases are on the rise, as it can be accessed from anywhere in the world with internet connection. Back in late 2011, Google, who was already offering a cloud database added SQL. And now everyone has a cloud SQL database: Oracle, Microsoft, Amazon and even some cloud SQL database specialists such as Xeround. The advantages to cloud databases are the ease of use, "'increased storage, flexibility and [gradual] cost reduction,' said Songnian Zhou, chief executive officer of Platform Computing." [2] Even with that there are still things that need to be prepared for events such as the changing of operating expense and capital expenditure to ensure the movement to the cloud is without desolation. [3] This may scare some companies from investing in the cloud but if they do not they will have a hard time in beating out there competitors.
TOPIC:
The features and sacrifices of cloud databases, and to find out the reason there isn't just one single cloud based SQL database using cloud databases such as Google Cloud SQL, Microsoft SQL Azure Database and Xeround as well as which is the best in its offerings.
Motivation:
I chose cloud databases as my topic because I have always had an interest in the cloud. Many thing have been trying to get into the cloud such as media, using computers and of course databases. I do not see it as others interested in the field do, replacing its offline brothers. However, I believe it will be a very big part of the future and some people will fall head over heels for it. So it would be good to know how it functions as to not be left out.
History and context:
The idea of cloud databases is a relativity new manifestation. Though the idea of cloud computing has been around since as early as the 60's, [4] the first usage for the public did not happen until August 2006. [5] Shortly after, more and more cases started popping up and while similar, they all had their differences. The cloud is not a small thing but ever expanding, as Erik Meijer said, "as the move to the cloud puts pressure on the closed-world assumption of the database, exposing naked data and relying on declarative magic becomes a liability rather than an asset. In the cloud, the roles are reversed, and objects should hide their private data representation, exposing it only via well-defined behavioral interfaces." [6] Companies have kept improving and adding more while trying to one-up theri competitors and in return cloud SQL is just getting better and more integrated.
Examples:
Similarities:
Microsoft's SQL Azure Database, Google's Cloud SQL and Xeround are all very similar. They all have the option to be backed up. Currently all the providers except Microsoft's SQL Azure offer a free plan (not including the free trial). And they all have API accessibility.
However, they are not all similar:
Azure Benefits:
Microsoft's SQL Azure is very appealing with its standard interface and ease of adaption. Also latency is not a thing to worry about, for Microsoft has many distributions of large data-centers. According to Forrester, "most customers stated that SQL Azure delivers a reliable cloud database platform to support various small to moderately sized applications as well as other data management requirements such as backup, disaster recovery, testing, and collaboration." [7]
Google Cloud SQL Benefit:
The best thing Google Cloud SQL has going for it is that it is integrated with the rest of Google's cloud services.
Xeround Benefits:
Xeround is possibly the most popular cloud database around most likely for being the most flexible in where it can be deployed. It is able to run on any public cloud including one of its competitors Rackspace and Amazon's Web Services and it can be run on its own stand-alone service. It claims that its major special advantage is its self-healing, "automatically [identifying] and [isolating] failures and [healing] itself from a server failure without the application needing to be aware of the failure" and auto scaling, "automatic throughput elasticity - the database throughput is able to grow and shrink based on load with no downtime or the application being aware of the process." [8] Its architectural uniqueness being essentially a MySQL front-end on top of a basis that theoretically could support a variety of database options with free control of migration between most cloud providers.
Azure Limitations:
Microsoft's SQL Azure is very lacking in terms of security customization.
Google Cloud SQL Limitations:
Google Cloud SQL is not the most feature rich database and currently, it only supports Java and Python applications, and individual instances are size limited to 100GB. Without a good knowledge of Google's App Engine it is not the most easiest cloud database to pick up and go. It also does not allow for user defined functions, MySQL replication and certain MySQL statements such as LOAD DATA INFILE, SELECT ... INTO OUTFILE/DUMPFILE, INSTALL/UNINSTALL PLUGIN …, CREATE FUNCTION …, LOAD_FILE(). Also the function SHA2() is not supported. [9]
Xeround Limitations:
The down side to Xeround is in the current release that it does not support certain SQL functions such as ALTER TABLE {ADD|DROP} PRIMARY KEY, INSERT IGNORE, INSERT …ON DUPLICATE KEY UPDATE & REPLACE, Log files, events, save points, MAX_QUERIES_PER_HOUR, MAX_UPDATES_PER_HOUR, MAX_CONNECTIONS_PER_HOUR and MAX_USER_CONNECTIONS, Spatial extensions, indexes-related functionality RTREE and index collation & cardinality and LOCK statements. Also it has the following limitations, AUTO_INCREMENT columns support only positive integer values, cascading triggers are supported but are not included in the scope of the original transaction, LOAD DATA INFILE statements are supported only when executed with the LOCAL keyword and Foreign Key constraints are supported but not enforced. [10]
Microsoft's SQL Azure Database
Google's Cloud SQL
Xeround
Pros
Cons
Pros
Cons
Pros
Cons
Standard interface
Lacking in security customization
Integration with Google's products
Only supports Java and Python
Automatic scaling
LOCK statements
Ease of adaption
Large data-centers
Not the easiest to start
High availability
RTREE
Large data-centers
No user defined functions
Ease of use
Save points
Certain MySQL statements not supported
Zero maintenance
Event
No MySQL replication
Flexible
Log files
Function SHA2() not supported
Self-healing
Certain MySQL statements not supported
Application:
Cloud SQL databases are being used in many different fields such as Two10Deegrees, a cloud based emergency alert system, Kaggle, a cloud based complex problem solving services mostly used for predictions to help cut costs and much, much more. Even big companies like BMW are using cloud based social marketing. [11] As Cloud SQL databases continue to get bigger and better with global accessibility, immediate deployment and easy scalability, they eventually could be used for almost anything.
Conclusion:
There are many Cloud SQL databases out there that I have not even mentioned, and which one is the best really depends on what you are going to need to the most. But overall Xeround seems to be ahead of the rest. Even with its limitations, no matter what is compared whether it be ease of use, speed of setting it up, its payment options with pay per use, or its 100% up-time guarantee its almost always on top.