Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2023-08-01] Intro to Database Systems 7๊ฐ• - Hash Tables #7

Open
CoodingPenguin opened this issue Jul 31, 2023 · 4 comments
Open
Assignees
Labels
Database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๐Ÿ“ ์Šคํ„ฐ๋”” ์ผ์ง€ ์Šคํ„ฐ๋”” ์ผ์ง€

Comments

@CoodingPenguin
Copy link
Member

๐Ÿ“Œ ๊ฐœ์š”

  • ์‹œ๊ฐ„: 2023-08-01(ํ™”) 21:00
  • ์ž๋ฃŒ: 7๊ฐ• Hash Tables
  • ์ฐธ์—ฌ์ž: ํŽญ๊ท„, ๊ทธ๋ฃจํŠธ, ๋ ‰์‚ฌ, ๋‚˜๊ฐ•

โœ๏ธ ์ค€๋น„

์•„๋ž˜ ์–‘์‹์„ ๋ณต์‚ฌํ•ด ์Šคํ„ฐ๋”” ์ค€๋น„๋ฅผ ์™„๋ฃŒํ•ด์ฃผ์„ธ์š”!

## ๐Ÿ’ฌ ์ƒ๊ฐ

<!--๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ƒ๊ฐํ•œ ๋‚ด์šฉ์„ 3์ค„ ๋‚ด๋กœ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด์ฃผ์„ธ์š”!-->

- ...

## โ“ ์งˆ๋ฌธ

<!--๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ถ๊ธˆํ•œ ์ ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!-->

- ...

## ๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

<!--๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ™์ด ๊ณต๋ถ€ํ•œ ์ž๋ฃŒ๋ฅผ ์ฒจ๋ถ€ ๋ฐ ๊ณต์œ ํ•ด์ฃผ์„ธ์š”!-->

- [...](...)
@CoodingPenguin CoodingPenguin added ๐Ÿ“ ์Šคํ„ฐ๋”” ์ผ์ง€ ์Šคํ„ฐ๋”” ์ผ์ง€ Database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค labels Jul 31, 2023
@jonyejin
Copy link

jonyejin commented Aug 1, 2023

๐Ÿ’ฌ ์ƒ๊ฐ

1.

Q: ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์–ธ์ œ ์“ฐ๋Š”๊ฒŒ ์ข‹์„๊นŒ?
A: ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š”, ์ตœ๊ทผ์— ํฌ๋กค๋ง ํ•œ 70GB์ •๋„์—์„œ ์ค‘๋ณต์„ฑ์„ ๊ฒ€์‚ฌํ•  ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ
๊ฐ๊ฐ 10KB~1MB๋ฐ–์— ์•ˆ๋˜๋Š” ๋ฌธ์„œ์—ฌ์„œ ๊ต‰์žฅํžˆ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•˜๊ธฐ ๋•Œ๋ฌธ์—
pair์„ ๋งŒ๋“ค์–ด์„œ ๋น„๊ตํ•˜๊ธฐ์—๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ๋„ˆ๋ฌด ๋†’์•˜๋‹ค.

์ด๋•Œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ „์ฒด ๋ฌธ์„œ๋ฅผ 10๊ฐœ์ •๋„์˜ ํ†ต์— ๋‚˜๋ˆ  ๋‹ด์€ ํ›„,
๊ทธ ํ†ต ๋‚ด์—์„œ๋งŒ pair์„ ๋งŒ๋“ค์–ด์„œ ๋น„๊ตํ–ˆ๋”๋‹ˆ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ ํ›จ์”ฌ ์ค„์–ด๋“  ๊ฒฝํ—˜์ด ์žˆ์—ˆ๋‹ค.

2.

ํ•ด์‹œํ•จ์ˆ˜์˜ ์˜์˜: key๊ฐ€ O(1)๋งŒ์— index๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค?

