Skip to main content
QUICK REVIEW

[논문 리뷰] Log(Graph): A Near-Optimal High-Performance Graph Representation

Maciej Besta, Dimitri Stanojevic|arXiv (Cornell University)|2020. 10. 29.
Graph Theory and Algorithms참고 문헌 85인용 수 5
한 줄 요약

Log(Graph)는 그래프 요소를 이론적 저장 하한값에 따라 로그 크기로 인코딩함으로써 비트 연산과 압축 데이터 구조를 사용해 고압축과 저해체 압축 오버헤드를 동시에 달성하는 근사 최적의 그래프 표현 방식이다. GAPBS보다 20–35% 더 낮은 그래프 저장 용량을 제공하면서도 성능은 유사하거나 초월하며, 해제 압축 비용이 극히 적어 웹그래프 대비 처리 속도에서 최대 2배 빠르다.

ABSTRACT

Today's graphs used in domains such as machine learning or social network analysis may contain hundreds of billions of edges. Yet, they are not necessarily stored efficiently, and standard graph representations such as adjacency lists waste a significant number of bits while graph compression schemes such as WebGraph often require time-consuming decompression. To address this, we propose Log(Graph): a graph representation that combines high compression ratios with very low-overhead decompression to enable cheaper and faster graph processing. The key idea is to encode a graph so that the parts of the representation approach or match the respective storage lower bounds. We call our approach "graph logarithmization" because these bounds are usually logarithmic. Our high-performance Log(Graph) implementation based on modern bitwise operations and state-of-the-art succinct data structures achieves high compression ratios as well as performance. For example, compared to the tuned Graph Algorithm Processing Benchmark Suite (GAPBS), it reduces graph sizes by 20-35% while matching GAPBS' performance or even delivering speedups due to reducing amounts of transferred data. It approaches the compression ratio of the established WebGraph compression library while enabling speedups of up to more than 2x. Log(Graph) can improve the design of various graph processing engines or libraries on single NUMA nodes as well as distributed-memory systems.

연구 동기 및 목표

  • 표준 그래프 표현 방식과 압축 기법이 그래프 처리 중에 비트 낭비 또는 고비용 해제 압축을 초래하는 비효율성을 해결하기 위해.
  • 특히 수십억 개의 간선을 포함하는 대규모 그래프에서 성능을 훼손하지 않으면서 그래프 저장 용량을 줄이기 위해.
  • 정점 ID, 오프셋, 인접 데이터와 같은 그래프 요소의 이론적 저장 하한값에 가까운 표현을 설계하기 위해.
  • 최소한의 해제 압축 비용으로 빠르고 저오버헤드의 그래프 데이터 접근을 가능하게 하여 고압축 비율을 유지하기 위해.
  • 단일 노드 및 분산 메모리 시스템에서의 그래프 처리 엔진 효율성을 최적화된 레이아웃과 인코딩을 통해 향상시키기 위해.

제안 방법

  • Log(Graph)는 각 그래프 요소를 그 원소의 기수에 따라 최소한의 비트 수로 인코딩하는 '그래프 로그화(Logarithmization)'를 적용한다. 즉, 집합 S에 대해 ⌈log|S|⌉ 비트를 사용한다.
  • 현대적인 비트 연산을 활용해 로그적으로 인코딩된 요소에서 데이터를 효율적으로 추출함으로써 해제 압축 오버헤드를 최소화한다.
  • 정수 선형 프로그래밍(ILP) 휴리스틱 기법을 사용해 정점 ID의 순서를 재정렬함으로써 인접 배열의 총 크기를 줄인다.
  • 오프셋 배열에 대해 압축 데이터 구조를 활용하여 이론적 하한값에 매우 가까운 저장 용량을 달성하고, 일정 시간 내 접근을 지원한다.
  • 엣지 컷(Edge Cut, EC)과 버텍스 컷(Vertex Cut, VC) 기반의 분할 기법을 모두 통합하며, VC에서 발생하는 샤프트 포인터의 저장 오버헤드를 고려해 EC를 우선적으로 활용한다.
  • 라벨 간 차이를 최소화하기 위해 하이브리드 레이블링 방식(POD/CMB)을 사용함으로써 압축 및 접근 효율성을 향상시킨다.

실험 결과

연구 질문

  • RQ1그래프 처리 워크로드에서 근사 최적의 압축을 달성하면서도 해제 압축 비용을 최소화할 수 있는 그래프 표현 방식이 존재하는가?
  • RQ2정보 이론적 하한값에 기반한 그래프 요소의 로그 인코딩 방식이 저장 용량과 성능에 어떤 영향을 미치는가?
  • RQ3ILP 기반 정점 재정렬 기법이 그래프 표현에서 인접 배열 크기를 얼마나 줄일 수 있는가?
  • RQ4저장 용량과 접근 오버헤드를 고려할 때 엣지 컷(EGs)과 버텍스 컷(VCs) 간의 성능 트레이드오프는 어떠한가?
  • RQ5오프셋 배열에 대해 압축 데이터 구조를 사용할 경우, 공간 복잡도를 O(n log n)에서 이론적 하한값에 가까운 수준으로 낮추고도 빠른 접근을 가능하게 할 수 있는가?

주요 결과

  • Log(Graph)는 최적화된 GAPBS 구현체 대비 그래프 저장 용량을 20–35% 줄였으며, 성능은 유사하거나 향상시켰다.
  • 웹그래프와 거의 동일한 압축 비율을 달성했지만, 해제 압축 오버헤드가 극히 적어 그래프 처리 속도에서 최대 2배 빠른 성능 향상을 이뤘다.
  • ILP 기반 정점 재정렬 기법을 통해 인접 배열 내 라벨 간 차이가 감소하여, RB 대비 5–10%, DM 대비 30–40%의 압축 향상을 달성했다.
  • 오프셋 배열에 대해 압축 데이터 구조를 사용함으로써 공간 복잡도를 점근적으로 O(n log n)에서 이론적 하한값에 가까운 수준으로 낮추었고, 일정 시간 내 접근이 가능해졌다.
  • 버텍스 컷(VCs)은 엣지 컷(ECs)보다 더 작은 컷을 생성하지만, VC에서 발생하는 샤프트 포인터의 저장 오버헤드로 인해 이점이 감소하여 EC가 더 실용적이다.
  • 분할 균형을 약 D=10% 범위로 완화해도 컷 크기와 최종 저장 용량에 약 1% 이내의 변화만 발생하여, 비균형에 대해 뛰어난 내구성을 보였다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.