Skip to main content
QUICK REVIEW

[논문 리뷰] Constant RMR Recoverable Mutex under System-wide Crashes

Dhoked, Sahil, Golab, Wojciech|arXiv (Cornell University)|2023. 01. 01.
Distributed systems and fault tolerance인용 수 2
한 줄 요약

이 논문은 캐시 일致성(CC) 및 분산 공유 메모리(DSM) 모델에서 시스템 전체 장애 시에도 작동하는 두 가지 새로운 복구 가능한 상호배제(RME) 락을 제안한다. 표준 원자 명령어(CAS, FAS)만을 사용하여, 각 프로세스당 일정한 공간과 O(1) 최악의 경우 RMR 복잡도를 달성하면서도 동적으로 생성된 스레드를 지원한다. 주요 기여는 RMR 복잡도에서 시스템 전체 장애 모델과 개별 장애 모델 간의 증명 가능한 분리성을 보여주며, 개별 장애 모델이 Ω(log n / log log n)의 하한을 가진 반면, 시스템 전체 장애 모델에서는 상수 수준의 RMR 성능을 달성할 수 있음을 입증한다.

ABSTRACT

Recoverable mutual exclusion (RME) is a fault-tolerant variation of Dijkstra’s classic mutual exclusion (ME) problem that allows processes to fail by crashing as long as they recover eventually. A growing body of literature on this topic, starting with the problem formulation by Golab and Ramaraju (PODC'16), examines the cost of solving the RME problem, which is quantified by counting the expensive shared memory operations called remote memory references (RMRs), under a variety of conditions. Published results show that the RMR complexity of RME algorithms, among other factors, depends crucially on the failure model used: individual process versus system-wide. Recent work by Golab and Hendler (PODC'18) also suggests that explicit failure detection can be helpful in attaining constant RMR solutions to the RME problem in the system-wide failure model. Follow-up work by Jayanti, Jayanti, and Joshi (SPAA'23) shows that such a solution exists even without employing a failure detector, albeit this solution uses a more complex algorithmic approach. In this work, we dive deeper into the study of RMR-optimal RME algorithms for the system-wide failure model, and present contributions along multiple directions. First, we introduce the notion of withdrawing from a lock acquisition rather than resetting the lock. We use this notion to design a withdrawable RME algorithm with optimal O(1) RMR complexity for both cache-coherent (CC) and distributed shared memory (DSM) models in a modular way without using an explicit failure detector. In some sense, our technique marries the simplicity of Golab and Hendler’s algorithm with Jayanti, Jayanti and Joshi’s weaker system model. Second, we present a variation of our algorithm that supports fully dynamic process participation (i.e., both joining and leaving) in the CC model, while maintaining its constant RMR complexity. We show experimentally that our algorithm is substantially faster than Jayanti, Jayanti, and Joshi’s algorithm despite having stronger correctness properties. Finally, we establish an impossibility result for fully dynamic RME algorithms with bounded RMR complexity in the DSM model that are adaptive with respect to space, and provide a wait-free withdraw section.

연구 동기 및 목표

  • 전원 장애로 인해 모든 프로세스가 동시에 장애를 겪는 상황에서 캐시 일관성(CC) 및 분산 공유 메모리(DSM) 모델에서 시스템 전체 장애를 견딜 수 있는 RME 락을 설계한다.
  • CC 및 DSM 모델에서 모두 O(1) 최악의 경우 RMR 복잡도를 달성하여, 개별 장애 모델에서 알려진 하한을 초월한다.
  • 사전 할당 없이 런타임에 임의의 이름을 가진 스레드가 프rotocol에 동적으로 참여할 수 있도록 지원한다.
  • 유한한 복구 및 유한한 종료 성질을 보장하여, 장애 이후 효율적이고 예측 가능한 재시작을 가능하게 한다.
  • 최악의 경우 RMR 복잡도 측면에서 시스템 전체 장애 모델과 개별 장애 모델 간의 이론적 분리를 입증한다.

제안 방법

  • 비판적 섹션 접근과 복구 상태를 제어하기 위해 세 단계 락(Lock[0], Lock[1], Lock[2])을 사용하는 이중 단계 RME 프로토콜을 설계한다.
  • 순서 번호(Seq)와 상태 추적(Sp, Sq, CSowner, Stop)을 활용하여 프로세스 상태를 조율하고, 복구 중 상호배제를 보장한다.
  • CAS와 FAS 원자 명령어를 사용하여 락 획득 및 해제를 구현하여, 시스템 전체 장애 상황에서도 정확성을 확보한다.
  • 장애 이후 복구를 위해 프로세스가 ℓ.recoverp()를 호출하도록 하며, 이는 이전 상태에 따라 IN REM 또는 IN CS를 반환한다.
  • 각 프로세스당 28개의 프로그램 카운터 상태를 가진 상태 기계를 사용하여 진행 상황을 추적하고, 장애 이후 정확한 재개를 보장한다.
  • 접근 제어 및 유한한 복구 및 종료를 보장하기 위해 세 단계 락 추상화(Lock[i].try, Lock[i].exit, Lock[i].recover)를 활용한다.

실험 결과

연구 질문

  • RQ1CC 및 DSM 모델에서 시스템 전체 장애 상황에서도 RME 락이 O(1) 최악의 경우 RMR 복잡도를 달성할 수 있는가?
  • RQ2사전 할당 없이 동적으로 생성된 스레드를 지원하면서도 일정한 공간과 RMR 성능을 유지할 수 있는 RME 락을 설계할 수 있는가?
  • RQ3기존 하한이 존재하는 개별 장애 모델과 비교해 복구 가능한 RMR 복잡도 측면에서 시스템 전체 장애 모델이 더 우수한 성능을 보일 수 있는가?
  • RQ4시스템 전체 장애 모델에서 O(1) RMR 성능을 유지하면서도 유한한 복구 및 유한한 종료 성질을 확보할 수 있는가?
  • RQ5시스템 전체 장애의 어떤 구조적 특성이 개별 장애와 비교해 RMR 복잡도의 분리 가능성을 가능하게 하는가?

주요 결과

  • 첫 번째 알고리즘은 각 프로세스당 일정한 공간과 함께 CC 모델에서 O(1) 최악의 경우 RMR 복잡도를 달성하며, 동적 스레드 참여를 지원한다.
  • 두 번째 알고리즘은 첫 번째 알고리즘을 확장하여 동일한 공간 및 동적 참여 조건 하에 CC 및 DSM 모델 모두에서 O(1) 최악의 경우 RMR 복잡도를 달성한다.
  • 이 알고리즘들은 표준 하드웨어 지원(CAS, FAS) 하에서 두 모델 모두에서 O(1) 최악의 경우 RMR 복잡도를 달성한 최초의 알고리즘이다.
  • 이 연구는 이론적 분리를 입증한다: 시스템 전체 장애 모델에서는 O(1) RMR가 가능하지만, 개별 장애 모델은 Ω(log n / log log n)의 하한을 가진다.
  • 프로토콜은 비판적 섹션 재진입(CSR), 상호배제, 음식 기다림 방지, 유한한 복구 및 유한한 종료를 보장한다.
  • 모든 구성, 장애 및 재시작 시나리오에서 정확성을 검증하기 위해 형식적 귀납적 불변식을 증명하였다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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