스패너 (데이터베이스)

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

특징

편집

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

스패너의 주요 기능:

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

역사

편집

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

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

건축

편집

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

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

각주

편집
  1. Corbett 등. 2012.
  2. Shute 등. 2012.
  3. “Announcing Cloud Spanner Price Performance Updates”. 
  4. Clark, Jack (2012년 9월 18일). “Google reveals Spanner, the database tech that can span the planet”. ZDNet. 2021년 8월 4일에 확인함. 
  5. 《Spanner: Becoming a SQL System》. 2017년 5월 9일. 331–343쪽. doi:10.1145/3035918.3056103. ISBN 9781450341974. S2CID 3055672. 
  6. Srivastava, Deepti (2017년 2월 14일). “Introducing Cloud Spanner: a global database service for mission-critical applications”. 《Google Cloud Blog》. 2021년 8월 4일에 확인함. 
  7. “Cloud Spanner: TrueTime and external consistency”. 《Google Cloud》 (영어). 2020년 11월 24일에 확인함. 
  8. Shute 등. 2012, 19쪽: ‘Summary: We've moved a large and critical application suite from MySQL to F1.’

참고 문헌

편집
  • Corbett, James C; Dean, Jeffrey; Epstein, Michael; Fikes, Andrew; Frost, Christopher; Furman, JJ; Ghemawat, Sanjay; Gubarev, Andrey; Heiser, Christopher; Hochschild, Peter; Hsieh, Wilson; Kanthak, Sebastian; Kogan, Eugene; Li, Hongyi; Lloyd, Alexander; Melnik, Sergey; Mwaura, David; Nagle, David; Quinlan, Sean; Rao, Rajesh; Rolig, Lindsay; Saito, Yasushi; Szymaniak, Michal; Taylor, Christopher; Wang, Ruth; Woodford, Dale (2012). 《Spanner: Google's Globally-Distributed Database》 (PDF). 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI'12). Hollywood, CA. 2012년 9월 18일에 확인함. .
  • Date, Christopher ‘Chris’ J (2004), 〈6. Relations, Part II. The Relational Model〉, 《An Introduction to Database Systems》 8판, Addison Wesley, ISBN 978-0-32119784-9 .
  • Shute, Jeffrey ‘Jeff’; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin ‘Ben’; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Chen, Xin; Jegerlehner, Beat; Littlefield, Kyle; Tong, Phoenix (2012), 〈F1 — the Fault-Tolerant Distributed RDBMS Supporting Google's Ad Business〉, 《Research》 (presentation), SIGMOD .
  • Shute, Jeffrey ‘Jeff’; Oancea, Mircea; Ellner, Stephan; Handy, Benjamin ‘Ben’; Rollins, Eric; Samwel, Bart; Vingralek, Radek; Whipkey, Chad; Rae, Ian; Apte, Himani; Littlefield, Kyle; Cieslewicz, John (2013), 〈F1: A Distributed SQL Database That Scales〉, 《Research》 (presentation), International Conference on Very Large Data Bases .

더 읽기

편집