스패너 (데이터베이스)

위키백과, 우리 모두의 백과사전.

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

특징[편집]

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

스패너의 주요 기능:

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

역사[편집]

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

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

건축[편집]

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

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