F1 데이터베이스의 온라인 비동기 스키마 변경
Source
Evernote/IFTTT Feedly/Online, Asynchronous Schema Change in F1.md
Summary
구글의 분산 데이터베이스 F1(AdWords용)에서 스키마 변경 시 서비스 중단 없이 모든 서버가 동시에 변경되지 않아도 되는 ‘온라인 비동기 스키마 변경’ 프로토콜을 소개합니다. 이 프로토콜은 서버들이 서로 다른 스키마 버전을 사용하더라도 데이터 무결성을 유지할 수 있도록 하며, 일반적인 스키마 변경이 초래할 수 있는 데이터 손상(anomalies)을 방지하기 위해 안전한 변경 시퀀스로 대체하는 방법을 제시합니다. 핵심 조건은 모든 서버가 최대 1개 버전 뒤처져야 한다는 것입니다.
Key Points
- F1 데이터베이스에서 스키마 변경 중에도 모든 데이터에 대한 읽기/쓰기 가능(Online)
- 서버 간 스키마 버전 전환 시점의 차이 허용(Asynchronous)
- 데이터 손상 방지를 위해 위험한 스키마 변경을 안전한 시퀀스로 대체
- 정확성 보장을 위한 전제 조건: 모든 서버는 최대 1개 스키마 버전만 뒤처져야 함
- 구글 AdWords 데이터 저장을 위한 F1 시스템의 실제 구현 사례 포함