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