7๊ฐ์๊ฐ์ ๊ฐ๋ฐ ๋์ ํ๋ ์์ํฌ ๋ฒ์ 0.2.0์ด ์ถ์๋์์ต๋๋ค. ์คํZL๋ฐ์ดํฐ ์์ค ์๋ ์์ถ๊ธฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค.
์ด ํ๋ ์์ํฌ๋ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํด๋น ์ธ์ด๋ก ์ค๋ช
๋ ํน์ ์์ถ๊ธฐ๋ฅผ ์์ฑํ๊ธฐ ์ํ ๋๊ตฌ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. SDDL.
ํ๋ฅญํ ์ ์ฉ ์์ถ๊ธฐ๋ฅผ ๋ง๋๋ ๋ฐ๋ ๋ ๋จ๊ณ๊ฐ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ๋ถ์์ ํตํด ๊ตฌ์กฐ๋ฅผ ์ถ์ถํฉ๋๋ค.
- ๊ฒฐ๊ณผ ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ์ฐ์ํ ์์ถ๋ฅ ์ ๋ฌ์ฑํ๋ ๋ฐ์ด๋ ๋ฐฑ์๋ ์์ถ๊ธฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
OpenZL์ ๋ ๋จ๊ณ ๋ชจ๋์ ํ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ C์ C++๋ก ์์ฑ๋์์ผ๋ฉฐ BSD ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ
SDDL2
SDDL์ ์๋ ์ค๊ณ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฒ์๋ถํฐ ์์ ํ ์ฌ์์ฑ๋์์ต๋๋ค. ์ด๊ธฐ ๋ฐ๋ชจ ๋ฒ์ ์ ๋จ์ํ๋ ๋ฐํ์ ํ๊ฒฝ์ด์์ง๋ง, SDDL2๋ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ปดํ์ผ๋ฌ์ ๋๋ค. ํ์๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ ๋ถ์๊ธฐ์ ์ ๋ฌํ๊ณ , ์๋ฏธ ๋ถ์๊ธฐ๋ ๋ค์ ํ์ ์ด ์ง์ ๋ ์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ(AST)๋ฅผ ์ต์ ํ๊ธฐ์ ์ ๋ฌํฉ๋๋ค. ์ต์ ํ๊ธฐ๋ ์ฝ๋ ์์ฑ๊ธฐ๋ฅผ ์ ์ดํ์ฌ ๊ฐ์ ๋จธ์ ๋ฐ์ดํธ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
ํต์ฌ์ ์ธ ๊ฒฐ๊ณผ๋ ์ฆ๊ฐ์ ์ธ ํ์ฑ์ ๋๋ค. ๋ ์ฝ๋์ ์์น๋ฅผ โโ๋งค๊ฐ๋ณ์์ ์์๋ง์ผ๋ก ์์ ํ ํ์ ํ ์ ์๋ ๊ฒฝ์ฐ, ์์ง์ ์ด์ ๋ฐ์ดํธ๋ฅผ ์ค์บํ์ง ์๊ณ ๋ฐ๋ก ํด๋น ํ๋๋ก ์ด๋ํ์ฌ ๋ณต์ฌ ์๋ ์ก์ธ์ค์ ์ GB/s์ ์ฒ๋ฆฌ๋์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
์ธ์ด ์์ฒด๋ ๋๊ตฌ ์ธํธ์ ํจ๊ป ๋ฐ์ ํด ์์ต๋๋ค. ์ด์ ์กฐ๊ฑด๋ฌธ์ ์ํ when ์ , ๋งค๊ฐ๋ณ์ํ๋ ๋ ์ฝ๋ ๋ฐ ์ต๋ช ๋ ์ฝ๋, ๋ ์ฝ๋ ํ๋ ๋ฉค๋ฒ์ ๋ํ ์ ๊ทผ, ๋นํธ ์ฐ์ฐ์ ๋ฐ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ง์ํฉ๋๋ค.
๊ฐ๋ฐ์ ์ธก๋ฉด์์๋ ์๋ฏธ ๋ถ์ ๋จ๊ณ์์ ์ด์ ๋ฐํ์์ด ์๋ ์ปดํ์ผ ํ์์ ์์ค ์ฝ๋ ์์น์ ํจ๊ป ์ ์๋์ง ์์ ์ฐธ์กฐ, ํ์ ๋ถ์ผ์น ๋ฐ ์ธ์ ๊ฐ์ ์ค๋ฅ๋ฅผ ์๋ณํ๋ฉฐ, .sddl ํ์ผ์ ๊ตฌ๋ฌธ ๊ฐ์กฐ ํ์๋ฅผ ์ํ VS Code ํ์ฅ ํ๋ก๊ทธ๋จ์ด ์ถ์๋์์ต๋๋ค.
์๋ก์ด ๋ด์ฅ LZ ์ฝ๋ฑ
OpenZL์ ์ด์ ์์ฒด LZ ์ฝ๋ฑ์ธ ZL_GRAPH_LZ์ zli ์ ํธ๋ฆฌํฐ์ ํฌํจ๋ ์์ฐจ ์์ถ ํ๋กํ์ผ์ ์ ๊ณตํฉ๋๋ค. ์ฝ๋ฑ ๊ฐ๋ฐ์ ๊ณ์ ์งํ ์ค์ด๋ฉฐ, ๊ธฐ๋ฅ ์ธํธ๋ฅผ ํ์ฅํ๊ณ ์์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ณ ์์ต๋๋ค. ํ์ฌ๋ 64KB ์์ถ ์๋์ฐ๋ฅผ ์ง์ํ๋ฉฐ zstd ๋ ๋ฒจ 1์ ํด๋นํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
OpenZL์ LZ ํ์ดํ๋ผ์ธ์ ๊ฐ ๋จ๊ณ๋ฅผ ์๋ ํฅ์์ ๋ง์ถฐ ์ฌ์ค๊ณํ ์ ์๋๋ก ํฉ๋๋ค. ๋ํ ๊ทธ๋ํ ์ํคํ ์ฒ๋ฅผ ํตํด ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋์ผํ๊ฒ ์ ํฉํ ๋จ์ผ ํ์ดํ๋ผ์ธ์ ์ฌ์ฉํ๋ ๋์ , ์ฌ๋ฌ ์ํธ๋กํผ ์ธ์ฝ๋ฉ ๋จ๊ณ๋ฅผ ๊ฒฐํฉํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๋จ์ผ ์์ ์ผ๋ก ํตํฉํ์ฌ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๋ฌํ ํน์ง ๋๋ถ์ OpenZL์ ์ค๋ ์์ ์ฝํผ์ค์์ Zstandard ๋ ๋ฒจ 1 ๋๋น ์์ถ ์๋๋ 10%, ์์ถ ํด์ ์๋๋ 70% ํฅ์๋์์ต๋๋ค. ์ฐ๋ฆฌ์ ํ ์คํธ:
| ์์ถ๊ธฐ | ์์ถ ๋น์จ | ์์ถ ์๋ | ๊ฐ์ ์๋ |
|---|---|---|---|
| OpenZL LZ ๋ ๋ฒจ 1 | 2.74 | 466 MB / s์ | 2288 MB / s์ |
| Zstd ๋ ๋ฒจ 1, ์ฐฝ ํฌ๊ธฐ 64K | 2.74 | 419 MB / s์ | 1254 MB / s์ |
| Zstd ๋ ๋ฒจ 1 | 2.89 | 424 MB / s์ | 1345 MB / s์ |
๋งค์ฐ ํฐ ์ ๋ ฅ ๋ฐ์ดํฐ ์ง์
zli๋ ์ด์ ์ ๊ธฐ๊ฐ๋ฐ์ดํธ ํฌ๊ธฐ์ ๋์ฉ๋ ์ ๋ ฅ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. ์์ถ ์ ์ ์ด๋ฌํ ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅํ ํฌ๊ธฐ(๊ธฐ๋ณธ๊ฐ ์ฝ 16MB)์ ์ฒญํฌ๋ก ๋ถํ ๋์ด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ํํ๊ณ ๋ฐ์ดํฐ ์ง์ญ์ฑ์ ๊ฐ์ ํ๋ฉฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. SDDL2๋ ์คํค๋ง ์ฒ๋ฆฌ ์์๋ ์ ์ฌํ ์๋ ์ฒญํฌ ๋ถํ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. ์ด ๊ณผ์ ์์ CSV, Parquet ๋ฐ ํ์ค ์ซ์ ๋ฐ์ดํฐ์ ๋ํ ์๋ก์ด ์ธ๊ทธ๋ฉํฐ๊ฐ ์์ฑ๋๊ฑฐ๋ ์ ๋ฐ์ดํธ๋์์ผ๋ฉฐ, ๋ชจ๋ ์ธ๊ทธ๋ฉํฐ๋ ์ด์ ์ง๋ ฌํ ๋ฐ ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ๋ฏ๋ก ์ ํํ ๋ ์ด์์์ ์์ถ๊ธฐ์ ์ ์ฅํ๊ณ ๋์ค์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๊ธฐ๋ฅ์ ์์ถ ๊ณผ์ ์์ ํฌ๋ช ํ๊ฒ ์ ์ฉ๋ฉ๋๋ค. ํ์ต ํ์ดํ๋ผ์ธ์ ๋ค๋ฅด๋ฉฐ ์ํฅ์ ๋ฐ์ง ์์ผ๋ฏ๋ก, ๋ฐฉ๋ํ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ์ต ์๋ฃ๋ก ์ฌ์ฉํ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค.
์จ๋ผ์ธ ๊ทธ๋ํ ์๊ฐํ ๋๊ตฌ์ ๊ฐ์ ์ฌํญ (์๋ํ๋ค)
์ด์ ์๊ฐํ ๋๊ตฌ๋ ์์ถ ๋ฐ ์์ถ ํด์ ๊ณผ์ ์ ์ฒ์๋ถํฐ ๋๊น์ง ์ธ์ํฉ๋๋ค.
์คํธ๋ฆผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํจ๋์ ์ฌ์ฉํ๋ฉด ๊ฐ ๊ฐ์ฅ์๋ฆฌ๋ฅผ ๋ฐ๋ผ ์ค์ ๋ก ํ๋ฅด๋ ๋ฐ์ดํธ๋ฅผ ํ์ธํ ์ ์์ผ๋ฉฐ, ํธ๋ฆฌ๋ฐ ์ปจํธ๋กค์ ํตํด ๋๊ท๋ชจ ์คํธ๋ฆผ๋ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ค์ ํจ๋์ ๋ชจ๋ ํ์ ์ต์ ์ ํ ๊ณณ์ ๋ชจ์๋๊ณ , ๋ฐฉํฅ ํ์, ์ํ, ํ์ฅ ๋ฐ ์ถ์, ๋ ธ๋ ์ ํ ๋ฑ ๋ค์ํ ๋จ์ถํค๋ฅผ ์ ๊ณตํ์ฌ ๋ง์ฐ์ค ์์ด๋ ํธ๋ฆฌํ๊ฒ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด์ ์ถ์ ํ์ผ์ ๋ฒ์ ์ด ์ง์ ๋๊ณ , ๋ธ๋ก ๊ธฐ๋ฐ ์์ถ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋๋ฉฐ, zli๋ ์๋ก์ด --trace ๋ฐ --trace-streams-dir ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒด ์ถ์ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ๊ฐ์ง ์ก๋คํ
- ์นดํ๋ก๊ทธ์ ์ฌ๋ฌ ์ฝ๋ฑ์ด ์ถ๊ฐ๋์์ต๋๋ค. ํํฐ์ ๋ฐ ๋นํธํฉ ์ฝ๋ฑ์ ์ด์ ํตํฉ ๋์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ถ๋ ์์์ ๋นํธ ๋ถํ ์ฝ๋ฑ์ ์ด์ fp16, fp32, fp64 ๋ฐ bf16 ํ์์ ๋ํ ์ ์ฉ ์ธ์ฝ๋์ ๋์ฝ๋๋ฅผ ํฌํจํ๋ฉฐ, ํน์ ๊ฐ์ ๊ธฐ๋ฅ๋ ์ ๊ณตํฉ๋๋ค. ๋ฒ์ ์ธ์ ๋ถํ (split_byrange), ๊ธธ์ด ๋ฉํฐํ๋ ์, ์ผํฐ๋ฌ ์ฝ๋ฑ, lz4 ๊ทธ๋ํ, ๊ทธ๋ฆฌ๊ณ tryParseInt ๋ฐ splitByParam๊ณผ ๊ฐ์ ๊ฐ๋จํ ๋์ฐ๋ฏธ ํจ์๋ค์ด ์ถ๊ฐ๋์์ต๋๋ค.
- API๊ฐ ๊ฐ์ํ๋์์ต๋๋ค.
- ํผ์ฆ ํ ์คํธ ๊ธฐ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
- ๋ ๋ง์ ํ๋ซํผ์ ์ํ ๋น๋ ๋ฐ ํจํค์ง ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๋์์ต๋๋ค.
์ถ์ฒ : linux.org.ru
