[논문 리뷰] SharedDB: Killing One Thousand Queries With One Stone
SharedDB는 공유 고객 및 주문 데이터에 대한 다중 조인을 포함한 겹치는 작업을 단일 통합 실행으로 처리함으로써 수백 개의 동시 쿼리 및 업데이트 간에 계산을 공유함으로써 고 동시성 환경에서 성능과 응답 시간 보장을 향상시키는 혁신적인 배치 중심 데이터베이스 아키텍처를 제안한다. 쿼리를 배치 처리하고 겹치는 작업을 통합 실행함으로써 TPC-W 벤치마크에서 최상위 상용 데이터베이스의 두 배 수준의 처리량을 달성하고, MySQL의 거의 여덟 배에 이르는 성능을 기록한다. 이는 예측 불가능하고 혼합된 워크로드 조건에서도 성립한다.
Traditional database systems are built around the query-at-a-time model. This approach tries to optimize performance in a best-effort way. Unfortunately, best effort is not good enough for many modern applications. These applications require response time guarantees in high load situations. This paper describes the design of a new database architecture that is based on batching queries and shared computation across possibly hundreds of concurrent queries and updates. Performance experiments with the TPC-W benchmark show that the performance of our implementation, SharedDB, is indeed robust across a wide range of dynamic workloads.
연구 동기 및 목표
- 고 동시성 환경에서 엄격한 서비스 수준 합의(SLA)를 충족하지 못하는 전통적인 쿼리-단위 처리 데이터베이스 시스템의 한계를 해결한다.
- 기존 시스템에서 동시 쿼리 및 업데이트 간 간섭으로 인한 성능 저하와 자원 경쟁 문제를 해결한다.
- OLTP, OLAP 및 혼합 워크로드를 포함한 다양한 워크로드를 처리할 수 있는 일반 목적의 데이터베이스 아키텍처를 설계한다. 이는 응답 시간 보장을 유지하는 데 초점이 맞춰져 있다.
- 수동 튜닝이나 로드 제어 메커니즘 없이도 동적이고 예측 불가능한 쿼리 조합을 효율적이고 확장 가능한 방식으로 처리할 수 있도록 공유 실행과 쿼리 배치를 통해 구현한다.
제안 방법
- 겹치는 데이터 액세스 패턴을 가진 다수의 동시 쿼리 및 업데이트를 하나의 실행 계획으로 통합하여 공유 계산을 가능하게 한다.
- 관련 튜플의 결합(예: 독일 및 스위스 고객)에 대해 단일 통합 조인 작업을 수행하여 여러 쿼리를 동시에 처리함으로써 중복 작업을 줄인다.
- 동시 쿼리 수에 관계없이 일관된 성능 스케일링을 보장하기 위해 전체 테이블 조인을 최악의 계산 상한선으로 정의한다.
- 다중 쿼리 최적화 및 데이터 스트림 처리 기법(예: QPipe, CJoin, DataPath)을 도입하고 일반화하여 OLAP 워크로드를 넘어서도 광범위하게 적용 가능하도록 한다.
- 실시간 런타임 시스템을 구현하여 쿼리 및 업데이트의 공유 실행을 동적으로 스케줄링하고 조율함으로써 쿼리당 오버헤드를 최소화한다.
- 표준 관계대수 연산자에 확장 기능을 추가하여 공유 실행 계획을 지원함으로써 표준 SQL 및 관계 연산과의 호환성을 확보한다.
실험 결과
연구 질문
- RQ1고 동시성 및 혼합 워크로드 조건에서 전통적인 쿼리-단위 처리 시스템에 비해 배치 중심의 공유 계산 모델이 더 뛰어난 성능을 발휘할 수 있는가?
- RQ2겹치는 액세스 패턴을 가진 수백 개의 동시 쿼리 간에 공유 실행이 얼마나 많은 중복 계산을 줄일 수 있는가?
- RQ3로드 제어 또는 쿼리 우선순위 지정 메커니즘이 필요 없이 SharedDB가 어떻게 낮은 지연과 높은 처리량을 유지할 수 있는가?
- RQ4공유 계산 모델이 빈번한 소규모 업데이트와 복잡한 분석 쿼리를 포함한 OLTP 및 OLAP 워크로드를 모두 지원하도록 일반화될 수 있는가?
- RQ5쿼리 조건이 다양하게 변할 경우 이상적인 공유가 불가능한 상황에서 공유 실행의 확장성 한계는 어디에 이르는가?
주요 결과
- SharedDB는 고부하 조건에서 TPC-W 벤치마크에서 최상위 상용 관계형 데이터베이스 시스템의 두 배 수준의 처리량을 유지하며, MySQL의 거의 여덟 배에 이르는 성능을 기록한다.
- 가벼운 쿼리(예: '제목으로 항목 검색')와 무거운 쿼리(예: '베스트셀러')를 혼합해도 경과 시간에 대한 성능 저하 없이 뛰어난 성능을 유지한다.
- 공유 기회가 증가함에 따라 동시 쿼리 수가 증가함에 따라 처리량이 단조롭게 증가하므로, 동적 워크로드에서 강력한 확장성을 입증한다.
- 경우의 수가 많은 워크로드에서도 MySQL과 상용 시스템 대비 3배 빠른 성능을 기록하며, 경쟁 시스템이 처리량 붕괴를 겪는 상황에서도 성능을 유지한다.
- 다양한 하드웨어 구성과 쿼리 다양성 수준에서도 성능이 안정적이고 예측 가능하므로, 실제 환경에서의 강건성을 확인한다.
- 쿼리당 오버헤드로 인해 완벽한 확장이 제한되더라도, 특히 혼합되고 예측 불가능한 워크로드에서 기존 시스템보다 훨씬 뛰어난 확장성을 달성한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.