U E D R , A S I H C RSS

Bigtable/Data Model

1. ๊ตฌ์กฐ

ํ…Œ์ด๋ธ” -> ํƒœ๋ธ”๋ฆฟ -> SSTABLE -> block
  1. ํ…Œ์ด๋ธ”์€ ํƒœ๋ธ”๋ฆฟ๋“ค์˜ ๋…ผ๋ฆฌ์ ์ธ ์ง‘ํ•ฉ.
  2. ํƒœ๋ธ”๋ฆฟ์€ SSTABLE๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ SSTABLE๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.
  3. SSTABLE์€ block์˜ ์ง‘ํ•ฉ์ด๋ฉฐ block๋“ค์˜ ์ฃผ์†Œ์™€ ์˜คํ”„์…‹์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

2. ํ…Œ์ด๋ธ”

๋ฐ์ดํ„ฐ ์ €์žฅ ํ˜•์‹์€ 3์ฐจ์› ํ…Œ์ด๋ธ”ํ˜•ํƒœ. ํ–‰(row key), ์—ด(column), ๊นŠ์ด(timestamp)
ํƒœ๋ธ”๋ฆฟ์„ ๋ชจ๋‘ ํ•ฉ๋ณ‘ํ•˜๋ฉด ํ…Œ์ด๋ธ”์ด ๋œ๋‹ค.
  1. Key - value
    1. row key : url(๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ’์˜ ๋Œ€ํ‘œ, ์ œ๋ชฉ๋“ฑ)
    2. column family : column ์ข…๋ฅ˜
      1. ์•ต์ปค
      2. ์ฝ˜ํ…์ธ (์ œ๋ชฉ?) <- ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด value
      3. Title
    3. timestamp๋Š” ๋ณ„๋„
    4. value : ํ•ด๋‹น ์‚ฌ์ดํŠธ/ํ‚ค์™€ ๋งคํ•‘๋˜๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ๊ฐ’

3. ํƒœ๋ธ”๋ฆฟ

ํƒœ๋ธ”๋ฆฟ์„ ๋ชจ๋‘ ํ•ฉ๋ณ‘ํ•˜๋ฉด ํ…Œ์ด๋ธ”์ด ๋œ๋‹ค.
ํƒœ๋ธ”๋ฆฟ์€ SSTABLE๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ SSTABLE๋“ค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.
  1. ํƒœ๋ธ”๋ฆฟ์˜ ์ด๋ฆ„์€ : ๋งˆ์ง€๋ง‰ ํ‚ค -> ์นดํƒˆ๋กœ๊ทธ์— ๋งคํ•‘ํ•„์š”
    1. ๋งˆ์ง€๋ง‰ ํ‚ค๋Š” ์นดํƒˆ๋กœ๊ทธ์—์„œ shorten id์™€ ๋งคํ•‘๋˜์–ด์žˆ๋‹ค.
  2. ํƒœ๋ธ”๋ฆฟ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ row๋กœ ๊ตฌ์„ฑ๋จ.
  3. ํƒœ๋ธ”๋ฆฟ์€ SSTABLE์˜ ID+์˜คํ”„์…‹์„ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.

3.1. SPLIT

1. split ํ—ˆ์šฉ
  1. ํŠธ๋ฆฌ๊ฑฐ : ํƒœ๋ธ”๋ฆฟ ํฌ๊ธฐ๊ฐ€ 200MB ์ด์ƒ์ผ๋•Œ
  2. row๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํƒœ๋ธ”๋ฆฟ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

4. SSTable

