Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

A service locator is a string that describes how to contact a particular server, such as a RAMCloud storage server or the cluster coordinator. Each service locator specifies a transport along with parameters to that transport. A transport is a particular mechanism for communication, such as "kernel-level TCP" or "Infiniband reliable connected queue-pairs". RAMCloud supports several different transports, and it is relatively straightforward  to build new transports to experiment with new kinds of networking. The parameters in a service locator provide additional information that identify a particular server. For example, in the case of TCP, the parameters specify a host name and port number. Here is an example of a service locator:

tcp:host=rc01,port=11000

The transport name is tcp; it must come first, and is followed by a colon. The remainder of the service locator specifies names and values for parameters. In this locator, two parameters are specified: host has the value rc01, and port has the value 11000. Parameters are separated by commas.

When you start a RAMCloud server, you provide it with its service locator; this tells the server which transport to use, along with other information such as which port it should listen on.

RAMCloud currently supports the following transports:

tcp

Example: tcp:host=rc01,port=11000

The tcp transport uses TCP accessed via standard kernel sockets. This is the most portable of the RAMCloud transports, but unfortunately it is considerably slower than other transports because all data must flow through the kernel.  The tcp transport takes two parameters: host is the name or IP address for the node where the server executes, and port is the port number on which the server listens for connections.

infrc

Example: infrc:host=rc01,port=11000

The infrc transport uses Infiniband reliable connected queue pairs. It is built on the Mellanox RDMA library package, which allows the Infiniband NIC to be accessed directly from user-space applications (kernel bypass). Because of this, infrc provides the lowest latency of all RAMCloud transports, It is the one we recommend you use. In order to use the infrc transport, you will need to install Infiniband NICs and switches, such as those from Mellanox. The infrc transport uses UDP to exchange information during connection setup; the host and port parameters in the service locator identify the server's node and the port on which it is listening for UDP packets to open new connections.Once a connection is open, UDP is no longer used; all communication happens directly using Infiniband.

fast+udp

Example: fast+udp:host=rc01,port=11000

Fast is a transport that uses an unreliable datagram mechanism to deliver packets; the fast transport provides reliable, flow-controlled, in-order delivery on top of the underlying datagram mechanism. The fast transport is distinct from the datagram mechanism, and it can work with any datagram mechanism that implements a simple API. Fast+udp uses kernel UDP sockets as the datagram mechanism; the host and port parameters have the same meaning as for the tcp transport. As with tcp, fast+udp is relatively slow since all packets must pass through the kernel.

fast+infud

Example: fast+infud:

Fast+infud uses the fast transport along with Infiniband unreliable datagrams. Like infrc, it is built on the Mellanox RDMA library package with kernel bypass, so it is about as fast as infrc. Need to fill in details on how to use this transport.

  • No labels