Skip to main content
QUICK REVIEW

[논문 리뷰] Partisan: Enabling Cloud-Scale Erlang Applications

Christopher Meiklejohn, Heather Miller|arXiv (Cornell University)|2018. 02. 07.
Cloud Computing and Resource Management참고 문헌 19인용 수 4
한 줄 요약

Partisan은 Erlang용 토폴로지에 종속되지 않는 채널 기반 분포 레이어로, 런타임 시 클러스터 토폴로지(예: 완전 매쉬, 피어 투 피어, 클라이언트-서버, 퍼블리시-서브스크라이브)를 선택할 수 있게 해주어 확장성과 성능을 향상시킵니다. 메시지를 여러 통신 채널에 분산함으로써 Partisan은 혼잡 상황에서 최대 30배 빠른 성능과 분산 데이터베이스 워크로드에서 13.5배 향상된 성능을 달성합니다. Distributed Erlang 대비.

ABSTRACT

In this work, we present an alternative distribution layer for Erlang, named Partisan. Partisan is a topology-agnostic distributed programming model and distribution layer that supports several network topologies for different application scenarios: full mesh, peer-to-peer, client-server, and publish-subscribe. Partisan allows application developers to specify the network topology at runtime, rather than encoding topology-specific concerns into application code. Partisan additionally adds support for more channels, enabling users to distribute messages over multiple channels, sometimes in parallel. We implement and evaluate Partisan in the Erlang programming language and use it in the evaluation of three scenarios. The first scenario compares the raw performance between Distributed Erlang and Partisan, and shows that Partisan performs on par with or better than Distributed Erlang. The second scenario demonstrates that distributing traffic over multiple connections enables Partisan to perform up to 18x better under normal conditions, and up to 30x better in situations with network congestion and high concurrency. The third scenario demonstrates, using existing applications, that configuring the topology at runtime allows applications to perform up to 13.5x better or scale to clusters of thousands of nodes over the general-purpose runtime distribution layer.

연구 동기 및 목표

  • 현대의 클라우드 규모 애플리케이션에서 다양한 네트워크 토폴로지를 요구하는 상황에서 Distributed Erlang의 확장성 한계를 해결한다.
  • 애플리케이션 코드 수정 없이 런타임 시 최적의 클러스터 토폴로지를 선택할 수 있도록 한다.
  • Head-of-line 차단, 단일 채널 통신, 제곱형 연결 오버헤드로 인한 Distributed Erlang의 성능 저하 문제를 해결한다.
  • 다중 통신 채널과 토폴로지 특화를 통해 병렬성과 장애 내성 능력을 향상시킨다.
  • 키-밸류 스토어와 데이터베이스와 같은 실제 분산 애플리케이션에서 상당한 성능 및 확장성 향상을 입증한다.

제안 방법

  • 런타임 시 선택 가능한 다수의 클러스터 토폴로지(완전 매쉬, 피어 투 피어, 클라이언트-서버, 퍼블리시-서브스크라이브)를 지원하는 토폴로지에 종속되지 않는 분산 프로그래밍 모델을 설계한다.
  • 메시지 분산을 위해 다중 연결을 활용해 병렬성을 극대화하고 Head-of-line 차단을 줄이는 채널 기반 완전 매쉬 백엔드를 구현한다.
  • Partisan 레이어를 Distributed Erlang의 대체로 통합하여 Erlang의 경량 프로세스와 메시지 전달 모델을 유지한다.
  • 대규모 클러스터에서의 확장성 평가를 위해 G-Counter 기반 분산 데이터 구조를 사용한다.
  • 세 가지 시나리오에서 성능을 평가한다: 순수 성능 비교, 혼잡 상황에서의 다중 채널 메시징, 대규모 클러스터에서의 동적 토폴로지 구성.
  • 기존 Erlang 애플리케이션(예: Riak Core)을 활용해 실제 환경에서의 성능 향상 여부를 검증한다.

실험 결과

연구 질문

  • RQ1Erlang용 분포 레이어가 응용 프로그램 코드 변경 없이도 런타임 시 여러 클러스터 토폴로지를 지원할 수 있는가?
  • RQ2다중 채널 메시지 분산이 고병렬성 또는 고지연 네트워크 조건에서 성능 향상에 얼마나 기여하는가?
  • RQ3대규모 클러스터(예: 1000+ 노드)에서 토폴로지 특화가 분산 애플리케이션의 확장성에 어떤 영향을 미치는가?
  • RQ4분산 데이터베이스와 키-밸류 스토어와 같은 다양한 워크로드에서 Partisan이 Distributed Erlang를 초월할 수 있는가?
  • RQ5Distributed Erlang의 확장성 한계가 약 60개 노드를 넘어서는 시점에서 발생하는 성능 저하 요인은 무엇이며, 아키텍처적 개선으로 이를 완화할 수 있는가?

주요 결과

  • Partisan은 순수 메시지 전달 벤치마크에서 Distributed Erlang와 동등하거나 더 뛰어난 성능을 달성한다.
  • 일반 조건에서는 최대 18배, 네트워크 혼잡 및 고병렬성 조건에서는 최대 30배까지 성능 향상을 달성한다.
  • 런타임 토폴로지 선택을 통해 동일한 경량 키-밸류 스토어가 256에서 1024개 노드로 수평 확장 가능함을 입증한다.
  • 동일한 응용 프로그램이 기본 완전 매쉬 대신 최적화된 토폴로지(예: 클라이언트-서버 또는 퍼블리시-서브스크라이브)를 사용할 경우 최대 13.5배 빠른 성능을 기록한다.
  • 병렬 통신 채널을 활용함으로써 Partisan은 Head-of-line 차단을 효과적으로 완화하고 직렬화 오버헤드의 영향을 줄인다.
  • 이 설계는 Akka Cluster와 Microsoft Orleans과 같은 다른 액터 기반 시스템에도 일반화 가능하며, Riak Core에의 적용 가능성을 통해 이를 입증한다.

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

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

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

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