[논문 리뷰] Nebula Graph: An open source distributed graph database
Nebula Graph는 수십억 개의 정점과 수조 개의 간선을 가진 그래프에서 고성능 OLTP 워크로드를 처리하기 위해 설계된 오픈소스이자 분산형, 확장 가능하고 네이티브 그래프 데이터베이스입니다. 저장소와 컴퓨팅을 분리하고, 고가용성을 확보하기 위해 Raft를 사용하며, SQL 유사 쿼리 언어(nGQL 및 openCypher)를 지원하며, 최적화된 파artitioning, 인덱싱 및 쿼리 실행을 통해 밀리초 대기 시간을 달성합니다. 이는 실제 환경에서의 대규모 벤치마크를 통해 검증되었습니다.
This paper introduces the recent work of Nebula Graph, an open-source, distributed, scalable, and native graph database. We present a system design trade-off and a comprehensive overview of Nebula Graph internals, including graph data models, partitioning strategies, secondary indexes, optimizer rules, storage-side transactions, graph query languages, observability, graph processing frameworks, and visualization tool-kits. In addition, three sets of large-scale graph b
연구 동기 및 목표
- 수조 개의 간선을 가진 거대한 그래프를 처리할 수 있는 고성능, 확장 가능하고 네이티브 분산 그래프 데이터베이스를 설계하고 구현하기.
- 기존의 관계형 데이터베이스(RDBMS)와 단일형 그래프 데이터베이스가 복잡하고 고도로 연결된 데이터를 대규모로 처리할 때 겪는 한계를 해결하기.
- 저장소와 컴퓨팅의 분리, 자동 스키밍, 강한 일致성 등을 통해 거대한 그래프에서 실시간 OLTP 워크로드를 가능하게 하기.
- 산업 표준 쿼리 언어(nGQL 및 openCypher)를 지원하고, ETL, 그래프 처리 및 시각화 기능에 대한 확장성을 제공하기.
- 실세계 워크로드 및 대규모 배포를 통한 벤치마크를 통해 프로덕션 수준의 신뢰성과 성능을 제공하기.
제안 방법
- Meta Service(메타데이터 및 클러스터 관리), Storage Service(고장 내성적 데이터 저장을 위한 Raft 기반), Graph Service(무상태 쿼리 실행)로 구성된 세 가지 독립 서비스를 갖춘 분산 시스템으로 Nebula Core를 아키텍처화함.
- 데이터 격리용 그래프 스페이스를 갖춘 속성 기반 그래프 모델을 사용하며, 고유한 VIDs를 가진 정점, 레이블을 위한 태그, 유형과 순위를 가진 방향성 간선, SQL 유사 유형을 갖는 키-값 쌍 속성을 포함함.
- 그래프 데이터를 위한 키-값 스토리지 추상화를 사용하며, 정점과 간선을 VID 범위 기반으로 파artition하여 수평 확장성과 효율적인 스키밍을 가능하게 함.
- 빠른 정점 검색 및 범위 스캔을 위해 속성 기반 보조 인덱스를 구현하고, 복잡한 탐색을 최적화하기 위해 하이브리드 실행 엔진을 사용함.
- Storage Service에서 Raft 공식 프rotocol를 활용하여 복제본 간 강한 일치성과 고가용성을 확보함.
- nGQL(Nebula 네이티브) 및 openCypher를 지원하는 두 가지 선언형 쿼리 언어를 제공하며, OLTP 워크로드에 적합한 효율적인 실행 계획을 생성하는 쿼리 최적화기 구현함.
실험 결과
연구 질문
- RQ1수십억 개의 정점과 수조 개의 간선을 가진 그래프에서 밀리초 대기 시간을 유지하면서도 효율적으로 확장 가능한 분산 그래프 데이터베이스는 어떻게 설계할 수 있는가?
- RQ2어떤 시스템 아키텍처와 파artition 전략이 분산 그래프 데이터베이스에서 고처리량과 저지연 OLTP 연산을 가능하게 하는가?
- RQ3네이티브 그래프 데이터베이스는 어떻게 SQL 유사 쿼리 언어(nGQL 및 openCypher)와 속성 기반 쿼리에 최적화된 효율적 보조 인덱싱을 동시에 지원할 수 있는가?
- RQ4실세계 워크로드를 대상으로 한 벤치마크를 통해 프로덕션 수준의 분산 그래프 데이터베이스에서 달성할 수 있는 성능 및 확장성 보장은 무엇인가?
- RQ5기존 아키텍처를 최소한으로 수정하면서 ETL 파이프라인, 그래프 처리 및 클라우드 네이티브 배포를 지원하기 위해 그래프 데이터베이스는 어떻게 확장할 수 있는가?
주요 결과
- Nebula Graph는 최대 100台의 서버로 구성된 클러스터에서 100테라바이트 이상의 데이터를 처리하며 기업 워크로드에 대한 프로덕션 준비성을 입증함.
- 경로 탐색, 이웃 정점 탐색, 부분 그래프 조회와 같은 복잡한 그래프 쿼리에서도 밀리초 대기 시간을 달성함.
- 저장소와 컴퓨팅의 분리로 수평 확장성과 고처리량을 실현하였으며, 멀티스레딩 및 무상태 실행을 통해 Graph Service가 동시 쿼리를 처리함.
- Raft 기반 복제로 강한 일치성과 고가용성을 확보하였고, 노드 장애 발생 시 자동 리더 전환 및 장애 복구 기능을 제공함.
- 벤치마크 결과는 OLTP, 그래프 패턴 매칭, 속성 기반 검색 등 다양한 워크로드에서 높은 성능을 입증하며 설계 선택 사항의 타당성을 확인함.
- Walmart, Tencent, Huawei, Meituan과 같은 주요 기업에서 프로덕션 환경에 도입되어 실제 세계에서의 확장성과 신뢰성을 입증함.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.