Status | Authors | Coach | DRIs | Owning Stage | Created |
---|---|---|---|---|---|
proposed | - |
이 문서는 진행 중인 작업이며 Cells 디자인의 매우 초기 상태를 대표합니다. 중요한 측면들이 문서화되지 않았지만, 우리는 나중에 이를 추가할 것으로 기대하고 있습니다. 이것은 Cells를 위한 하나의 가능한 아키텍처이며, 이를 구현할 접근 방식을 결정하기 전에 대안과 대조할 것을 의도하고 있습니다. 우리가 이 접근 방식을 구현하지 않기로 결정하더라도, 이 문서는 이를 선택하지 않은 이유를 문서화하기 위해 유지될 것입니다.
Cells: Backups
각 Cell은 자체 백업을 수행하고 결과적으로 고유한 백업/복원 절차를 갖게 됩니다.
1. 정의
GitLab 백업은 애플리케이션에서 사용되는 PostgreSQL 데이터베이스와 Git 리포지터리 데이터의 백업을 수행합니다.
2. 데이터 흐름
각 Cell은 백업할 애플리케이션 데이터베이스 디렉터리을 갖고 있습니다 (예: main
및 ci
).
또한 직접 PostgreSQL을 통해 액세스할 수 있는 클러스터 전역의 메타데이터 테이블 (예: users
테이블)이 있을 수 있습니다.
3. 제안
3.1. 클러스터 전역 메타데이터
현재 클러스터 전역 메타데이터 테이블에 대한 액세스 방법은 알려지지 않았습니다. 클러스터 전역 메타데이터 테이블을 별도로 백업할지 또는 각 Cell이 클러스터 전역 메타데이터 테이블의 사본을 백업할지 선택할 수 있습니다.
3.2 일관성
3.2.1 독립적으로 백업 수행
각 Cell은 API를 통해 서로 통신하며 users
테이블에 조인이 없을 것이므로, 각 Cell이 서로 독립적으로 백업하는 것이 수용될 것입니다.
3.2.2 스냅샷 강제
PostgreSQL 데이터베이스에 대해 거의 일관된 백업을 위해 각 Cell이 거의 동시에 스냅샷을 취하도록 요구할 수 있습니다.
4. 평가
Cell 수가 증가함에 따라 모든 Cell에 대해 동일한 시간에 스냅샷을 취하는 것은 가능성이 낮을 것입니다. 그러므로 각각의 독립적으로 백업을 수행하는 것이 더 나은 옵션입니다.