Service2026.01.04
GitHub - cwida/FastLanes: Next-Gen Big Data File Format
요약
FastLanes는 Parquet과 유사한 차세대 빅데이터 파일 형식으로, 40% 더 나은 압축률과 40배 빠른 디코딩 성능을 제공합니다.
이 형식은 SIMD 및 GPU에 최적화된 경량 인코딩과 유연한 표현식 인코딩 메커니즘을 통해 다중 컬럼 압축을 구현하여 효율성을 극대화합니다.
️ FastLanes는 부분 디코딩을 지원하며, CPU 및 GPU 캐시에 맞도록 미세한 배치 단위 접근을 위해 설계되어 압축된 데이터에 대한 빠른 쿼리를 가능하게 합니다.
상세 내용
FastLanes는 Parquet과 같은 기존 빅 데이터 파일 포맷의 한계를 극복하기 위해 설계된 차세대 파일 포맷입니다. 이는 데이터 레이크와 AI 파이프라인에서 점차 중요해지는 데이터 병렬 처리(SIMD 또는 GPU)에 최적화되어 있습니다. FastLanes는 Parquet에 비해 40% 더 나은 압축률과 40배 빠른 디코딩 속도를 제공한다고 주장합니다. 주요 특징은 다음과 같습니다. 경량 인코딩 (Lightweight Encodings) 및 캐스케이딩 (Cascading): FastLanes는 Snappy와 같은 범용 압축 방식 대신, 데이터 병렬 처리에 완전히 적합한 경량 인코딩을 사용합니다. 이는 압축률을 높이기 위해 유연한 표현식 인코딩 메커니즘을 사용하여 인코딩을 캐스케이딩(연속적으로 적용)합니다. 예를 들어, 정수형 데이터의 경우 "The FastLanes Compression Layout: Decoding > 100 Billion Integers per Second with Scalar Code" 논문에서 설명된 바와 같이, Delta Encoding, Frame of Reference (FoR) 또는 run-length encoding (RLE)과 같은 기법이 사용될 수 있으며, 이는 SIMD 명령어 없이도 (auto-vectorizing C++를 통해) 높은 디코딩 처리량을 달성합니다. "Scalar Code"라는 표현은 명시적인 SIMD intrinsics 대신 컴파일러가 자동으로 벡터화할 수 있도록 코드를 설계했음을 시사합니다. 부동 소수점 데이터의 경우 "ALP: Adaptive Lossless Floating-Point Compression" 논문에서 제안하는 다중 컬럼 압축 (Multi-Column Compression, MCC): 컬럼형 스토리지의 오랜 약점 중 하나인 컬럼 간 상관관계를 활용한 압축을 가능하게 합니다. 이는 여러 컬럼 간의 데이터 관계를 분석하여 압축률을 더욱 향상시키는 기법입니다. FastLanes는 압축 과정에서 인코딩 표현식을 찾기 위한 2단계 알고리즘을 기여합니다. 이는 데이터를 효율적으로 인코딩하고, 컬럼 간의 상호 의존성을 활용하여 중복성을 제거함으로써 압축 효율을 극대화합니다. 유연한 부분 압축 해제 (Flexible Partial Decompression): 쿼리 엔진이 압축된 데이터에 대해 직접 쿼리를 실행할 수 있도록 유연한 부분 압축 해제(partial decompression)를 지원합니다. 이는 전체 데이터셋을 해제하지 않고도 필요한 부분만 빠르게 접근하여 처리할 수 있게 합니다. 세분화된 접근 (Fine-grained Access): Rowgroup 단위가 아닌 소규모 배치(small batches) 수준에서 세분화된 데이터 접근을 지원합니다. 이는 압축 해제 시 메모리 사용량을 CPU 및 GPU 캐시에 적합한 크기로 제한하여 효율적인 처리를 가능하게 합니다.
FastLanes의 핵심적인 방법론은 다음과 같습니다.
ALP와 같은 특화된 알고리즘을 사용하여 높은 압축 효율을 달성합니다.FastLanes는 C++로 오픈 소스 구현이 제공되며, Python 및 Rust 바인딩도 지원합니다. 또한, "Accelerating GPU Data Processing Using FastLanes Compression" 및 "G-ALP: Rethinking Light-weight Encodings for GPUs"와 같은 후속 연구를 통해 GPU 환경에서의 데이터 처리 가속화에 대한 노력을 이어가고 있습니다. 이는 컬럼 데이터의 특성과 하드웨어 아키텍처(SIMD/GPU)의 이점을 최대한 활용하여, 데이터 웨어하우징, 분석, 머신러닝 워크로드에서 성능과 효율성을 동시에 개선하는 것을 목표로 합니다.
GitHub
Shared by Anonymous