A common problem with "big data" analysis, according to MIT, is that the data sets are often too large to fit in RAM on a server or cluster. A team of researchers associated with the university has attempted to solve that problem for some workloads by doing away with RAM entirely.
Instead, the researchers' experimental cluster, called BlueDBM, uses a network of solid-state storage controlled by field-programmable gate arrays, or FPGAs, to cut both costs and power consumption for the processing of these huge data sets. MIT says the flash used in this experiment is one-tenth as expensive as RAM and consumes one-tenth as much power.
BlueDBM's architecture takes advantage of an observation the researchers made about distributed computing performance: if the nodes in a cluster need to request data from disk as little as five percent of the time, the overall performance of the task drops to a level comparable to that of the experimental flash-storage-only cluster. Thus, the researchers conclude, "40 servers with 10 terabytes’ worth of RAM couldn’t handle a 10.5-terabyte computation any better than 20 servers with 20 terabytes’ worth of flash memory, which would consume only a fraction as much power."
The FPGAs in the researchers' test cluster aren't just serving as relays between the servers and flash storage. Each FPGA controls two 500GB flash storage chips, and it's also connected to the two other FPGAs nearest it in a given rack. In effect, the FPGAs serve as a kind of storage fabric that allows any server in the cluster to retrieve data from any of the connected flash storage devices.
The cluster also relies on the FPGAs in another way: each programmable chip can pre-process data according to pre-programmed, application-specific algorithms after they're retrieved from storage, which further improves performance for the given computing task. The researchers used this capability to their advantage for operations like image searches, Web search rankings, and Memcached. Since the FPGAs are reprogrammable, a BlueDBM system could be adapted to different distributed-computing applications that could benefit from its architecture.