레이 GCS

IT 위키

레이 GCS(Global Control Store)는 Ray 클러스터의 전역 상태 정보를 저장하고 관리하는 중앙 구성 요소이다.

1 개요[편집 | 원본 편집]

GCS는 Ray 클러스터 내 모든 작업, 객체, 함수, 이벤트 등의 메타데이터를 저장하는 전역 키-값 저장소로, Ray의 제어 흐름을 중앙 집중화하여 구성 요소 간의 복잡한 상태 동기화를 단순화한다. Ray 2.0 이후부터는 GCS(Global Control Service)라는 명칭으로 불린다.

2 주요 기능[편집 | 원본 편집]

  • 작업(Task), 객체(Object), 함수(Function), 이벤트(Event) 테이블 저장
  • 클러스터 상태를 위한 Pub/Sub 기능 제공[1]
  • Web UI, 디버깅, 프로파일링 툴 등에 정보 제공
  • 구성 요소의 상태 복구 시 참조되는 계보(lineage) 정보 유지
  • 액터 메타데이터(IP, 포트 등) 등록 및 조회

3 특징[편집 | 원본 편집]

  • GCS는 기본적으로 헤드 노드에서 실행된다.
  • 모든 구성 요소는 GCS를 통해 간접적으로 상태를 공유하기 때문에 자체적으로는 무상태(stateless)로 유지된다.
  • 이러한 구조는 장애 발생 시 재시작을 용이하게 하며, 구성 요소 간 독립 확장을 가능하게 한다.

4 장애 허용[편집 | 원본 편집]

  • 기본적으로 GCS는 단일 장애 지점(SPOF)이다.
  • Ray 2.0 이상에서는 외부 고가용성 Redis를 활용하여 Kubernetes 환경에서 GCS 장애 허용 구성이 가능하다.

5 역할 요약[편집 | 원본 편집]

  • 클러스터의 중앙 메타데이터 저장소
  • 작업 스케줄링 및 객체 배포 시 상태 기준점 제공
  • 구성 요소 재시작 및 복구를 위한 기준 상태 보존

6 같이 보기[편집 | 원본 편집]

7 참고 문헌[편집 | 원본 편집]

  • Moritz, Philipp et al. Ray: A Distributed Framework for Emerging AI Applications. OSDI 2018.
  • Ray Team. Global Control Store (GCS). https://docs.ray.io

8 각주[편집 | 원본 편집]

  1. Pub/Sub은 Publish-Subscribe의 줄임말로, 생산자(Publisher)가 전송한 메시지를 수신자(Subscriber)가 비동기적으로 받아보는 방식이다. Ray에서는 작업 상태 변경, 객체 생성 등과 같은 이벤트를 GCS가 브로드캐스트하면, 이를 구독한 구성 요소들이 수신하여 처리한다.