Tech Specs

PostgreSQL의 한계를 뛰어넘는
고성능 · 고가용성 DB 솔루션, TarzanDB

TarzanDB는 오픈소스 PostgreSQL의 구조적 한계를 보완하고, 대규모 데이터 환경에서도 안정적인 운영이 가능하도록 설계되었습니다.


외부 캐시 연계를 통한 빠른 쿼리 응답, 장애 발생에도 중단 없는 서비스를 위한 고가용성(HA), 장기적인 운영 인사이트 확보를 위한 성능·통계 정보 수집, Vacuum 이슈에 대한 실시간 대응, 그리고 다양한 DB를 한눈에 관리할 수 있는 통합 모니터링 도구까지 폭넓은 기능을 제공합니다. 시장의 요구를 반영한 맞춤형 기능으로 고객의 가치 실현을 위해 적극 지원합니다.

Query Acceleration

TarzanDB는 External Caching 시스템 연계를 통해 Query 성능 극대화를 위한 Query Acceleration 기능을 제공하여 PostgreSQL의 성능 측면의 제약을 보완합니다.

  • PostgreSQL Engine은 Client가 접속할 때마다 Resource를 할당 받고 Query가 처음 수행될 때
    전체 Query Plan을 확인하는 Hard-parsing을 수행하는데, 이것이 성능 저하 원인으로 지목
  • Connection Pool을 이용하면 Resource 재사용을 유도하여 Hard-parsing 방지
  • TarzanDB는 External Cache 시스템을 이용, Caching 대상을 확대하여 Query 성능 극대화
TarzanDB PostgreSQL Active-Standby 구성과 외부 캐시 서버 연계 아키텍처 흐름도
WAS는 사용자 요청을 받아 Active PostgreSQL 서버에 쿼리를 전달하고 결과를 사용자에게 반환합니다. Active 서버는 Cache Server와 통신하며, THA Agent는 Standby 서버와 Heartbeat 및 Data Sync를 통해 고가용성을 유지합니다.

*THA Agent : TarzanDB High Availability

HA Quick Failback

TarzanDB는 THA(Tarzan High Availability)를 활용하여 고가용성을 지원합니다. 또한 장애 발생 시 Auto Failover는 물론, Master 서버 복구 후 정상화를 위한 Quick Failback 기능을 제공합니다.

  • 고가용성(HA) 환경에서 Master(Primary) 서버를 고사양으로, Slave(Secondary) 서버를 저사양으로 구축한 경우, 최대한 빠른 시간 내 Failback 수행 필요
  • TarzanDB는 엔지니어의 개입을 최소화하고 신속한 Failback 수행이 가능한 GUI 및 CLI 환경 제공
PostgreSQL 장애 발생 시 Standby에서 Active로 전환되는 고가용성 구성 흐름도
Standby PostgreSQL 서버에서 장애가 발생하면, THA Agent를 통해 Heartbeat가 중단되고 HA Layer에서 이를 감지하여 Active 서버로 전환됩니다. 기존 Active 서버는 중단되며, 새로운 Active 서버는 사용자 요청을 처리합니다. 데이터 동기화(Data Sync)는 평상시와 동일하게 THA Agent 간에 수행됩니다.
장애 복구 후 기존 Active 서버로 복원되는 PostgreSQL 고가용성 구성도
기존 Active 서버가 복구되면, 현재 Active 역할을 하고 있던 서버는 다시 Standby로 전환되고, 복구된 PostgreSQL 서버가 다시 Active 역할을 수행하게 됩니다. 이 과정에서도 THA Agent 간의 Heartbeat 및 Data Sync는 계속 유지되며, HA Layer에서 이를 자동 감지하여 상태를 전환합니다.

*THA Agent : TarzanDB High Availability

DB 성능 및 통계 정보 수집

TarzanDB는 별도 구성 없이 시스템 및 Database 성능, 통계 정보를 장기간 수집·보관 기능(TMO)을 포함하고 있으며, 시스템 장애 발생 시 원인 추적, 재발 방지 등을 위한 분석 데이터를 제공합니다.

  • PostgreSQL은 재기동 시, 시스템 및 Database 성능 및 통계 정보(Metrics) 초기화에 따른 장애 원인 분석의 어려움
  • 또한 시스템 자원의 한계로 인해 오래된 데이터의 장기간 보관 대신, 주기적 삭제에 따른 장기간 추세 분석의 어려움
  • TarzanDB는 장애 발생에 따른 정확한 원인 분석 및 장기간 추세 분석 환경 제공을 위해 시스템 및 Database의 성능과 통계 정보에 대한 장기간 수집·보관 수행
