본문 바로가기
DBMS

HTAP OLAP과 OLTP 지원 DBMS의 기술 분석 - 1[HTAP Databases: What is New and What is Next]

by developer's warehouse 2023. 11. 28.

이 글에서는 DBMS벤더에서 OLAP과 OLTP를 어떻게 효율적으로 지원하는지를 연구한 논문에 대해서 설명합니다. 

아래의 두 가지 논문에 대해서 정리하는데, 오늘은 첫 번째 논문 먼저 보겠습니다.

1. HTAP Databases: What is New and What is Next

2. Parallel Replication across Formats in SAP HANA for Scaling Out Mixed OLTP/OLAP Workloads : OLAP과 OLTP간의 이중화 병렬 복제

HTAP OLAP과 OLTP 지원 DBMS의 기술 분석 썸네일

HTAP Databases: What is New and What is Next

https://dl.acm.org/doi/pdf/10.1145/3514221.3522565

ACM의 다음 논문을 참고합니다. "HTAP Databases: What is New and What is Next"

배경

빅데이터가 대두되고 데이터를 통한 분석 및 통찰이 중요해 지면서 HTAP(Hybrid transactional/analytical processing)에 대한 관심이 많아졌고 OLAP/OLTP를 함께 제공하거나 실시간 분석을 할 수 있는 시스템을 요구하고 있습니다. 

이에 따라, Oracle은 column 기반의 분석 가능한 옵션도 지원하고 있습니다. 그 외에도 몇몇 신생 업체들은 OLTP와 OLAP을 모두 지원하는 DBMS를 만들어서 특징으로 내세우고 있습니다. 

하이브리드 트랜잭션/분석 처리 란?

(HTAP)는 2014년 가트너 보고서에서 제안한 애플리케이션 아키텍처이며 2018년에 재정의 한 아키텍처는 다음과 같습니다. 

"필요에 따라 분석 및 트랜잭션 처리 기술을 결합하는 것을 지원하는 애플리케이션 아키텍처"

이 아키텍처의 특징은 데이터 분석을 위해서 ETL( Extract-Transform-Load ) 툴을 사용할 필요가 없습니다. 

HTAP Database 분류

2022년의 최신 ACM 논문에서 아래와 같이 현존하는 DBMS들을 다음과 같이 분류하고 있습니다. 

저장 구조 개념

row store: row(행) 단위로 데이터 저장을 하는 저장 구조를 말합니다. (갱신에 유리합니다)

column store: column(컬럼) 단위로 데이터 저장을 하는 저장 구조를 말합니다. (분석과 집계함수 등에 유리합니다)

delta data(store): delta store는 실제 DB에 반영되지 않은 임시의 데이터 저장소(delta는 변경된 것을 의미)를 의미합니다. 나중에 실제 DB나 필요한 저장소에 merge되는 형태로 운영됩니다.

delta row store : row를 갱신하기 위해서 column store는 매우 비싼 비용을 치뤄야 합니다. 이를 위해서 memory에 갱신 용도의 row storage를 구성해서 갱신전용으로 사용하는 저장소를 delta row store라고 합니다. 

1: Storage Architectures of State-Of-The-Art HTAP Databases
 

위의 이미지에서 개념을 설명하고 표에서 현재 나와있는 제품들을 대상으로 기술적으로 상중하로 구분해 놓았습니다. 

Primary Row Store+In-Memory Column Store

 

  • Oracle: row-based buffer와 column-based in-memory compression unit (IMCU)
  • SQL Server: in-memory table의 CSI(Columnsotre index)를 개발하여 OLAP을 지원

 

Distributed Row Store+Column Store Replica

 

  • 분산된 Row Store를 사용하며 비동기적으로 변경 로그를 컬럼 스토어(Column Store)로 복제한다. 
  • 분산된 row store는 high scalable OLTP 제공 + 비동기 컬럼 스토어를 통해 OLAP 처리

 

Disk Row Store+Distributed Column Store

 

  • RDBMS기반의 디스크 Row Store가 OLTP 처리
  • OLAP 처리를 위해 distributed in-memory column-store (IMCS) - MySQL Heatwave

 

MySQL Heatwave

 

Primary Column Store+Delta Row Store

OLAP을 기본으로 하는 컬럼 스토어에 OLTP를 위해 Row Delta Store를 추가한 형태

OLTP 처리를 위해 Data는 Row 기반 Delta 스토어에서 갱신된다. 

OLAP을 위한 분석 질의 처리성능은 읽기가 최적화 된 컬럼 스토어에서 처리하여 성능이 좋다. 

그러나, OLTP용 Scalability는 좋지 못하다.

