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.0405 sec