SSTABLE์€ ํ•˜๋‚˜์˜ memtable๊ณผ block์˜ ์‹œ์ž‘์ฃผ์†Œ์™€ ์˜คํ”„์…‹๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค.
DFS ์ตœ์†Œ ํŒŒ์ผ ๋‹จ์œ„
  1. SSTABLE ๋ช…?
    1. ํƒœ๋ธ”๋ฆฟId
    2. + ๋งˆ์ง€๋ง‰ row key
  2. ๋ฐ์ดํ„ฐ ๋ธ”๋ก๊ณผ ์ธ๋ฑ์Šค ๋ธ”๋ก
    1. ๋ฐ์ดํ„ฐ ๋ธ”๋ก
    2. ์ธ๋ฑ์Šค ๋ธ”๋ก
      1. ์•ฝ 64KB๋งˆ๋‹ค ์กด์žฌํ•˜๋Š” row key๋ฅผ ๋ธ”๋ก์˜ ์ธ๋ฑ์Šค๋กœ ํ•œ๋‹ค.
      2. ๋ธ”๋ก์˜ ์ธ๋ฑ์Šค์™€ ์‹ค์ œ ํŒŒ์ผ์˜ ์ฃผ์†Œ๋ฅผ
  3. ๋‹ค์ˆ˜์˜ ํƒœ๋ธ”๋ฆฟ์ด ํ•˜๋‚˜์˜ SSTable์„ ์ฐธ์กฐํ•  ๋•Œ์˜ ๋ฌธ์ œ์ ?
    1. ์—ฌ๋Ÿฌ ํƒœ๋ธ”๋ฆฟ์ด ํ•˜๋‚˜์˜ SSTable์„ ์ฐธ์กฐํ•ด๋„ ๋ธ”๋Ÿญ๋“ค์„ ์˜คํ”„์…‹์œผ๋กœ ์ฐธ์กฐํ•˜๋ฏ€๋กœ ๊ฐ™์€ ๋ถ€๋ถ„์„ ์ฐธ์กฐํ•˜๋Š” ์ผ์ด ์—†๋‹ค.
    2. ๊ฐ ํƒœ๋ธ”๋ฆฟ์˜ majorCompaction์‹œ ํƒœ๋ธ”๋ฆฟ๋ณ„๋กœ SSTable๋“ค์ด ๋‚˜๋ˆ„์–ด์ง€๋ฏ€๋กœ ๊ฒฐ๊ตญ SSTable์€ ํ•˜๋‚˜์˜ ํƒœ๋ธ”๋ฆฟ์— ํ”ผ์ฐธ์กฐ๋œ๋‹ค.

5. ๋ธ”๋ก

  1. ๋ธ”๋ก์€ 64KB๋‚ด์™ธ์˜ ์•”์‹œ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.
    1. SSTABLE์˜ ์ฃผ์†Œ์™€ ์˜คํ”„์…‹์œผ๋กœ ๋ธ”๋ก๋“ค์ด ๊ตฌ๋ถ„๋œ๋‹ค.
  2. ๋ช…์‹œ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ SSTable์—์„œ row key๋“ค๋กœ ๊ตฌ๋ถ„๋˜์–ด์ง„ ๋ฒ”์œ„์ด๋‹ค.
    1. ๋ธ”๋ก ์ธ๋ฑ์Šค๋กœ ์„ ํƒ๋œ row key๋ถ€ํ„ฐ ๋‹ค์Œ ๋ธ”๋ก ์ธ๋ฑ์Šค๋กœ ์„ ํƒ๋œ row key๊ฐ€ ๋‚˜์˜ฌ ๋•Œ ๊นŒ์ง€๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ก ๋‹จ์œ„๋กœ ํ•œ๋‹ค.
    2. ๋ฐ˜๋“œ์‹œ 64KB๊ฐ€ ๋˜์ง€๋Š” ์•Š์Œ

6. memtable

1. ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด์žˆ๋‹ค.
1. ํƒœ๋ธ”๋ฆฟ๋‹น ํ•œ๊ฐœ
1. ์“ฐ๊ธฐ๋ฐ–์— ์•ˆ๋จ.
1. ๋ฐ์ดํ„ฐ ๋ธ”๋Ÿญ๊ณผ ์ธ๋ฑ์Šค ๋ธ”๋Ÿญ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง
  1. ํฌ๊ธฐ
    1. ๋ฐ์ดํ„ฐ ๋ธ”๋Ÿญ ํฌ๊ธฐ : 32MB
    2. ์ธ๋ฑ์Šค ๋ธ”๋Ÿญ์€ ํฌ๊ธฐ์ œํ•œ ์—†๋‹ค.
  2. ๋ฐ์ดํ„ฐ
    1. ๋ฐ์ดํ„ฐ ๋ธ”๋Ÿญ : ํ‚ค:๊ฐ’์„ ์“ด๋‹ค.
    2. ์ธ๋ฑ์Šค ๋ธ”๋Ÿญ : ํƒœ๋ธ”๋ฆฟ์ด ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” SSTable์˜ ๋ธ”๋Ÿญ ์ธ๋ฑ์Šค๋“ค merge
1. ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ ๋‹ค ์ฐจ์„œ ๋”์ด์ƒ ์“ธ ์ˆ˜ ์—†์„ ๋•Œ SSTABLE๋กœ ์ €์žฅํ•œ๋‹ค.
1. SSTABLE๋“ค์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์ง„๋‹ค
  1. ์ธ๋ฑ์Šค๋Š” ์–ด๋–ป๊ฒŒ?

7. ๋กœ์ปฌ๋ฆฌํ‹ฐ ๊ทธ๋ฃน

ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ฐ€์ง€๋Š” row๋“ค์„ ๋ณ„๋„์˜ ํƒœ๋ธ”๋ฆฟ์— ์ €์žฅํ•œ ๊ฒƒ. ex) ํƒ€์ดํ‹€
  1. TS์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•œ๋‹ค.
  2. ํŠน์ • ์ปฌ๋Ÿผ ์ข…๋ฅ˜๋งŒ์„ ๊ฐ€์ง„๋‹ค. ex) title

8. ์ปค๋ฐ‹๋กœ๊ทธ

  1. ํƒœ๋ธ”๋ฆฟ์˜ ID + ์“ฐ๋ ค๋Š” ํ‚ค:๋ฐธ๋ฅ˜
    1. ํƒœ๋ธ”๋ฆฟ์˜ ID์€ ํƒœ๋ธ”๋ฆฟ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ํ‚ค๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“ ๋‹ค.
    2. ํƒœ๋ธ”๋ฆฟ์˜ ID์€ ๋งคํ•‘ํ…Œ์ด๋ธ”(์นดํƒˆ๋กœ๊ทธ)์—์„œ ์งง์€ ID์œผ๋กœ ๋Œ€์ฒด๋จ.
  2. ์ €์žฅ๊ณต๊ฐ„์˜ ์žฌ์‚ฌ์šฉ : ์ปค๋ฐ‹๋กœ๊ทธ๋Š” ์›ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ๊ณต๊ฐ„์„ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.
    1. ์ปค๋ฐ‹๋กœ๊ทธ์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ํƒ€์ž„์Šคํƒฌํ”„์™€ memtable์˜ ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ํƒ€์ž„์Šคํƒฌํ”„์™€ ๋น„๊ตํ•˜์—ฌ memtable์˜ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ๋” ์ตœ์‹ ์ด๋ผ๋ฉด ๋กœ๊ทธ์‚ญ์ œ๊ฐ€๋Šฅ
    2. memtable์˜ T/S๊ฐ€ ๋” ์ตœ์‹ ์ด ์•„๋‹ˆ๋ผ๋ฉด minor compaction์„ ํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ๋น„์šด๋‹ค.

