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