PostgreSQL을 중심으로 구성된 기능 다이어그램. 8개의 아이콘이 원형으로 배치됨
중앙에 PostgreSQL 로고가 있고, 주변에 8가지 주요 기능이 원형으로 배치되어 있습니다. 각각의 기능은 다음과 같습니다: 통계 분석, 데이터 이관, 보안 관리, 데이터 탐색, 스케줄 관리, 데이터 동기화, 관계형 모델, 백업 및 복구. 이 아이콘들은 PostgreSQL이 제공하는 다양한 기능을 시각적으로 나타냅니다.

Vacuum Monitoring

TarzanDB는 DBMS 성능 저하 방지 및 안정적인 시스템 운영을 위한 실시간 Vacuum Monitoring 기능과 Vacuum 설정(Tuning) Guide를 제공합니다.

  • PostgreSQL은 Dead Tuple 관리 및 Table Reorganize 등을 위해 주기적인 관리 작업인 Vacuum 수행
  • Dead Tuple이 많은 경우, 빈번한 Vacuum이 발생되고, 이는 DBMS 성능 저하를 유발하여
    PostgreSQL의 주요 이슈 사항으로 지목(특히 데이터가 많은 Table에서 Lock이 발생하는 Vacuum Full은 서비스 장애 유발)
  • TarzanDB는 빈번한 Vacuum, Vacuum Full 발생에 대한 체계적인 모니터링을 수행하고, 안정적인 운영 지원을 위한 개선 방안 제시
PostgreSQL의 Vacuum 처리 과정: 불필요한 공간만 정리하여 테이블은 유지됨
PostgreSQL의 일반 Vacuum 동작은 테이블의 사용되지 않는 공간만 정리하여, 전체 블록 수는 유지한 채로 불필요한 행만 제거됩니다. 데이터 블록은 그대로 존재하며, 삭제된 데이터는 회색으로 표시되고, 남은 유효한 데이터는 파란색으로 유지됩니다. Vacuum 후에도 블록 구조는 변하지 않습니다.
PostgreSQL의 Vacuum Full 처리 과정: 불필요한 공간까지 정리되어 테이블이 압축됨
PostgreSQL의 Vacuum Full은 불필요한 공간을 완전히 제거하여 테이블 자체를 재정렬하고 압축합니다. 회색으로 표시된 삭제된 데이터를 포함한 블록 전체가 제거되고, 파란색으로 남은 유효 데이터만 새로운 블록에 재배치됩니다. 결과적으로 저장 공간이 절약되고 테이블 크기가 줄어듭니다.
  • Live Tuple
  • Free Slot
  • Dead Tuple

실시간 모니터링 및 분석 Tool

TarzanDB는 다양한 PostgreSQL 기반 DBMS의 실시간 모니터링 및 알람 기능을 포함한 통합 모니터링 환경을 제공합니다.

  • System 실시간 상태 모니터링 및 알람
  • Database 실시간 상태 모니터링 및 알람
  • PostgreSQL 기반의 벤더사 제품 통합 모니터링 환경
  • H/W, OS 등 System 정보와 Query 빈도, Lock, Slow Query 및 Vacuum 등 DBMS 상태에 대한 효율적인 모니터링 및 분석이 가능한 최적의 통합 Dashboard
TarzanDB와 PostgreSQL 생태계 구조 다이어그램. 세 가지 PostgreSQL 영역을 대상으로 동작하는 TarzanDB의 UI 화면 예시
TarzanDB는 PostgreSQL 기반의 다양한 구성에 대해 확장성과 호환성을 제공합니다. 왼쪽부터 TarzanDB Extensions, PostgreSQL Community, PostgreSQL 기반 Databases 영역으로 구성되어 있으며, 각 영역은 PostgreSQL 로고로 연결되고, 실제 UI 예시는 모니터 화면에 시각화되어 있습니다. TarzanDB는 이 세 가지 영역에 걸쳐 통합된 관리 및 시각화를 제공합니다.