9. ์นดํƒˆ๋กœ๊ทธ

  1. ์นดํƒˆ๋กœ๊ทธ์˜ ์ฃผ์†Œ๋Š” Locker์— ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค. (client์˜ ์ ‘๊ทผ์„ ์œ„ํ•ด Locker์— ๋“ฑ๋ก)
  2. ์นดํƒˆ๋กœ๊ทธ ๋˜ํ•œ ํƒœ๋ธ”๋ฆฟ. TS๊ฐ€ ๊ด€๋ฆฌํ•œ๋‹ค.
  3. ์นดํƒˆ๋กœ๊ทธ์— ํ•„์š”ํ•œ ๊ฒƒ
    1. ํƒœ๋ธ”๋ฆฟ ID ๋งคํ•‘ ํ…Œ์ด๋ธ”
    2. ์ปฌ๋Ÿผ ํŒจ๋ฐ€๋ฆฌ ๊ฐœ์ˆ˜
    3. ์นดํƒˆ๋กœ๊ทธ ์ „์šฉ ํŒŒ์ผ ํ•„์š”?? SSTable ํ•˜๋‚˜๋ฅผ ํ• ๋‹น๋ฐ›์•„ ๋‹ค ์“ธ๋•Œ๊นŒ์ง€ ํ•ด์ œํ•˜์ง€ ์•Š๋Š”๊ฑด ์–ด๋–จ๊นŒ?
  4. ISSUE
    1. ์นดํƒˆ๋กœ๊ทธ์— ์–ธ์ œ ์ ‘๊ทผํ•  ๊ฒƒ์ธ๊ฐ€?

10. ํƒœ๋ธ”๋ฆฟ ์ปด์ƒ‰ ํŠธ๋ฆฌ/ ํƒœ๋ธ”๋ฆฟ ํŠธ๋ž˜์ปค

๋ฃจํŠธํƒœ๋ธ”๋ฆฟ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํƒœ๋ธ”๋ฆฟ, ์œ ์ €ํƒœ๋ธ”๋ฆฟ์œผ๋กœ ๊ตฌ์„ฑ๋จ. ์ผ๋ฐ˜ ํƒœ๋ธ”๋ฆฟ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ SSTABLE๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์œผ๋ฉฐ write only์ž„.
์ž๋ฃŒ๊ตฌ์กฐ : B+-ํŠธ๋ฆฌ -- ๋ฐฐ์—ด(๋ฃจํŠธ, ๋ฉ”ํƒ€ํƒœ๋ธ”๋ฆฟ) + ๋ฆฌ์ŠคํŠธ(์œ ์ €ํƒœ๋ธ”๋ฆฟ) --
  1. ๋ฃจํŠธ ํƒœ๋ธ”๋ฆฟ
    1. Locker์— ์œ„์น˜๊ฐ€ ๊ธฐ๋ก๋œ๋‹ค
    2. ๋ฉ”ํƒ€ํƒœ๋ธ”๋ฆฟ์ด ๋ถ„ํ• ๋  ๋•Œ(๋˜๋Š” ์‚ฝ์ž…๋  ๋•Œ) ๊ฐฑ์‹ ๋จ.
    3. ๋ฃจํŠธํƒœ๋ธ”๋ฆฟ์˜ ์›์†Œ ํ•˜๋‚˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํƒœ๋ธ”๋ฆฟ๊ณผ ๋งค์นญ๋œ๋‹ค.
  2. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํƒœ๋ธ”๋ฆฟ
    1. ์œ ์ €ํƒœ๋ธ”๋ฆฟ์ด ๋ถ„ํ• ๋  ๋•Œ(๋˜๋Š” ์‚ฝ์ž…๋  ๋•Œ) ๊ฐฑ์‹ ๋จ
  3. ์œ ์ € ํƒœ๋ธ”๋ฆฟ
    1. ํƒœ๋ธ”๋ฆฟ ID(row key)์™€ ํƒœ๋ธ”๋ฆฟ ์„œ๋ฒ„ ๋งคํ•‘ํ•ด์คŒ.
    2. ํƒœ๋ธ”๋ฆฟ์ด ์–ด๋””์— ์ €์žฅ๋˜์–ด์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ.
  4. ์ €์žฅ ๋ฐ์ดํ„ฐ
    1. key : ํƒœ๋ธ”๋ฆฟ ID(row key)
      value : IP+port#
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:36
Processing time 0.0087 sec