Optimizing Web Applications Between Servers
Databases are a really useful tool thanks to the ease with which information can be retrieved. This allows different online services to know what is in stock or what plane tickets are available very quickly. However, databases are meant to store information, not process it, so determining the logistics of something cannot be easily done by the same servers that store the database. Thankfully researchers at MIT have developed a system to automatically optimize some operations for these servers and with great results.
The current approach is to have information called from the database, sent to a different server for processing, and if more information is needed later on, then more information has to be sent. Travel time and bandwidth limitations add up though, so making database servers process some data on their own seems like a good idea, but they are not designed for that. This is where the MIT system, called Pyxis, comes in as it automatically determines what processes would be best run on the database server and on the processing server. It also includes connections so that if the database server does get bogged down, it can push more onto the other server.
The researchers have already benchmarked a Pyxis-optimized system and found dramatic improvements as the processing was three times faster and required half the bandwidth of the more traditional system design. Currently it is only capable of optimizing Java programs like this, but more language support can be added without having to change the optimization algorithms.