Skip to main content
QUICK REVIEW

[논문 리뷰] Datacenter RPCs can be General and Fast

Anuj Kalia, Michael Kaminsky|arXiv (Cornell University)|2018. 06. 02.
Interconnection Networks and Systems참고 문헌 45인용 수 74
한 줄 요약

eRPC는 손실이 있는 Ethernet을 포함한 일반 상용 데이터센터 네트워크에서 네트워크 특화 하드웨어 없이도 특화 시스템과 성능을 맞춥니다.

ABSTRACT

It is commonly believed that datacenter networking software must sacrifice generality to attain high performance. The popularity of specialized distributed systems designed specifically for niche technologies such as RDMA, lossless networks, FPGAs, and programmable switches testifies to this belief. In this paper, we show that such specialization is not necessary. eRPC is a new general-purpose remote procedure call (RPC) library that offers performance comparable to specialized systems, while running on commodity CPUs in traditional datacenter networks based on either lossy Ethernet or lossless fabrics. eRPC performs well in three key metrics: message rate for small messages; bandwidth for large messages; and scalability to a large number of nodes and CPU cores. It handles packet loss, congestion, and background request execution. In microbenchmarks, one CPU core can handle up to 10 million small RPCs per second, or send large messages at 75 Gbps. We port a production-grade implementation of Raft state machine replication to eRPC without modifying the core Raft source code. We achieve 5.5 microseconds of replication latency on lossy Ethernet, which is faster than or comparable to specialized replication systems that use programmable switches, FPGAs, or RDMA.

연구 동기 및 목표

  • 일반 목적 RPC가 일반적인 데이터센터 네트워크에서 최첨단 성능을 달성할 수 있음을 입증한다.
  • 작은 메시지 처리량이 높고 큰 메시지 대역폭과 확장성을 제공하는 설계 원리를 식별한다.
  • eRPC가 손실 없는 패브릭 없이도 손실이 있는 Ethernet에서 효율적으로 작동할 수 있음을 보여준다.
  • Raft와 Masstree를 핵심 Raft 수정 없이 eRPC로 포팅하여 실용성을 입증한다.

제안 방법

  • 일반적인 경우(작은 메시지, 혼잡이 없는 네트워크, 짧은 핸들러)에 최적화된 고성능 RPC 프레임워크를 설계한다.
  • 스위치 버퍼 드롭을 방지하고 코어당 일정한 NIC 메모리 차지를 유지하며 확장성을 달성하기 위해 단일-BDP 흐름 제어를 사용한다.
  • 제로 카피 가능한 메시지 버퍼(msgbuf) 레이아웃과 드문 재전송 또는 실패를 위한 제어된 플러시를 위한 신호 없는 전송을 구현한다.
  • 종단 간 흐름 제어와 확장 가능한 세션 관리를 가능하게 하는 세션 크레딧을 가진 클라이언트 주도 와이어 프로토콜을 지원한다.
  • lossy Ethernet 및 InfiniBand를 포함한 여러 NIC 및 네트워크 유형에서 평가하고 특수 시스템과 비교한다.

실험 결과

연구 질문

  • RQ1일반 목적 RPC 라이브러리가 일반 상용 데이터센터 네트워크에서 특수 시스템과 비교할 만한 성능을 달성할 수 있는가?
  • RQ2손실 없는 패브릭 없이 작은 RPC의 높은 메시지 속도와 큰 메시지의 높은 대역폭을 가능하게 하는 설계 원칙은 무엇인가?
  • RQ3NIC 및 스위치 제약을 고려할 때 많은 노드와 CPU 코어에서 이 접근 방식의 확장성은 어느 정도인가?
  • RQ4핵심 소스 변경 없이 eRPC가 기존 생산 등급 시스템(예: Raft, Masstree)과 통합될 수 있는가?

주요 결과

  • 하나의 코어가 초당 최대 10 Million 개의 작은 RPC를 처리할 수 있다.
  • 하나의 코어로 75 Gbps의 큰 메시지를 보낼 수 있다.
  • 마이크로 벤치마크의 중앙값 RPC 레이턴시는 2.3 마이크로초이다.
  • Three-way Raft replication latency on lossy Ethernet is 5.5 microseconds.
  • eRPC는 lossless fabrics 없이, 핵심 Raft 소스를 수정하지 않고도 높은 처리량과 낮은 레이턴시를 달성한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.