1 / 15

Reliable Datagram Sockets (RDS)

Reliable Datagram Sockets (RDS). Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com. Agenda. Goals Architecture Overview High Level Design Future. Goals. Provide reliable datagram service performance scalability High Availability simplify application code

Télécharger la présentation

Reliable Datagram Sockets (RDS)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reliable Datagram Sockets(RDS) Ranjit Pandit SilverStorm Technologies rpandit@silverstorm.com

  2. Agenda • Goals • Architecture Overview • High Level Design • Future Datacenter Fabric Workshop –

  3. Goals • Provide reliable datagram service • performance • scalability • High Availability • simplify application code • Maintain sockets API • application code portability • faster time-to-market Keep It Simple !!! Datacenter Fabric Workshop –

  4. Agenda • Goals • Architecture Overview • High Level Design • Future Datacenter Fabric Workshop –

  5. Architecture Overview UDP Applications Oracle 10g Socket Applications User Kernel TCP UDP SDP RDS IP IPoIB InfiniBand Access Layer Host Channel Adapter Datacenter Fabric Workshop –

  6. Architecture Overview • RDS registers with the kernel as driver for Address Family PF_INET_OFFLOAD and Type SOCK_DGRAM • Application creates a RDS socket with socket(2) • arg1 = PF = PF_INET_OFFLOAD (0x26) • arg 2 = Type = SOCK_DGRAM • socket(2) API supported • socket, bind, ioctl, sendmsg, recvmsg, poll, getsockopt/setsockopt Datacenter Fabric Workshop –

  7. Agenda • Goals • Architecture Overview • High Level Design • Future Datacenter Fabric Workshop –

  8. Connection model • Addressing • IPv4 addressing • uses IPoIB for address resolution • Peer-to-peer connection model • node-to-node connection • on-demand connection setup • connect on first sendmsg() • disconnect on error or inactivity • Connection setup/teardown transparent to applications Datacenter Fabric Workshop –

  9. Data and Control Channel • Uses RC QP • Data and Control QP per connection • Selectable MTU • b-copy send/recv • h/w flow control Datacenter Fabric Workshop –

  10. Send • sendmsg() success => guaranteed delivery • allows send pipelining • send error is catastrophic • ENOBUF returned if insufficient credits, application retries • not a common case Datacenter Fabric Workshop –

  11. Receive • Identical to UDP recvmsg() behavior • similar blocking/non-blocking behavior • “Slow” receiver ports are stalled at sender side • combination of activity (LRU) and memory utilization used to detect slow receivers • sendmsg() to stalled destination port returns EWOULDBLOCK, application can retry • recvmsg() on a stalled port un-stalls it Datacenter Fabric Workshop –

  12. High Availability (failover) • Use of RC and on-demand connection setup allows HA • connection setup/teardown transparent to applications • every sendmsg() could result in a connection setup • if a path fails, connection is torn down, next send can connect on an alternate path (different port or different HCA) Datacenter Fabric Workshop –

  13. /proc interface • /proc/driver/rds/config • view and change RDS configurable parameters • /proc/driver/rds/info • info on sessions, stalled ports etc • /proc/driver/rds/stats Datacenter Fabric Workshop –

  14. Agenda • Goals • Architecture Overview • High Level Design • Future Datacenter Fabric Workshop –

  15. Future • AIO • Z-copy • Shared recv queue Datacenter Fabric Workshop –

More Related