Random-access memory is one of the most critical resources in computing. You can never have enough, and the faster it is, the better. Of course, that translates into enormous costs, and when we enter the territory of Big Data, accumulating several terabytes of RAM puts any budget in check. The alternative comes from MIT with a system that can use flash memory, offering in multiple applications the same efficiency achieved with traditional RAM.
The RAM Bottleneck
High-end smartphones have two to four gigabytes of RAM inside. Laptops and desktops vary their memory amount according to budget, but the average currently floats between 4 and 8 GB. However, it is not unusual to find 256 gigabytes in a server. Connect multiple servers, and what you get is a farm equipped with several terabytes of RAM. The main benefit of RAM is undoubtedly its speed. When an optimization guide recommends "throwing everything into RAM" to gain performance, it's not exaggerating. As an example, the maximum bandwidth for a DDR3-1600 memory rises to 12.8 gigabytes per second... but when it comes time to play by the rules of Big Data, the demand becomes gigantic, and the only way to meet it is by installing more RAM and increasing costs.
MIT's Flash Memory Solution
MIT's latest project aims to explore the potential of flash memory as an alternative to traditional RAM, reducing cost and energy consumption to a tenth. The problem is that flash memory offers a tenth of the speed of common RAM, but the new system from MIT can achieve similar efficiency levels with the right optimizations. As a reference, the researchers determined that a cluster of 40 servers with 10 terabytes of RAM processing a 10.5 TB data set is not faster than 20 servers with 20 TB of flash, and if we add energy savings, the balance tips even further in favor of the second solution. Why does this happen? The researchers explain that if a traditional distributed system has to access data on disk even 5 percent of the time, its performance drops to a level similar to the flash system anyway.
Among the evaluated algorithms are image search, an implementation of Google PageRank, and the Memcached application. Another fundamental aspect in the final performance of the system was moving part of the processing (offloading) from the servers to the controllers in the flash memory. This "preprocessing" eliminates the associated overhead and further increases efficiency. Even so, MIT's plan is not to replace RAM, but to offer an extra option for those Big Data applications that can benefit from the new architecture.