Skip to main content
QUICK REVIEW

[논문 리뷰] Pay One, Get Hundreds for Free: Reducing Cloud Costs through Shared Query Execution

Renato Marroquín, Ingo Müller|arXiv (Cornell University)|2018. 09. 01.
Advanced Database Systems and Queries참고 문헌 19인용 수 5
한 줄 요약

이 논문은 아마존 아테나와 구글 비그쿼리와 같은 클라우드 기반 쿼리-as-a-service 시스템에서 다중 쿼리를 공유 실행할 수 있도록 SQL 수준의 쿼리 재작성 기법을 제안한다. 이는 쿼리를 단일 실행으로 배치함으로써 비용을 절감한다. 기반 엔진을 수정하지 않고도 데이터 접근을 공유함으로써, 최대 107배의 비용 절감과 66배의 처리량 향상을 달성하였으며, 비용은 보통 단일 쿼리와 유사해지며, 이는 바이트 기반 청구 모델 덕분이다.

ABSTRACT

Cloud-based data analysis is nowadays common practice because of the lower system management overhead as well as the pay-as-you-go pricing model. The pricing model, however, is not always suitable for query processing as heavy use results in high costs. For example, in query-as-a-service systems, where users are charged per processed byte, collections of queries accessing the same data frequently can become expensive. The problem is compounded by the limited options for the user to optimize query execution when using declarative interfaces such as SQL. In this paper, we show how, without modifying existing systems and without the involvement of the cloud provider, it is possible to significantly reduce the overhead, and hence the cost, of query-as-a-service systems. Our approach is based on query rewriting so that multiple concurrent queries are combined into a single query. Our experiments show the aggregated amount of work done by the shared execution is smaller than in a query-at-a-time approach. Since queries are charged per byte processed, the cost of executing a group of queries is often the same as executing a single one of them. As an example, we demonstrate how the shared execution of the TPC-H benchmark is up to 100x and 16x cheaper in Amazon Athena and Google BigQuery than using a query-at-a-time approach while achieving a higher throughput.

연구 동기 및 목표

  • 사용자가 처리하는 바이트 수에 따라 청구되는 클라우드 기반 쿼리-as-a-service 시스템에서 높은 실행 비용을 줄이기 위해.
  • 기반 데이터베이스 엔진을 수정하거나 클라우드 제공업체의 지원을 요구하지 않고도 상당한 비용 절감을 가능하게 하기 위해.
  • 단지 SQL 수준의 변환만을 사용하여 대규모에서의 공유 쿼리 실행의 가능성과 이점을 탐색하기 위해.
  • 재작성으로 쿼리를 배치함으로써 기존 청구 모델 하에서 추가 쿼리의 마진 비용을 거의 제로로 만들 수 있음을 입증하기 위해.

제안 방법

  • 각 테이블이 어느 원본 쿼리에 속하는지 추적할 수 있도록 중첩되고 주석이 달린 표현을 사용해 다중 동시 SQL 쿼리를 단일 배치 쿼리로 재작성한다.
  • 사용자나 엔진의 수정 없이도 쿼리를 투명하게 그룹화하고 재작성할 수 있도록 미들웨어 계층을 사용한다.
  • 각 연산자에서 공유 실행과 선택적 출력 프로젝션을 가능하게 하기 위해 중간 결과에 쿼리 식별자를 주석으로 표시한다.
  • 다양한 쿼리 간의 공유를 극대화하기 위해, 특히 공통 조인과 스캔이 포함된 경우, 글로벌 논리적 실행 계획을 DAG로 구성한다.
  • 비용 기반 최적화 오버헤드를 피하기 위해, 글로벌 계획을 트리 구조의 계획으로 수동으로 변환하며, 영향력이 큰 중간 결과를 물리적으로 생성하는 데 집중한다.
  • TPC-H 벤치마크를 사용해 다양한 배치 크기와 구성에서 아마존 아테나와 구글 비그쿼리에서 성능과 비용을 평가한다.

실험 결과

연구 질문

  • RQ1기반 엔진을 수정하지 않고도 서버리스, SQL 기반 쿼리-as-a-service 시스템에서 공유 쿼리 실행이 클라우드 쿼리 비용을 줄일 수 있는가?
  • RQ2엔진 수준의 변경이 아닌 SQL 수준의 재작성으로 쿼리를 배치함으로써 비용 절감을 얼마나 달성할 수 있는가?
  • RQ3쿼리들이 동일하지는 않지만 겹치는 데이터를 액세스할 경우, 공유 실행은 처리량과 실행 시간에 어떤 영향을 미치는가?
  • RQ4공통 중간 결과를 물리적으로 생성하는 것과 그로 인한 비용 및 성능 향상 사이의 상호 교환 관계는 어떠한가?
  • RQ5단일 글로벌 실행 계획이 유형별 그룹화 대비 비용과 처리량 측면에서 더 우수한 성능을 보일 수 있는가?

주요 결과

  • 공유 실행을 통해 아마존 아테나에서 TPC-H 쿼리 6의 128개 인스턴스를 실행할 경우 비용은 $3.417에서 $0.028로 감소하여 122배의 비용 절감과 66배의 처리량 향상을 달성하였다.
  • 구글 비그쿼리에서는 쿼리 10을 제외한 동일한 워크로드에서 비용은 $16.07에서 $0.088로 16배 감소했고, 처리량은 10배 향상되어 최대 128배의 절감을 달성하였다.
  • 비그쿼리에서 글로벌 공유 계획은 개별 실행 대비 처리량 5배 향상과 비용 9.7배 향상 성과를 보였으며, 실행 시간의 21%는 공유 중간 결과를 물리적으로 생성하는 데 소요되었다.
  • 물리적 생성 오버헤드가 있음에도 불구하고, 바이트 기반 청구 모델 덕분에 배치 크기가 증가함에 따라 공유 실행 비용은 거의 수평선을 유지했으며, 추가 쿼리는 거의 무료가 되었다.
  • 비최적화 가능한 쿼리를 제외한 경우 아마존 아테나에서 최대 107배, 비그쿼리에서 최대 128배의 비용 절감을 달성하여, SQL 수준의 재작성이 비용 절감 잠재력을 보여주었다.
  • 쿼리별 주석과 선택적 결과 프로젝션을 활용함으로써, 복잡하고 정확히 일치하지 않는 쿼리에 대해서도 이 방법이 효과가 있음을 입증하였다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.