DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
KOEN
Read Original

Contents

Continue Reading

  • More from Airbnb
#Backend

통합 지식 그래프 인프라를 활용한 에어비앤비 ID 그래프 확장

통합 지식 그래프 인프라를 활용한 에어비앤비 ID 그래프 확장
01

Summary

70억 노드의 거대 그래프, 에어비앤비는 어떻게 성능을 93%나 끌어올렸나?

PaaS의 한계를 넘어 JanusGraph와 DynamoDB로 구축한 차세대 그래프 인프라의 비밀

에어비앤비가 수십억 개의 엔티티 관계를 관리하기 위해 기존 외부 솔루션을 버리고 자체 지식 그래프 플랫폼을 구축한 과정을 상세히 다룹니다. 데이터 저장소와 로직을 분리한 아키텍처와 엔진 내부 최적화를 통해 대규모 트래픽 환경에서 그래프 데이터의 성능과 확장성을 극대화한 사례입니다.

  • 01JanusGraph와 DynamoDB 조합을 통한 스토리지 분리 아키텍처 구현
  • 02복잡한 Gremlin 쿼리 단계(Path, Side-effect) 최적화로 지연 시간 대폭 감소
  • 03DynamoDB의 조건부 쓰기를 활용한 저비용 고효율 트랜잭션 전략 도입
  • 04내부 포크(Fork)를 통한 분산 추적 시스템(Tracing)과 관찰성 확보
  • 05P99 지연 시간을 50% 단축하며 거대 노드 네트워크의 '긴 꼬리' 성능 문제 해결

+RECOMMENDATION

대규모 관계형 데이터를 다루는 백엔드 엔지니어와 그래프 DB 도입을 고민하는 아키텍트에게 추천합니다. 특히 고성능이 필요한 다단계 홉(Multi-hop) 쿼리 최적화 기법이 실무에 유용합니다.

The Problem

에어비앤비의 ID 그래프는 70억 개의 노드와 110억 개의 에지로 성장하며 기존 PaaS 솔루션의 확장성 한계, 복잡한 다단계(4~8홉) 쿼리의 긴 꼬리 지연 시간(Long-tail latency), 운영상의 불안정성 문제에 직면했습니다.

The Solution

JanusGraph를 엔진으로, DynamoDB를 저장소로, OpenSearch를 인덱싱으로 사용하는 내부 관리형 지식 그래프 플랫폼을 구축했습니다. 조건부 쓰기를 활용한 트랜잭션 최적화, 쿼리 병렬 실행 엔진 개선, 그리고 Gremlin 쿼리 재작성을 통한 클라이언트 측 최적화를 도입했습니다.

The Result

기존 벤더 솔루션 대비 쿼리 패턴별로 지연 시간을 32~93% 단축했으며, 읽기/쓰기 전반의 P99 지연 시간을 약 50% 개선했습니다. 또한 로드 테스트를 통해 쓰기 성능(QPS)을 10배 확장하고 수동 재부팅 없는 시스템 안정성을 확보했습니다.

Trade-off

서드파티 관리형 서비스(PaaS)에서 내부 관리형 인프라로 전환함에 따라, 초기 구축 비용과 엔진 레벨의 최적화 및 지속적인 플랫폼 유지보수를 위한 내부 엔지니어링 리소스 투입이 필요해졌습니다.

03

Key Concepts

Concept · 01

JanusGraph

Apache TinkerPop 기반의 확장 가능한 분산 그래프 데이터베이스 엔진으로, 다양한 스토리지 백엔드를 지원합니다.

  • 에어비앤비 내부 그래프 인프라의 핵심 계산 엔진으로 채택되었습니다.
  • Thrift API와 Gremlin 쿼리 언어를 통해 상위 계층과 통신합니다.
Concept · 02

Storage Separation (스토리지 분리)

데이터 연산 로직(그래프 엔진)과 실제 데이터 영속성 계층(스토리지)을 독립적으로 분리하여 구성하는 아키텍처입니다.

  • JanusGraph의 플러그형 백엔드 구조를 활용해 DynamoDB를 저장소로 연결했습니다.
  • 이를 통해 분산 저장소 운영의 부담 없이 그래프 로직 최적화에 집중할 수 있었습니다.
Concept · 03

Gremlin Query Rewriting

그래프 탐색 언어인 Gremlin 쿼리를 실행 엔진의 특성에 맞춰 성능이 최적화된 형태로 변형하는 기법입니다.

  • 성능 저하를 유발하는 Path 단계를 제거하고 조건부 쿼리 시리즈로 대체했습니다.
  • 비배치(Non-batched) 하위 단계를 최소화하여 백엔드 커넥션 부하를 줄였습니다.
Continue reading · same source

AirbnbMore from Airbnb

View all posts from Airbnb
  • 프로젝트 라이트하우스 3부 — project-lighthouse-anonymize를 소개합니다

    Data PrivacyAnonymizationPython
    4일 전
  • 코로나19의 종식을 알게 된 방법 (그리고 우리 모델이 잊어야 했던 것들)

    ForecastingBayesian MethodsMachine Learning
    1주 전
  • 유연한 인증(Flexible Authentication): 에어비앤비의 수백만 사용자를 위한 인증 시스템 재설계

    Server-Driven UIAuthenticationMobile Architecture
    2주 전
  • 평가 주도 개발: 대규모 GenAI 평가를 통해 얻은 교훈

    LLM EvaluationGenerative AIEval-Driven Development
    1개월 전
  • 게스트 여정 학습을 통한 에어비앤비 검색 개인화

    TransformerRecommendationSearch Personalization
    1개월 전

Source

Airbnb
Airbnb
Engineering Blog

Published · May 19, 2026

Topics

JanusGraphDynamoDBGraph DatabaseScalabilityKnowledge Graph