[논문 리뷰] Harmonia: Near-Linear Scalability for Replicated Storage with In-Network Conflict Detection
Harmonia는 프ogrammable 네트워크 스위치를 사용해 읽기-쓰기 충돌 검출을 데이터 플레인으로 이관함으로써 강한 일致성과 거의 선형적 확장성을 달성하는 복제 스토리지 시스템이다. 라인 속도로 데이터 플레인에서 더러운 객체를 추적함으로써, 어떤 복제본도 충돌이 없는 객체에 대한 읽기 요청을 처리할 수 있게 되어, 복제 인자 10일 때 성능 오버헤드 없이 스루풋을 최대 10배까지 향상시킨다.
Distributed storage employs replication to mask failures and improve availability. However, these systems typically exhibit a hard tradeoff between consistency and performance. Ensuring consistency introduces coordination overhead, and as a result the system throughput does not scale with the number of replicas. We present Harmonia, a replicated storage architecture that exploits the capability of new-generation programmable switches to obviate this tradeoff by providing near-linear scalability without sacrificing consistency. To achieve this goal, Harmonia detects read-write conflicts in the network, which enables any replica to serve reads for objects with no pending writes. Harmonia implements this functionality at line rate, thus imposing no performance overhead. We have implemented a prototype of Harmonia on a cluster of commodity servers connected by a Barefoot Tofino switch, and have integrated it with Redis. We demonstrate the generality of our approach by supporting a variety of replication protocols, including primary-backup, chain replication, Viewstamped Replication, and NOPaxos. Experimental results show that Harmonia improves the throughput of these protocols by up to 10X for a replication factor of 10, providing near-linear scalability up to the limit of our testbed.
연구 동기 및 목표
- 복제 수를 늘릴수록 조정 오버헤드로 인해 스루풋이 저하되는 복제 스토리지 시스템의 성능 저하 문제를 해결하기 위해.
- 강한 일치성(선형화 가능성)을 유지하면서 읽기 중심 워크로드에 대해 거의 선형적 확장성을 달성하기 위해.
- 기존의 충돌 검출 방식이 초래하는 성능 저하를 제거하기 위해 이를 네트워크 데이터 플레인으로 이관하고 프로그래머블 스위치를 활용하기 위해.
- 기본 로직을 수정하지 않고도 주-백업, 체인 복제, Viewstamped Replication, NOPaxos와 같은 다양한 복제 프rotocol을 지원하기 위해.
- 네트워크 내 처리가 복제본 간 스케일러블하고 일致성 있는, 저오버헤드 읽기 분배를 가능하게 함을 입증하기 위해.
제안 방법
- 스토리지 클러스터의 모든 읽기 및 쓰기 요청을 모니터링하기 위해 데이터 경로에 프로그래머블 스위치(Barefoot Tofino)를 도입한다.
- 스위치의 데이터 플레인에 실시간으로 진행 중인 쓰기 작업이 있는 객체의 '더러운 집합'을 유지하는 충돌 검출 모듈을 구현한다.
- 각 읽기 요청을 검사하여 진행 중인 쓰기와 충돌이 없는지 확인하고, 충돌이 없다면 요청을 어떤 복제본으로든 리디렉션한다.
- 스위치 장애 복구 시에도 마지막 커밋 지점과 더러운 집합의 일致성을 유지하기 위해 스위치 상태 동기화를 수행한다.
- 클라이언트 및 서버 로직을 확장하여 스위치 기반 라우팅을 지원함으로써 기존 스토리지 시스템(예: Redis)과 통합한다.
- 스위치의 라인 속도 처리 능력을 활용해 거의 영향 없이 지연 시간이 최소화된 충돌 검사를 수행한다.
실험 결과
연구 질문
- RQ1네트워크 내 충돌 검출이 강한 일치성을 유지하면서 복제 스토리지에서 거의 선형적 확장성을 달성할 수 있는가?
- RQ2프로그래머블 스위치가 메모리와 지연 시간을 최소화하면서도 대규모 객체 집합에 대해 효율적으로 일치성을 추적하고 강제할 수 있는가?
- RQ3이 기반의 충돌 검출 메커니즘은 주-백업 및 투표 기반 시스템을 포함한 다양한 복제 프로토콜에 일반화될 수 있는가?
- RQ4충돌 검출을 네트워크로 이관함으로써 복제 수가 증가함에 따라 발생하는 기존 복제 시스템의 성능 저하 문제를 해결할 수 있는가?
- RQ5스위치 장애 또는 복구 시에도 시스템이 높은 스루풋과 낮은 지연 시간을 유지할 수 있는가?
주요 결과
- 복제 인자 10일 때 기존 복제 프로토콜 대비 최대 10배 높은 스루풋을 달성하여 거의 선형적 확장성을 입증했다.
- 충돌이 없는 객체에만 복제본으로 리디렉션함으로써 선형화 가능성을 유지함으로써, 오래된 또는 커밋되지 않은 데이터가 제공되는 것을 방지한다.
- 스위치 데이터 플레인에서 라인 속도로 충돌 검출을 수행하며 성능 오버헤드가 거의 없어 실시간이고 확장 가능한 라우팅 결정이 가능하다.
- 스위치 장애 이후 복구 시에도 스위치 기반의 더러운 집합 추적은 일致성을 유지하며, 스위치 재시작 후 몇 초 내에 전체 스루풋을 복원할 수 있다.
- Harmonia는 핵심 로직을 수정하지 않고도 NOPaxos, Viewstamped Replication, 체인 복제, 주-백업 등 다양한 복제 프로토콜과 호환된다.
- Barefoot Tofino 스위치를 탑재한 일반 하드웨어 클러스터에서의 프로토타입 구현을 통해 이 접근 방식이 실제 환경에서 실용적이고 효율적임을 확인했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.