For a lot of businesses, moving their servers to the cloud is a very appealing and attractive solution. The cloud offers easy access, fast scale-ability undeniable convenience, excellent technical support and fluid, near real-time adjusting to fluctuations in user needs and demand. However, for applications that are largely dependent upon database queries, recent incarnations of cloud hosting have been somewhat problematic.
Many cloud services operate using partitioned servers, sometimes referred to as “virtual machines.” Each virtual machine or partition has allotted space in memory, a certain number of operations per second via the CPU, and other allotments. Overall, this partitioning makes the cloud servers run more smoothly. However, in the case of more database oriented applications, the result can be a glut of far more hardware usage than is really necessary for certain operations. The outcome is often an unnecessarily inflated cost.
A Call for More Efficiency
The recently announced “Netflix Cloud Prize” is evidence that more efficiency in cloud computing is being sought across all sectors. Home entertainment giant Netflix has recently thrown down the gauntlet to developers across the globe, challenging them to try and improve the quality, features, security and reliability of cloud computing. They will reward $100,000 ($10,000 in ten categories) to the participants who produce the best results.
Whether it’s contest prize money or dollars saved running a business, the motive for seeking more efficiency in cloud computing goes beyond ease of use to saving on cloud computing expenditures going forward. The good news is that energy is moving on that front with breakthroughs expected in the near term. In the example of using cloud computing for database-driven apps, new developments are showing signs of promise. These innovations may even be able to improve cloud performance while simultaneously reducing hardware requirements by up to 95%.
The Limitations of Virtual Machines
With virtual machines, it is important to allocate server resources according to the peak demand patterns of the application. With any application, the peak load is not hit constantly — there are continual fluctuations in usage. This means cloud resources in the typical scenario are actually being underused the majority of the time.
Unfortunately, provisioning for peak demand tends to be mainly speculation and trial and error. A business cloud service could take on extra load that might improve overall cloud performance. Increased demand results in a database server storing more of its priority data in the high-speed memory. Allocating data in this way can help the cloud server to process data requests more quickly when a business needs it most.
However, in this scenario, even a slight increase in demand could cause a dramatic slowdown. For instance, if too many requests come through at once for the same pieces of data, there might be a bottleneck in trying to keep this data accurately updated on multiple servers.
Researchers at MIT are in the midst of developing a new system called DBSeer that is showing signs of being a cloud breakthrough. In addition to improving performance and reducing hardware requirements, it could also streamline the diagnosis of application hiccups and reduce the price of service. The advantages of the DBSeer algorithm aren’t restricted to cloud computing, either; a database company called Teradata is using the new MIT algorithm to take its own software to the next level.
The key is in predicting and anticipating how a database-driven application will respond to increased load. The DBSeer solution monitors usage fluctuations in terms of quantity, current system performance as well as the type of request. Machine-learning techniques are then used to attempt to correlate the data. Over time, DBSeer is able to predict how fluctuations affect cloud performance so that inconsistencies can be addressed going forward.
Database managers and cloud computing customers are ultimately concerned about the consequences of huge increases in demand. For DBSeer to make those types of predictions, it uses what they call a “gray box,” which can take into account any quirks a specific business database system might have. In recent tests, the DBSeer algorithm was 99% accurate in predicting bandwidth usage and 80% accurate in terms of CPU usage. Needless to say, software architects are very excited about these developments and their implications for future advances in the cloud.
The ultimate hope is that the new algorithm will intuitively allocate server resources as needed, as the database requests come in. If servers are able to anticipate demand, assess the flow of requests on the fly and budget usage accordingly, then performance is more likely to stay more consistent. Workload management will become more intuitive and cloud computing more efficient, lowering costs for users across the boards.
Better cloud performance at better price? That’s something every business can get on board with!