스패너 (데이터베이스)

스패너(Spanner)는 구글에서 개발한 분산 SQL 데이터베이스 관리 및 저장 서비스이다. 글로벌 트랜잭션, 강력한 일관된 읽기, 자동 다중 사이트 복제 및 장애 조치와 같은 기능을 제공한다. 스패너는 광고 사업인 구글 애즈, Gmail 및 구글 포토의 데이터베이스인 구글 F1에서 사용된다.

특징 편집

스패너는 변경 가능한 구조화된 대량의 데이터를 저장한다. 스패너를 사용하면 사용자는 동기식 복제를 통해 해당 데이터에 대한 강력한 일관성과 고가용성을 유지하면서 관계형 데이터와 함께 SQL을 사용하여 임의 쿼리를 수행할 수 있다.

스패너의 주요 기능:

  • 트랜잭션은 스패너 유니버스 내의 행, 열, 테이블, 데이터베이스에 걸쳐 적용될 수 있다.
  • 클라이언트는 자동 다중 사이트 복제 및 장애 조치를 사용하여 데이터의 복제 및 배치를 제어할 수 있다.
  • 복제는 동기식이며 강력한 일관성을 갖는다.
  • 읽기는 강력한 일관성을 가지며 오래된 읽기를 허용하도록 데이터 버전이 관리된다. 클라이언트는 가비지 수집 기간에 따라 이전 버전의 데이터를 읽을 수 있다.
  • 데이터 읽기 및 쓰기를 위한 기본 SQL 인터페이스를 지원한다.

역사 편집

스패너는 2012년에 내부 구글 데이터 센터용으로 처음 설명되었다.

스패너의 SQL 기능은 2017년에 추가되었으며 SIGMOD 2017 문서에 문서화되었다. 2017년에 '클라우드 스패너'라는 이름으로 구글 클라우드 플랫폼의 일부로 제공되었다.

건축 편집

스패너는 작업의 일부로 팩소스 알고리즘을 사용하여 최대 수백 대의 서버에 데이터를 샤딩(분할)한다. 글로벌 일관성을 보장하기 위해 GPS 시계 및 원자 시계를 사용하여 하드웨어 지원 시계 동기화를 많이 사용한다. 트루타임(TrueTime)은 구글 분산 클라우드 인프라의 브랜드 이름으로, 스패너가 전 세계 데이터 센터에서 단조롭게 증가하는 타임스탬프를 생성할 수 있는 기능을 제공한다.

구글의 F1 SQL 데이터베이스 관리 시스템(DBMS)은 스패너를 기반으로 구축되어 구글의 맞춤 MySQL 변형을 대체한다.