Meta Just Changed Data Compression FOREVER (OpenZL Explained)
- Open ZL은 Meta가 오픈 소스화한 데이터 압축 시스템으로, 기존 압축 방식과 달리 데이터의 구조를 이해하는 '형식 인식(format-aware)' 압축을 제공합니다. 🧠
- 이는 일반적인 압축기(Zstandard, GZIP)가 데이터를 단순한 바이트 스트림으로 처리하여 구조적 압축 기회를 놓치고, 맞춤형 압축기가 확장성 및 유지보수 문제를 겪는 한계를 해결합니다. 🛠️
- Open ZL의 핵심은 압축 '계획(plan)'과 '압축 해제기(decompressor)'를 분리하는 것으로, 각 데이터 형식에 대한 압축 계획을 훈련하거나 설계한 후, 단일 범용 압축 해제기로 모든 파일을 처리할 수 있게 합니다. 🗺️
- 작동 방식은 SDDDL(Simple Data Description Language)로 데이터 구조를 정의하고, 오프라인 트레이너가 델타 인코딩, 사전 구축 등 최적의 '변환 시퀀스'를 찾아 압축 계획을 생성하며, 이 계획은 압축된 파일에 내장됩니다. ⚙️
- 압축 해제 시, 범용 디코더는 파일 내장된 계획을 읽어 변환을 역순으로 실행하므로, 데이터 형식에 관계없이 동일한 바이너리 압축 해제기를 사용할 수 있습니다. 🔄
- 구조화된 데이터 세트에서 Open ZL은 일반 압축기보다 훨씬 뛰어난 성능을 보여주며, 압축 및 압축 해제 속도 모두에서 상당한 이점을 제공합니다. 🚀
- 이러한 성능 향상은 변환을 통해 엔트로피 코딩 전에 데이터 구조를 노출하여 백엔드 압축기가 더 효율적으로 작동하기 때문입니다. 💡
- 하지만 비정형 데이터에는 효과가 제한적이며(내부적으로 ZSTD로 대체), CSV 같은 형식 파싱에는 오버헤드가 발생할 수 있습니다. 🚧
- Open ZL의 더 큰 의미는 '모듈식 진화 가능 압축'으로, 압축 해제기를 변경하지 않고도 압축 계획을 업데이트하거나 재훈련할 수 있어, 하위 호환성 유지, 보안 감사 용이성, 빠른 혁신이 가능합니다. 🌱
- 오픈 소스이므로 누구나 새로운 변환이나 파서를 추가하여 시계열, 중첩 객체, 과학 데이터 등 특수 데이터에 대한 지원을 확장할 수 있습니다. 🌐