GPU 더하기 SQL

1.
요즘 해외 데이타베이스 스타트업들이 내놓는 제품을 보면 놀랍습니다. 전통적인 강자인 오라클이나 MySQL 혹은 PostgreSQL와 경쟁할 수 있는 DBMS로 성장할지 알 수 없지만 최소한 변화하는 하드웨어 성능을 수용하는 모습이 인상적입니다.

소프트웨어의 성능을 높히기 위한 하드웨어는 여러가지가 있습니다. 대표적인 것이 멀티코어 CPU입니다. 메모리도 중요합니다. In-Memory Computing도 하드웨어의 변화가 가져온 결과입니다. SSD와 같은 저장장치도 변화를 가져옵니다.예를 들어 SSD에 최적화한 DBMS로 소개하였던 Aerospike가 한 예입니다.

In-Memory 와 Flash Memory

RDMA나 TOE도 영향을 줍니다. 이런 변화를 적극적으로 비즈니스에 적용한 것이 HFT입니다. 지난 몇 년동안 큰 흐름이었습니다. 이상에서 다루어지지 않는 분야가 있습니다 GPU입니다.

GPU와 DBMS가 만날 수 없을까요? 저는 상상이지만 어떤 이들은 이를 현실의 문제로 고민을 하였습니다. 성당 레지오야유회를 다녀와서 읽었던 GPGPU.org에 올라왔던 기사의 주인공이 그들입니다.

GPU Analytic SQL Database

DeepCloud Whirlwind GPU database라는 제품입니다. 이들이 가진 장점은 아래와 같습니다.

  • column based storage
  • vector processing
  • SSD optimized
  • smart compression – Ultra fast compression and decompression on the GPU
  • MySQL like API – works with many MySQL client tools
  • Oracle subset dialect
  • data skipping
  • zone maps
  • fast schema-light data loading

회사가 제공하는 자료가 적어서 GPU를 DBMS에 어떻게 적용했는지를 정확히 알 수 없습니다. 다만 베타 프로그램으로 시험을 해볼 수 있습니다.

2.
이상을 적어놓고 혹시나 해서 SQL와 GPU를 검색어로 해서 조사를 했습니다. 역시나 저는 DB의 문외한이네요. 2010년부터 Deepcloud와 비슷한 시도를 했던 경우가 있었습니다. 2010년 SQLite를 GPU에 구현하여 SQL 성능을 측정한 시도입니다.

Accelerating SQL Database Operations on a GPU with CUDA

아래는 측정한 결과를 발표한 논문입니다. 위에서 관련한 소스들을 제공합니다.

Accelerating SQL Database Operations on a GPU with CUDA: Extended Results

Download (PDF, 1.82MB)

2012년 MIT에 재학중인 Todd Mostak이 만든 MapD가 있습니다.

Fast Database Emerges from MIT Class, GPUs and Student’s Invention

MapD의 개념입니다.

Download (PDF, 977KB)

2014년 초 SQream이 만든 데이타베이스가 있었습니다. 블로그를 보니까 SQream은 Haskell을 개발언어로 많이 사용하였다고 합니다.

Telco Calls On GPU-Native SQream SQL Database

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.