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