인공지능 신경망을 이용한 데이터베이스 최적화

인공지능 신경망을 이용한 데이터베이스 최적화

최신 데이터베이스 시스템들은 데이터를 쿼리, 처리 및 운영하는데 사용되는 프로그래밍 언어인 “SQL(Structured Query Language)”을 지원한다. SQL은 선언적(declarative)이므로, 사용자가 수행 방법보다는 수행해야 할 작업을 지정해야 한다. 그러므로 쿼리를 가장 잘 실행하는 방법을 결정하는 것은 데이터베이스 시스템에 달려 있으며, 수천 가지 쿼리 방법 중에서 무엇을 사용해야 할지 결정해야 한다.
“좋은” 쿼리 계획은 몇 초 만에 응답을 반환할 수 있는 반면, “나쁜” 쿼리 계획은 한 달이상이 걸릴 정도로 비효율적으로 실행될 수 있기에 많은 대규모 데이터베이스 회사는 쿼리 최적화 프로그램을 개선하기 위해 수많은 시간과 자본을 투자한다. 최근 SQL 쿼리를 “좋은” 쿼리 계획으로 변환하기 위해 수작업으로 조정한 비용 모델 및 규칙에 의존하기보다는 신경망(NN)을 이용한 쿼리 최적화 프로그램 구축에 기대를 모으고 있다. 하지만, 불행히도 아직 기존 신경망 모델 중 어느 것도 실용적이지 않다. 이 훈련하는데 오랜 시간이 걸리므로 데이터나 워크로드가 변경되면 문제가 되기도 한다. 또한,  신경망 모델이 내린 결정은 종종 해석할 수 없기 때문에 많은 데이터베이스 관리자가 이를 신뢰할 수 없다고 생각하기도 한다.
이러한 가운데 MIT의 Data Systems and AI Lab (DSAIL) 연구원들은 “Bao for Banding Optimizer” 를 통한 쿼리 최적화 프로그램 개선 방법을 새롭게 고안하였다. 연구원들은 신경망을 사용하여 기존 쿼리 최적화 프로그램을 완전히 대체하는 대신, 기존 최적화 프로그램을 올바른 방향으로 “조정”하여 성능을 향상시키는 신경망 모델을 구축하는 방법을 고안한 것이다. “이러한 접근 방식은 기존 시스템에 보다 쉽게 ​​통합될 수 있고 결과를 보다 쉽게 ​​해석할 수 있으므로, 쿼리 옵티마이저를 대체하는 대신 데이터베이스 관리자에게 권장 사항을 제공하는 데 사용할 수 있는 “어드바이저”로 사용할 수 있을 것이다. “라고 이 프로젝트의 수석 고문인 MIT 교수 팀 크라스카(Tim Kraska)는 말한다.
연구원들은 다양한 오픈 소스 및 상용 데이터베이스 시스템에서 Bao를 테스트했으며, 그들의 접근 방식이 원본 데이터베이스의 코드를 변경하지 않고도 기존 최적화 프로그램을 최대 50%까지 개선할 수 있음을 보여주었다.
많은 데이터베이스 회사는 이미 Bao의 접근 방식을 이용하여 기존 시스템 성능에 도움이 될 수 있는 방법을 찾기 시작했다. Microsoft와 MIT의 연구원은 Bao 기술이 빅데이터 워크로드(workload)에 어떻게 도움이 될 수 있는지 조사한 결과, 대기 시간을 평균 7-30%까지 그리고 중요하지 않은 쿼리의 경우 최대 90%까지 개선할 수 있음을 발견한 것이 좋은 예이다.
Bao 논문은 지난달 2021 ACM SIGMOD 컨퍼런스에서 발표될 예정이며, 최우수 논문상에 지정되었다.

이 글은 csail.mit.edu에 기고된 Rachel Gordon의 번역 글입니다.

원문 보기 : https://www.csail.mit.edu/news/making-databases-faster