๐ŸŒŸ ๋‚ด์šฉ ์ •๋ฆฌ

  • ์–ด๋–ค ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋Š”๊ฒŒ ์ข‹์€์ง€
    • Facebook XXHash๊ฐ€ Sota์ด๋‹ค.
    • CRC๋„ ๋„คํŠธ์›Œํฌ ์‹œ๊ฐ„์— ๋ฐฐ์šด ๊ธฐ์–ต์ด ์žˆ์Œ!
    • ํ•ด์‹œ ํ•จ์ˆ˜์˜ benchmark๋Š” bit/sec์ด๋‹ค.
  • Static Hashing Schemes
    1. Linear Probe Hashing
      - ์ด๋ฏธ ๊ทธ ํ‚ค๊ฐ€ ์ฐจ์žˆ์œผ๋ฉด ๋‹ค์Œ ๋นˆ์นธ์—๋‹ค๊ฐ€ ๋ฏธ๋ฃจ์–ด์„œ ์ €์žฅํ•œ๋‹ค.
      - ์ฐพ์„ ๋•Œ ๊ต‰์žฅํžˆ ๊ณค๋ž€ํ•ด์ง, ์ค‘๊ฐ„์ค‘๊ฐ„ ๋ช‡๊ฐœ๋ฅผ ์‚ญ์ œํ•œ ์ดํ›„์ด๋ฉด ๋” ๊ณค๋ž€ํ•ด์ง.
      - ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ๋ฐฉ์‹์ด ํ›จ์”ฌ ๋‚ซ์ง€ ์•Š์•„?
    2. Robin Hood Hashing
      • Cuckoo Hashing
  • Dynamic Hashing Schemes

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

@Nagunt
Copy link
Contributor

Nagunt commented Aug 1, 2023

๐Ÿ’ฌ ์ƒ๊ฐ

  • DBMS์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ค‘ Hash Table์— ๊ด€ํ•œ ๊ฐ•์˜. Hash function์€ Facebook XXHash๊ฐ€ ์ข‹๋Œ€์š”.
    • ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ๋Š” static hash table
      • linear prove hashing, robin hood hashing, cuckoo hashing
    • ํฌ๊ธฐ๊ฐ€ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋Š” dynamic hash table
      • chained hashing, extendible hashing, linear hashing
  • ์†๋„์™€ ํ™•์žฅ์„ฑ์€ trade-off ๊ด€๊ณ„, ์š”์ฆ˜์€ B+ tree๋ฅผ ๋งŽ์ด ์“ด๋‹ค๋„ค?

โ“ ์งˆ๋ฌธ

  • hash table์€ ํ‚ค๊ฐ€ ๋ฐ˜๋“œ์‹œ uniqueํ•ด์•ผ ํ•˜๋Š” ๊ฑธ๋กœ ์•Œ๊ณ  ์žˆ์—ˆ๋Š”๋ฐ non-unique key๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ธ๊ฑธ๊นŒ?
    • ๋Œ€์ถฉ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ •๋„๋กœ?

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

@IamGroooooot
Copy link
Member

๐Ÿ’ฌ ์ƒ๊ฐ

์ปด๊ณต ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ฐฐ์šด ๋‚ด์šฉ์ด ๋Œ€๋ถ€๋ถ„์ด๋ผ์„œ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค.
์ฟ ์ฟ ํ•ด์‹ฑ์€ ์ฒ˜์Œ ๋ดค๋Š”๋ฐ ์ฒœ์žฌ์ธ๋“ฏ..
๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ์—์„œ๋Š” ์–ด๋–ค ๊ณ ๋ฏผ ์‚ฌํ•ญ์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค.
DB์—์„œ๋Š” ์„ฑ๋Šฅ๋ณด๋‹ค ์ผ๊ด€์ ์ธ ์•ˆ์ •์„ฑ์„ ์ค‘์š”์‹œํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๊ธฐ์–ต์— ๋‚จ๋Š”๋‹ค.

@CoodingPenguin
Copy link
Member Author

๐Ÿ’ฌ ์ƒ๊ฐ

  • ...

โ“ ์งˆ๋ฌธ

  • ...

๐Ÿ“š ์ฐธ๊ณ  ์ž๋ฃŒ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Database ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๐Ÿ“ ์Šคํ„ฐ๋”” ์ผ์ง€ ์Šคํ„ฐ๋”” ์ผ์ง€
Projects
None yet
Development

No branches or pull requests

4 participants