SAP HANA가 대표적이며, L1-delta -> L2-delta -> disk columnar storage 로 이동하며 저장된다. 

L1은 row store이고, L2 delta에서 columnar에 저장하기 위해서 변환을 수행한다. 

 

 

기술에 따른 장단점 분류

아래 테이블은 핵심 기술과 이에 해당하는 제품과 장 단점을 구분해 놓았습니다. 

htap 논문 acm sigmod
 

기술적으로 구분된 내용을 설명하 다음과 같습니다. 

Transaction processing (TP) techniques

트랜잭션 처리에서 가장 중요한 것은 MVCC와 Logging 기술, 그리고 분산 TP 처리를 위한 2PC에 기반한 2PC + Raft + logging 기술입니다. 
 

Analytical processing (AP) techniques

분석 처리는 압축 데이터 집계나 single-instruction multiple-data (SIMD) instructions과 같은 column 기반 기술을 사용하여 계산됩니다. 

이런 분석 처리는 아래의 세 가지로 구분됩니다.

in-memory delta and column scan

아직 merge되지 않은 컬럼과 in-memory delta 데이터 컬럼 스토어를 병합해서 분석하는 기술이 있습니다. 

Log-based delta and column scan

로그 기반 델타 파일(변경내역)과 열 저장소를 함께 스캔합니다. 로그 기반 델타 파일과 컬럼 저장소를 함께 스캔하여 들어오는 쿼리에 대해 쿼리를 스캔합니다.

 

Column Scan

순수 Column Store에 대한 스캔입니다.

 

Data synchronization (DS) techniques

delta merge를 포함하여 OLTP와 OLAP 간의 데이터를 동기화 하는 기술을 말합니다.

delta 데이터를 OLAP 질의가 들어온 순간에 처리하는 것은 시간이 오래 걸리므로 주기적으로 main 컬럼 스토어에 저장해야 합니다. 

아래와 같은 세 가지 타입의 데이터 동기화 기술이 사용됩니다. 

  • in-memory delta merge: 메모리에 새로 삽입된 데이터를 컬럼 저장소에 merge하는 기술
    • two-phase transactionbased data migration, the dictionary-encoded sorting merge, threshold-based change propagation
  • disk-based delta merge: disk 기반의 delta 파일(변경된 데이터)을 주기적으로 컬럼 저장소에 merge하는 기술
    • delta 파일의 접근 성능을 개선하기 위해서 B+-tree로 인덱싱해서 저장하는 최적화를 합니다.
  • rebuild from primary row store: row 저장소에서 column 저장소로 rebuild 하는 기술
    • delta 업데이트가 특정 임계값을 넘는 경우 병합하는 것 보다 컬럼 스토어를 재구축하는 것이 효율적일 때 사용합니다.

 

Query Optimization Techniques

  • column selection for HTAP: 통계적으로 자주 접근되는 컬럼을 선택하여 메모리로 올리고, 질의 처리시 in-memory column 저장소로 selection을 push down하여 질의 처리 성능을 가속화합니다. 
    • 만약, OLAP 질의가 다른 이미 in-memory column 저장소에 올려놓지 않은 컬럼에 대한 질의라면 컬럼 스토어를 이용하지 못해서 row store에서 OLAP 질의를 수행해야 합니다. 그러므로, 새로운 유형의 질의가 들어오는 환경에서는 성능이 좋지 못합니다. 
  • hybrid row/column scan: 질의를 분해하여 row store와 column store에서 수행하는 부분을 나눈 후 결과를 조합하여 최종 결과를 내는 방식입니다. 비용 기반으로 row store와 column store access path를 선택할 수 있습니다. 
  • CPU/GPU acceleration for HTAP: OLTP 처리 시에는 cpu의 task parallel 특징을 이용하고 OLAP 처리시에는 pu의 data parallel 특성을 이용하는 것을 말합니다.

Resource Scheduling Techniques

리소스를 OLTP와 OLAP 부하의 어디에 어느만큼 할당할 것인가를 결정하는 기술을 말합니다. 
workload-driven 접근: OLTP와 OLAP 작업량에 기반하여 스레드 병렬화를 조절하는 기법입니다.
예를들어, OLAP 스레드가 많아서 OLTP 처리가 늦어지는 경우 OLAP의 병렬처리 스레드를 줄이고 동시에 OLTP용 드레드를 늘립니다. 
 
freshness-driven 접근: 고성능을 위해 OLTP와 OLAP의 실행을 분리하여 실행하고 데이터 동기화를 주기적으로 실행합니다. 데이터 freshness가 너무 떨어지는 경우 자원공유모드로 전환하여 데이터 동기화를 수행합니다.  
 

 

facebook twitter kakaoTalk kakaostory naver band shareLink