스패너 (데이터베이스)
스패너(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]
각주
편집- ↑ 가 나 다 Corbett 등. 2012.
- ↑ 가 나 Shute 등. 2012.
- ↑ “Announcing Cloud Spanner Price Performance Updates”.
- ↑ Clark, Jack (2012년 9월 18일). “Google reveals Spanner, the database tech that can span the planet”. ZDNet. 2021년 8월 4일에 확인함.
- ↑ 《Spanner: Becoming a SQL System》. 2017년 5월 9일. 331–343쪽. doi:10.1145/3035918.3056103. ISBN 9781450341974. S2CID 3055672.
- ↑ Srivastava, Deepti (2017년 2월 14일). “Introducing Cloud Spanner: a global database service for mission-critical applications”. 《Google Cloud Blog》. 2021년 8월 4일에 확인함.
- ↑ “Cloud Spanner: TrueTime and external consistency”. 《Google Cloud》 (영어). 2020년 11월 24일에 확인함.
- ↑ 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.
더 읽기
편집- Clark, Jack (2013년 8월 30일). “Google goes back to the future with SQL F1 database”. 《www.theregister.com》 (영어).