Get the Message?
As the name implies, this first instance of the RNA software is aimed at applications that use message passing algorithms (such as in parallel supercomputing and its MPI software stack) or publish/subscribe systems (which also pass around a lot of messages). RNAmessenger has been tested supporting hedge fund and other kinds of statistical trading applications, online gaming systems, and Web content caching. The company has a caching program called RNAcache, which it did not want to talk about today. In the future, RNA Networks will deliver versions of the products to support database management systems and ERP software stacks.
The RNA product stack has two elements. The first bit of the memory virtualization platform creates the memory pool from bits of server memory carved out from the individual server main memories inside the servers that are given access to the shared memory pool in the network. This underlying software keeps the memory coherent across the server nodes, much as NUMA and SMP electronics do in hardware.
So, let's say you take four server nodes, each with 16 GB of main memory. Then you add the memory virtualization code, allocating 8GB for each node's local memory and 8 GB for the global server memory. Because of the virtualization, each server node will see that it has 40 GB of main memory for applications to play with - 8 GB local plus 32 GB of shared global memory. The memory virtualization software runs on a hardware appliance, which is supplied by RNA Networks or run on a company's own server platform. The machines that are sharing the pool of memory can be linked to each other using InfiniBand or Ethernet networks, with or without RDMA.
The second element to the RNA stack is called RNAmessenger, and it adds a messaging engine and API layer on top of this and a pointer updating algorithm that makes an operating system running on one server node see the shared memory pool as its own main memory. Loadable kernel modules or drivers loaded onto the servers gives applications access to the shared memory and also keeps the global memory coherent. The underlying RNA virtualization can take advantage of RDMA technology, but does not require it. (RDMA allows machines linked to each other to directly access the memory of other servers in a network). One of the first products to support RNAmessenger is IBM's Cell hybrid Power chip, which has a DMA engine on each chip.
At one hedge fund that deployed RNAmessenger to accelerate its trading system, a cluster of servers could push about 6,300 transactions per second. Installing the code, the fund's nerds were hoping to get maybe 10,000 transactions per second, according to Cook. But RNAmessenger was able to crank out 53,000 transactions. And the software can push transaction response times down from milliseconds to microseconds, and on Wall Street, as on Main Street, time is money. (Unfortunately, a little bit of time is a lot of money for hedge funds, and a lot of time for normal human beings ain't worth all that much money).
Cook is not impressed with memory appliances, like the one from Violin Memory, and flash-based front ends that storage makers are adding to their disk arrays to boost throughput. "These technologies accelerate storage, but we are accelerating the application itself," he says with a laugh. He also heaped scorn on the overcommitment algorithms that server virtualization hypervisors are being outfitted with. "This overcommits memory by 800 to 1,000 per cent, and then along comes a peak workload - what now?"
So far, the RNA stack has been implemented on various Unixes and Linuxes, but does not have Windows support as yet. "We have the capability to do Windows, but it doesn't perform well yet," explains Cook. "But frankly, we have not yet seen a lot of Windows in the high performance computing segments where we are focusing."
The RNAmessenger software will deploy on 32-bit or 64-bit hardware and runs on Sparc, Power (not just Cell), x86, x64, and Itanium processors. And based on early tests, the software can provide anywhere from 10 to 30 times improvement in throughput performance on machines that scale to hundreds of nodes and multiple terabytes of main memory across the nodes. About a dozen companies have tested the code so far in production.
RNAmessenger is priced per server node and costs between $7,500 and $10,000 per machine, depending on the configuration and type of the server. The software at the heart of the memory virtualization has been patented and is most certainly closed source. ®