๋๋์ด ์ ์ฅ์๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋๋ ๊ทธ๊ฒ์ ์ข์ํฉ๋๋ค ๐
๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ๋ชจ๋ ๋งค์ฐ ์ธ์์ ์ ๋๋ค.
๋ฒค์น๋งํฌ ์ ํ๊ตฐ์ SipHash ๋ฅผ ์ถ๊ฐํ ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ์์ฒด Wikipedia ํ์ด์ง ๊ฐ ์์ผ๋ฉฐ ๋ง์ ํ๋ซํผ์์ ๊ตฌํ๋๊ณ ์ผ๋ถ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉ๋๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
๋ฒค์น๋งํฌ๊ฐ ์ ๋ฐ์ ๊ตฌํ์ด๊ณ ์ ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ๋ ํด์ ๊ตฌํ ๋ชจ๋๊ฐ ์ถฉ๋ถํ ์ฑ์ํ์ฌ Ruby์ Python์ด SipHash๋ณด๋ค xxHash๋ฅผ ์ฑํํ๋๋ก ํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ธ์ง ๊ถ๊ธํดํ ๋งํผ ์ถฉ๋ถํ ์ฑ์ํด ๋ณด์ ๋๋ค.
๊ฐ์ฌ ํด์!
๋ฌผ๋ก , ์ข์ ์ ์์ ๋๋ค.
siphash
๋ ์ด์ ๊ฐ๋ฅํ๋ฉฐ(๋ด ์๊ฐ์๋) ์ด๊ฒ์ด ๋น๊ตํ ์ ์๋ ์ฃผ์ ์๊ตฌ ์ฌํญ์
๋๋ค.
๊ธฐ๋ณธ ํ๋งค ํฌ์ธํธ๋ ์ถฉ๋ ์์ฑ๊ณผ ๊ด๋ จํ์ฌ ํฅ์๋ ์ํธํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง ์์ ์๋์์๋ ๋ถ๋ฆฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํ์ง๋ง ์ด๋ฅผ ์ํ ์๋ก์ด ๋ฒค์น๋งํฌ ํ๋ซํผ์ ๊ตฌ์ถํ ์๊ฐ์ ์ฐพ์์ผ ํฉ๋๋ค.
์ฌ์ค, ์ด SMHasher fork ์์ ๋ช ๊ฐ์ง ์ด๊ธฐ ํ ์คํธ๋ฅผ ์ฐพ์์ต๋๋ค. xxHash๋ ์์ ์ ๋ ฅ์ ๊ฒฝ์ฐ ์ต์ ๋ ๋ฐฐ, ๊ธด ์ ๋ ฅ์ ๊ฒฝ์ฐ ํจ์ฌ ๋น ๋ฆ ๋๋ค.
ํ์ง๋ง, ์ด ์ ๋๋ฉด ์ถฉ๋ถํ์ง ์์ ๊ฒ ๊ฐ์์...
[SipHash์] ์ฃผ์ ํ๋งค ํฌ์ธํธ๋ ์ถฉ๋ ์์ฑ๊ณผ ๊ด๋ จํ์ฌ ํฅ์๋ ์ํธํ ๋ณดํธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋๋ค.
ํนํ ํ์ ํด์ฑ ๊ณต๊ฒฉ๊ณผ ๊ด๋ จ๋ ์ํ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ด๊ฐ ๊นจ๋ฌ์๋ ๊ฒ๋ณด๋ค ๋ ํฐ ์๊ตฌ ์ฌํญ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(์ด ๊ธ์ ์ฝ๋ ๋ค๋ฅธ ์ฌ๋์ ์ํด ์ฌ๊ธฐ์ ๋์ ์์ค์ ์ค๋ช ๊ณผ ๋ ์์ธํ ์ค๋ช ์ด ์์ต๋๋ค).
์์ฒญ ์ ์ถฉ๋์ ์์ฑํ ์ ์์์ ๋ํ๋ด๋ ์ด ์ค๋ ๋ ๋ฅผ ์ฐพ์์ต๋๋ค.
์ด ์ฝ์ ์ ์ฌ์ฉํ์ฌ ๋ค์ค ์ถฉ๋์ ์์ฑํ๊ณ ํด์ ํ๋ฌ๋ฉ ๊ณต๊ฒฉ์ผ๋ก ์ด์ด์ง๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค... ํ์ง๋ง ์ถฉ๋ ์์ฑ์ ๋ํ ์ ํญ์ ๊ด๋ฒ์ํ ์ฑํ์ ์ํ ์๊ตฌ ์ฌํญ์ผ๋ก ๊ฐ์ฃผ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
...
๋ณด์ ๊ด๋ จ ์ฐธ๊ณ ์ฌํญ์ผ๋ก ๋ฉ์์ง์ ์ฒ์ 32๋ฐ์ดํธ๋ฅผ ํน์ ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ๋ชจ๋ ๋ฒกํฐ๋ ์ฒซ ๋ฒ์งธ ๋ผ์ด๋ ์ดํ์ ์๋์ ๋์ผํฉ๋๋ค.
์ด๊ฒ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ฑฐ๋ ํด์๋ฅผ ์์์ํค๋ ๋ฐ ์ ์ฉ๋ ์ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋๋๋ฆด ์ ์๋ ์กฐ์์ ์ฌ์ฉํ๋ ๋๋ง์ ๋ณํ์ ๊ฐ์ง๊ณ ๋๊ณ ์์ต๋๋ค.
๋ค์ xxHash
๋ฆด๋ฆฌ์ค์ ๋ํ ์๋ก์ด ๋ฒค์น๋งํฌ๋ฅผ ๋ง๋ค ์์ ์ด๋ฏ๋ก ๋ชฉ๋ก์ siphash
๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก:
๋๋ XXHash์ ์ ๊ทผ ๋ฐฉ์์์ ์๊ฐ์ ๋ฐ์ ๋ด ํ๋ก์ ํธ/๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋น์ทํ ๊ฒ์ ์ฌ์ฉํ์ต๋๋ค(์ ๋ ์ด๋ฆ์ RiskyHash ๋ก ์ง์ ํ์ต๋๋ค. ์์ค ์ฝ๋๋ ์ฌ๊ธฐ์์ ์ฐพ์ ์ ์์ต๋๋ค).
BTW:
์ฝ์์๋ก ํด์ ๋งต๊ณผ ๊ด๋ จ๋ ํด์ ๊ธฐ๋ฅ "๋ณด์"์ด ํ์ํ๋ค๋ ์ธ์์ ๋ ๋ฐ์ต๋๋ค. IMHO, ํด์ ๋งต ๊ตฌํ์ ํด์ฑ ๊ธฐ๋ฅ์ด ์๋๋ผ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด ๋ ผ๋ฆฌ์ ๋ฐ๋ผ ๋ ๋น ๋ฅธ ํด์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์๋นํ ์ฑ๋ฅ ํฅ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์, IMO, SipHash๋ ๊ณผ์์ ๋๋ค. "๋น ๋ฅธ" 1-3 ๋ณํ์ ์ฌ์ฉํ๋๋ผ๋ ์ฑ๋ฅ์ XXH32์ ์ ๋ฐ ๋ฏธ๋ง์ ๋๋ค.
์ ์ ํ ํด์๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์ siphash๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
https://github.com/Cyan4973/xxHash/wiki/Performance-comparison
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, IMO, SipHash๋ ๊ณผ์์ ๋๋ค. "๋น ๋ฅธ" 1-3 ๋ณํ์ ์ฌ์ฉํ๋๋ผ๋ ์ฑ๋ฅ์ XXH32์ ์ ๋ฐ ๋ฏธ๋ง์ ๋๋ค.
์ ์ ํ ํด์๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.