Original URL: http://www.theregister.co.uk/2009/02/02/rna_virtual_memory/

Ex-IntelCrayAkamai startup rejiggers virtualization

Servers splash in memory pool

By Timothy Prickett Morgan

Posted in Virtualization, 2nd February 2009 17:58 GMT

RNA Networks - a startup based in server development hotbed Portland, Oregon - has launched a stack of systems software that provides memory virtualization and pooling for servers that are connected by a network.

While most server virtualization tools aim to carve up a single box into multiple virtual machines with their own virtual processors, memory, and I/O, RNA's memory virtualization platform aggregates capacity across servers. In particular, the company's software aggregates the main memory on server nodes in the network and makes a giant shared pool of virtual memory available to each server node, giving it more room for applications to play.

The approach embodied in RNAmessenger, the first product to be created out of the memory virtualization platform, is a much less tight coupling of main memory than symmetric multiprocessing (SMP) or non-uniform memory access (NUMA) clustering used in server electronics. But if each server in a network gets access to more main memory - even if it exists down a wire on another machine, and applications go faster or can get larger - the effect is the same.

RNA Networks was founded in 2006 and has been operating in stealth mode for the past 18 months. The company's founders come from supercomputer maker Cray, chip maker Intel, host bus adapter maker QLogic, and Web caching provider Akamai, and it has lots of expertise in caching, interconnects, and remote direct access memory (RDMA) technology, according to Clive Cook, chief executive officer at RNA Networks.

Founded by Ranjit Pandit, who lead the database clustering project at SilverStorm Technologies (which was eaten by QLogic) and who worked on the InfiniBand interconnect and the Pentium 4 chip while at Intel, RNA has received $7m in venture capital to date.

According to Cook, memory is the main bottleneck in computing today, and processors get all the press releases and focus. He says that the 16-core processors that are on the horizon will behave, from a performance standpoint, like a dual-core processor from last year on a lot of applications because of memory bottlenecks.

Moreover, he says that the two-year replacement cycle for servers at a lot of companies has more to do with the need to add more main memory than to add processing capacity. And from an economic standpoint, memory represents about 50 per cent of the power on a motherboard for a server these days, and an almost as large piece of the cost of the server too. Using the memory efficiently is therefore as important to IT operations as is using CPUs efficiently.

"For any IT organization, we believe that memory has the greatest impact on performance and scalability," says Cook. "Nobody is directly addressing the problem of getting applications access to a global, shared pool of memory - and doing so on existing infrastructure."

RNAmessenger, RNA Networks' first commercial product, was released in the fourth quarter of last year in a limited beta and today become generally available. Cook says that the company will be creating versions of its memory virtualization and pooling technology for various workloads, since each kind of workload puts different levels of stress on memory and I/O subsystems as well as processors.

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. ®