[2026-02-05] Elastic Sketch Adaptive and Fast Network-wide Measurements

๐Ÿฆฅ ๋ณธ๋ฌธ

Background and Motivation

๊ธฐ์กด ์—ฐ๊ตฌ์—์„œ๋Š” ํŠธ๋ž˜ํ”ฝ ํŠน์„ฑ (๊ฐ€์šฉ ๋Œ€์—ญํญ, ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ, ํŒจํ‚ท ์†๋„ ํฌํ•จ)์— ๋”ฐ๋ฅธ ๋™์  ๋„คํŠธ์›Œํฌ ์ธก์ •์— ๋Œ€ํ•ด ๋‹ค๋ฃจ์ง€ ์•Š์Œ

ํŠธ๋ž˜ํ”ฝ ํŠน์„ฑ

  • ๊ฐ€์šฉ ๋Œ€์—ญํญ : ๋„คํŠธ์›Œํฌ ํ˜ผ์žก ์‹œ ๋Šฅ๋™์ ์œผ๋กœ ์••์ถ•
  • ํŒจํ‚ท ์†๋„ : ๋„คํŠธ์›Œํฌ ๊ณต๊ฒฉ ์‹œ ํŒจํ‚ท์€ ์ž‘์•„์ง€์ง€๋งŒ ์†๋„๋Š” ๋นจ๋ผ์ ธ์„œ ๊ฐ€์šฉ ๋Œ€์—ญํญ์€ ์—ฌ์œ ๊ฐ€ ์žˆ์ง€๋งŒ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋ชป ๋”ฐ๋ผ๊ฐ€์„œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ. ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์ •๋ณด๋ฅผ ๋Šฅ๋™์ ์œผ๋กœ ํ๊ธฐํ•˜์—ฌ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๊ฐ€์†ํ™”.
  • ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ : ๋งˆ์šฐ์Šค ํ”Œ๋กœ์šฐ์™€ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉ. ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ๋Š” ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ํ• ๋‹น

์š”๊ตฌ ์‚ฌํ•ญ

  • ๋ฒ”์šฉ์„ฑ : ๋…ธ๋“œ๋Š” ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์ž‘์—…์„ ์œ„ํ•œ ํ•˜๋‚˜์˜ ๋ฒ”์šฉ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ.
  • ์‹ ์†์„ฑ : ํŒจํ‚ท์˜ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ์งง๊ณ  ์ผ์ •
  • ์ •ํ™•์„ฑ : ์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋กœ ์˜ค๋ฅ˜์œจ์„ ๋‚ฎ์ถค

Challenge

  1. ์••์ถ•ํ•˜๋ฉด์„œ๋„ ๋†’์€ ์ •ํ™•๋„
    • ๊ธฐ์กด ์—ฐ๊ตฌ : ๊ณ ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ
    • ํ•ด๋‹น ์—ฐ๊ตฌ : ๋„คํŠธ์›Œํฌ ๊ฐ€์šฉ์„ฑ์ด ๋‚ฎ์„ ๋•Œ, ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์••์ถ•ํ•˜์ง€๋งŒ ํฐ ๋ฉ”๋ชจ๋ฆฌ์˜€์„ ๋•Œ์˜ ์ด์ ์„ ์‚ด๋ ค์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž‘์•˜๋˜ ๊ณ ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ๋†’์€ ์ •ํ™•๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ
  2. ํŒจํ‚ท ์†๋„์— ๋งž๋Š” ์ฒ˜๋ฆฌ ์†๋„
    • ๊ธฐ์กด ์—ฐ๊ตฌ : ์ผ์ •ํ•œ ์ฒ˜๋ฆฌ ์†๋„. ํŒจํ‚ท ํ•˜๋‚˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ
    • ํ•ด๋‹น ์—ฐ๊ตฌ : ํŒจํ‚ท ์†๋„๊ฐ€ ๋‚ฎ์„ ๋•Œ์—๋Š” 2ํšŒ, ํŒจํ‚ท ์†๋„๊ฐ€ ๋†’์„ ๋•Œ์—๋Š” 1ํšŒ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์ˆ˜ํ–‰
  3. ํ”Œ๋กœ์šฐ ๋ถ„ํฌ์— ๋”ฐ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น
    • ๋Œ€๋ถ€๋ถ„์€ ๋งˆ์šฐ์Šค ํ”Œ๋กœ์šฐ์ด๊ณ  ๊ทน์†Œ์ˆ˜๊ฐ€ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ์ด์ง€๋งŒ, ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ, ์ ์ ˆํ•œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ํ• ๋‹น

Contribution

  1. ์ƒˆ๋กœ์šด ์Šค์ผ€์น˜์ธ Elastic Sketch๋ฅผ ์ œ์•ˆ
    • ํŠธ๋ž˜ํ”ฝ ํŠน์„ฑ์— ์ ์‘ํ•˜๋Š” ๋Šฅ๋ ฅ
    • ๋ฒ”์šฉ์ ์ด๊ณ  ๋น ๋ฅด๋ฉฐ ์ •ํ™•
    • ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ์™€ ๋งˆ์šฐ์Šค ํ”Œ๋กœ์šฐ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ 
    • ์Šค์ผ€์น˜ ์••์ถ•์„ ์œ„ํ•œ ๊ธฐ์ˆ 
  2. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™

Generic Method for Measurements

  • ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ์ถ”์ •
    • ํ”Œ๋กœ์šฐ ID๋Š” 5-ํŠœํ”Œ(5-tuple)์˜ ์กฐํ•ฉ์ด๊ฑฐ๋‚˜ ํ”„๋กœํ† ์ฝœ ๋‹จ๋…
    • ํ”Œ๋กœ์šฐ์˜ ํŒจํ‚ท ์ˆ˜๋ฅผ ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๋กœ ๊ฐ„์ฃผ.
      • EX) ์ตœ์†Œ ํŒจํ‚ท์„ 64๋ฐ”์ดํŠธ๋ผ๊ณ  ๊ฐ€์ •ํ•  ๋•Œ 120๋ฐ”์ดํŠธ์˜ ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๋ฉด ์ด๋ฅผ 2๊ฐœ์˜ ํŒจํ‚ท์œผ๋กœ ๊ฐ„์ฃผ
  • Heavy Heater ํƒ์ง€ : ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ํฐ ํ”Œ๋กœ์šฐ ํƒ์ง€
  • Heavy Change ํƒ์ง€ : ์ธ์ ‘ํ•œ ๋‘ time window ์‚ฌ์ด์—์„œ ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๊ฐ€ ์ž„๊ณ„๊ฐ’ ์ด์ƒ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ฐ์†Œํ•œ ํ”Œ๋กœ์šฐ ํƒ์ง€
  • ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ ์ถ”์ •/์—”ํŠธ๋กœํ”ผ ์ถ”์ •/์นด๋””๋„๋ฆฌํ‹ฐ ์ถ”์ •

Elastic Sketch

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

image.png

  • Heavy part : ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๋ฅผ ์ €์žฅ
    • Heavy part $H$๋Š” ํ•ด์‹œ ํ•จ์ˆ˜ $h(.)$์™€ ์—ฐ๊ฒฐ๋œ ํ•ด์‹œ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ
    • ๊ฐ ๋ฒ„ํ‚ท์€ ํ”Œ๋กœ์šฐ ID, positive votes($vote^{+}$), negative votes($vote^{-}$), flag ์ •๋ณด๋ฅผ ์ €์žฅ
      • positive votes๋Š” ์ด ํ”Œ๋กœ์šฐ์— ์†ํ•œ ํŒจํ‚ท์˜ ์ˆ˜(ํ”Œ๋กœ์šฐ ํฌ๊ธฐ)๋ฅผ ๊ธฐ๋ก
      • negative votes๋Š” ๋‹ค๋ฅธ ํ”Œ๋กœ์šฐ์— ์†ํ•œ ํŒจํ‚ท์˜ ์ˆ˜๋ฅผ ๊ธฐ๋ก
      • flag๋Š” ํ•ด๋‹น ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•œ ํŒจํ‚ท์ด light part์— ํฌํ•จ๋˜์–ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„
    • ํŒจํ‚ท์ด ํ•ด๋‹น ๋ฒ„ํ‚ท์— ๋“ค์–ด์™”์„ ๋•Œ, ๋ฒ„ํ‚ท์— ์žˆ๋Š” ํ”Œ๋กœ์šฐ์™€ ๋™์ผํ•˜๋ฉด positive votes๋ฅผ ์ฆ๊ฐ€ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด negative votes๋ฅผ ์ฆ๊ฐ€์‹œํ‚ด. ๋งŒ์•ฝ $\frac{\text{๋ถ€์ • ํˆฌํ‘œ์ˆ˜}}{\text{๊ธ์ • ํˆฌํ‘œ์ˆ˜}} \ge \lambda$ (์‚ฌ์ „์— ์ •์˜๋œ ์ž„๊ณ„๊ฐ’)๋ผ๋ฉด, ํ•ด๋‹น flow๋ฅผ evict ์‹œํ‚ค๊ณ  ๊ทธ ์ž๋ฆฌ์— ํ•ด๋‹น ํ”Œ๋กœ์šฐ ์‚ฝ์ž…
  • Light part : ๋งˆ์šฐ์Šค ํ”Œ๋กœ์šฐ๋ฅผ ์ €์žฅ. CM ์Šค์ผ€์น˜
    • d๊ฐœ์˜ ๋ฐฐ์—ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ณ  ๊ฐ ๋ฐฐ์—ด์€ ํ•˜๋‚˜์˜ ํ•ด์‹œ ํ•จ์ˆ˜์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ. w๊ฐœ์˜ ์นด์šดํ„ฐ๋กœ ๊ตฌ์„ฑ.
    • ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๋ฉด, ํ”Œ๋กœ์šฐ ID๋ฅผ ์ถ”์ถœํ•˜์—ฌ d๊ฐœ์˜ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐฐ์—ด๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์นด์šดํ„ฐ ์œ„์น˜๋ฅผ ์ฐพ์•„๋‚ธ ๋’ค, ๊ทธ d๊ฐœ์˜ ์นด์šดํ„ฐ๋ฅผ 1์”ฉ ์ฆ๊ฐ€
    • ์กฐํšŒ : d ๊ฐœ์˜ ํ•ด์‹œ ์นด์šดํ„ฐ ๊ฐ’์„ ์–ป์€ ํ›„, ๊ทธ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ํ†ตํ•ด ์กฐํšŒ

๋™์ž‘ ํ๋ฆ„

  • ์‚ฝ์ž…
    1. ํ”Œ๋กœ์šฐ ID๊ฐ€ $f$์ธ ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๋ฉด, ํ—ค๋น„ ํŒŒํŠธ์˜ ๋ฒ„ํ‚ท ์ˆ˜์ธ $B$๋ฅผ ์ด์šฉํ•˜์—ฌ $H[h(f)\%B]$ ๋ฒ„ํ‚ท์œผ๋กœ ํ•ด์‹ฑ
    2. ํ•ด๋‹น ๋ฒ„ํ‚ท์— $f_{1}, vote^{+}, flag_{1}, vote^{-}$์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ, $f$์™€ ์— $f_{1}$๊ฐ€ ๊ฐ™์œผ๋ฉด $vote^{+}$๋ฅผ ์ฆ๊ฐ€. ์•„๋‹Œ ๊ฒฝ์šฐ $vote^{-}$๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  $f_{1}$์„ ๋ฐฉ์ถœํ•  ์ง€ ๊ฒฐ์ •
      • ๋ฒ„ํ‚ท์ด ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ. ๋ฒ„ํ‚ท์— ($f, 1, F, 0$)์„ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ $F$๋Š” ๋ฒ„ํ‚ท์—์„œ ๋ฐฉ์ถœ์ด ์ผ์–ด๋‚œ ์ ์ด ์—†์Œ์„ ์˜๋ฏธ. ์‚ฝ์ž… ์ข…๋ฃŒ
    3. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Œ
      • $vote^{-}$๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ ํ›„์—๋„ $\frac{vote^{-}}{vote^{+}} < \lambda$์ธ ๊ฒฝ์šฐ ($f, 1$)์„ CM ์Šค์ผ€์น˜์— ์‚ฝ์ž…. 1์€ ํ•ด๋‹น ํ”Œ๋กœ์šฐ์˜ ํŒจํ‚ท์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ.
      • $vote^{-}$๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ ํ›„์—๋„ $\frac{vote^{-}}{vote^{+}} > \lambda$์ธ ๊ฒฝ์šฐ. ๋ฒ„ํ‚ท์„ ($f, 1, T, 1$)๋กœ ์„ค์ •. ๊ธฐ์กด ํ”Œ๋กœ์šฐ ($f_{1}, vote^{+}$)์„ CM ์Šค์ผ€์น˜๋กœ ์‚ฝ์ž…. ๋งคํ•‘๋œ ์นด์šดํ„ฐ๋“ค์€ $vote^{+}$๋งŒํผ ์ฆ๊ฐ€
  • ์กฐํšŒ : Heavy part ์กฐํšŒ ํ›„ ์—†๋Š” ํ”Œ๋กœ์šฐ์— ๋Œ€ํ•ด์„œ๋Š” Light part์—์„œ ์กฐํšŒ
    • Heavy part์— ์žˆ๋Š” ๊ฒฝ์šฐ
      1. ํ”Œ๋ž˜๊ทธ๊ฐ€ false์ธ ๊ฒฝ์šฐ : ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๋Š” ์˜ค์ฐจ ์—†๋Š” $vote^{+}$ ๊ฐ’
      2. ํ”Œ๋ž˜๊ทธ๊ฐ€ true์ธ ๊ฒฝ์šฐ : $vote^{+}$ ๊ฐ’๊ณผ CM ์Šค์ผ€์น˜ ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๋”ํ•ด์•ผ ํ•จ

์ •ํ™•๋„ ๋ถ„์„

  • Theorem
    • ๋ฒกํ„ฐ $\mathbf{f} = (f_{1}, f_{2}, โ€ฆ, f_{n})$๋ฅผ ์ŠคํŠธ๋ฆผ์˜ ํฌ๊ธฐ ๋ฒกํ„ฐ. $f_{i}$๋Š” i๋ฒˆ์งธ ํ”Œ๋กœ์šฐ์˜ ํฌ๊ธฐ
    • ๋‘ ๋งค๊ฐœ๋ณ€์ˆ˜ $\epsilon$๊ณผ $\delta$๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, $w = \lceil \frac{e}{\epsilon} \rceil$ (e๋Š” ์˜ค์ผ๋Ÿฌ ์ˆ˜)์ด๊ณ  $d = \lceil \ln \frac{1}{\delta} \rceil$
    • $d$(์นด์šดํ„ฐ ๋ฐฐ์—ด์˜ ์ˆ˜)์™€ $w$(๊ฐ ๋ฐฐ์—ด์˜ ์นด์šดํ„ฐ ์ˆ˜)๋ฅผ ๊ฐ–๋Š” ์—˜๋ผ์Šคํ‹ฑ ์Šค์ผ€์น˜
    • $\mathbf{f}_{L}$์€ ๋ผ์ดํŠธ ํŒŒํŠธ์— ๊ธฐ๋ก๋œ ์„œ๋ธŒ ์ŠคํŠธ๋ฆผ์˜ ํฌ๊ธฐ ๋ฒกํ„ฐ
    • ์—˜๋ผ์Šคํ‹ฑ ์Šค์ผ€์น˜์— ์˜ํ•ด ์ถ”์ •๋œ ํ”Œ๋กœ์šฐ i์˜ ํฌ๊ธฐ $\hat{f}{i}$๋Š” ์ตœ์†Œ $1 - \delta$์˜ ํ™•๋ฅ ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง

      image.png

    • ์ถ”์ • ์˜ค์ฐจ๋Š” Count-Min์˜ $ ย  \mathbf{f} ย  _{1}$ ๋Œ€์‹  $ ย  \mathbf{f}_{L} ย  _{1}$์— ์˜ํ•ด ์ œํ•œ. ์‹ค์ œ๋กœ๋Š” ์ŠคํŠธ๋ฆผ์˜ ๋Œ€๋ถ€๋ถ„์˜ ํŒจํ‚ท์ด ํ—ค๋น„ ํŒŒํŠธ์— ๊ธฐ๋ก๋˜๋ฏ€๋กœ, $ ย  \mathbf{f}_{L} ย  _{1}$์€ ๋ณดํ†ต $ ย  \mathbf{f} ย  _{1}$๋ณด๋‹ค ํ˜„์ €ํžˆ ์ž‘์Œ.
    • ๋งค๊ฐœ๋ณ€์ˆ˜ d์™€ w๊ฐ€ ๊ฐ™์„ ๋•Œ CM๋ณด๋‹ค ๋” ์ด˜์ด˜ํ•œ ์˜ค์ฐจ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง
  • Heavy part์˜ flag๊ฐ€ false์ธ ํ”Œ๋กœ์šฐ์˜ ๊ฒฝ์šฐ ์˜ค์ฐจ๊ฐ€ ์—†์Œ
  • Heavy part์˜ flag๊ฐ€ true์ธ ํ”Œ๋กœ์šฐ์˜ ๊ฒฝ์šฐ Light part์— ๊ธฐ๋ก๋œ ํ”Œ๋กœ์šฐ์˜ ์ผ๋ถ€๋ถ„๋งŒ ์˜ค์ฐจ๊ฐ€ ์žˆ์Œ
  • Light part์—์„œ๋Š” ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๋งŒ ๊ธฐ๋ก๋˜๋ฏ€๋กœ ๋งŽ์€ ์ˆ˜์˜ ์ž‘์€ ์นด์šดํ„ฐ (8๋น„ํŠธ ์นด์šดํ„ฐ)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
    • ๊ธฐ์กด CM์€ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๋ฅผ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•ด 32๋น„ํŠธ ์นด์šดํ„ฐ๋ฅผ ์‚ฌ์šฉ
  • ์—˜๋ฆฌํŽ€ํŠธ ์ถฉ๋Œ : ์ •ํ™•๋„๊ฐ€ ์ตœ์•…์ธ ๊ฒฝ์šฐ. ๋‘˜ ์ด์ƒ์˜ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๊ฐ€ ๋™์ผํ•œ ๋ฒ„ํ‚ท์— ๋งคํ•‘๋  ๋•Œ ์ผ๋ถ€ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๊ฐ€ ๋ผ์ดํŠธ ํŒŒํŠธ๋กœ ๋ฐฉ์ถœ๋˜์–ด ์ผ๋ถ€ ๋งˆ์šฐ์Šค ํ”Œ๋กœ์šฐ๊ฐ€ ํฌ๊ฒŒ ๊ณผ๋Œ€ ์ถ”์ •๋˜๋Š” ๊ฒฝ์šฐ
    • ์—˜๋ฆฌํŽ€ํŠธ ์ถฉ๋Œ๋ฅ  ($P_{hc}$) : ํ•˜๋‚˜ ์ด์ƒ์˜ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ๊ฐ€ ๋งคํ•‘๋œ ๋ฒ„ํ‚ท์˜ ์ˆ˜๋ฅผ ์ „์ฒด ๋ฒ„ํ‚ท ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ ์ •์˜. ๊ฐ ๋ฒ„ํ‚ท์— ๋งคํ•‘๋œ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ์˜ ์ˆ˜๋Š” ์ดํ•ญ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฆ„
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ•˜๋‚˜์˜ ๋ฒ„ํ‚ท์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚ค-๊ฐ’ ์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ

Adaptivity to Available Bandwidth

์Šค์ผ€์น˜ ์••์ถ•

image.png

์นด์šดํ„ฐ๋“ค์„ ๊ทธ๋ฃนํ™”ํ•œ ๋‹ค์Œ ๋™์ผํ•œ ๊ทธ๋ฃน ๋‚ด์˜ ์นด์šดํ„ฐ๋“ค์„ ํ•˜๋‚˜์˜ ์นด์šดํ„ฐ๋กœ ์••์ถ•

ํฌ๊ธฐ๊ฐ€ $zwโ€™ \times d$์ธ ์Šค์ผ€์น˜ A. (d๋Š” ๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜. z๋Š” ๊ทธ๋ฃนํ™” ๊ฐœ์ˆ˜. wโ€™๋Š” ๊ทธ๋ฃน ๋‚ด ์นด์šดํ„ฐ ๊ฐœ์ˆ˜

  1. ๊ทธ๋ฃนํ™”
    1. A๋ฅผ z๊ฐœ์˜ ๋™์ผํ•œ ๊ตฌ์—ญ์œผ๋กœ ๋‚˜๋ˆ”. ๊ฐ ๊ตฌ์—ญ์˜ ํฌ๊ธฐ๋Š” $wโ€™ \times d$
  2. ํฌ๊ธฐ๋Š” $wโ€™ \times d$์ธ ์Šค์ผ€์น˜ B ์ƒ์„ฑ
  3. ์••์ถ• ์—ฐ์‚ฐ์ž์— ์˜ํ•ด ์••์ถ•
    1. ํ•ฉ์‚ฐ ์••์ถ•(Sum Compression, SC) : ๊ฐ ๊ทธ๋ฃน์˜ ์นด์šดํ„ฐ๋“ค์„ ํ•ฉ์‚ฐ. $B_{i}[j] = \sum_{k=1}^{z}{A_{i}^{k}[j]}$

      ๋™์ผํ•œ ์ •ํ™•๋„๋ฅผ ๊ฐ–์ง€๋งŒ, ํฐ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋ก๋œ ์ •๋ณด๋ฅผ ์ถฉ๋ถ„ํžˆ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•จ

    2. ์ตœ๋Œ€ ์••์ถ•(Maximum Compression, MC) : ๊ฐ ๊ทธ๋ฃน์˜ ์นด์šดํ„ฐ๋“ค ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ์••์ถ•. $B$${i}[j] = \max{A{i}^{1}[j], A_{i}^{2}[j], โ€ฆ, A_{i}^{z}[j]}$

      • ์›๋ณธ์˜ ์ •๋ณด๋ฅผ ๋” ๋งŽ์ด ํ™œ์šฉํ•˜์—ฌ ๋” ๋‚˜์€ ์ •ํ™•๋„๋ฅผ ๊ฐ–์ถค. ํ•ฉ์‚ฐ ์••์ถ• ํ›„์—๋Š” CM ์Šค์ผ€์น˜์˜ ์˜ค์ฐจ ๋ฒ”์œ„๊ฐ€ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ฐ˜๋ฉด, ์ตœ๋Œ€ ์••์ถ• ํ›„์—๋Š” ์˜ค์ฐจ ๋ฒ”์œ„๊ฐ€ ๋” ์ด˜์ด˜ํ•ด์ง
      • MC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ณผ๋Œ€ ์ถ”์ • ์˜ค์ฐจ๋Š” ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๊ณผ์†Œ ์ถ”์ • ์˜ค์ฐจ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Œ
      • ์••์ถ• ์†๋„๊ฐ€ ๋น ๋ฅด๋ฉฐ, ์••์ถ• ํ•ด์ œ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ

์••์ถ• ์Šค์ผ€์น˜ ์กฐํšŒ : ํ•ด์‹œ ํ•จ์ˆ˜ $h_{i}(.) \% w$๋ฅผ $h_{i}(.) \% w \% wโ€™$๋กœ ๋ณ€๊ฒฝ

  • ์ž„์˜์˜ ์ •์ˆ˜ i์™€ ๋‘ ์ •์ˆ˜ w, wโ€™๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, w๊ฐ€ wโ€™๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด (i % w) % wโ€™ = i % wโ€™๊ฐ€ ์„ฑ๋ฆฝ

์Šค์ผ€์น˜ ๋ณ‘ํ•ฉ

image.png

๊ฐ๊ฐ ์„œ๋ฒ„๋Š” ์ธก์ • ๋…ธ๋“œ๋“ค๋กœ๋ถ€ํ„ฐ ๋งŽ์€ ์Šค์ผ€์น˜๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์ด๋ฅผ ๋ณ‘ํ•ฉํ•œ ํ›„ ์ˆ˜์ง‘๊ธฐ๋กœ ์ „์†ก. ๋ชจ๋“  ์Šค์ผ€์น˜์— ๋Œ€ํ•ด ๋™์ผํ•œ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ.

  • ๋ณ‘ํ•ฉ ๋ฐฉ๋ฒ•
    1. ํ•ฉ์‚ฐ ๋ณ‘ํ•ฉ (Sum merging) : ๋™์ผํ•œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๋‘ CM ์Šค์ผ€์น˜๋ฅผ ๋Œ€์‘ํ•˜๋Š” ๋ชจ๋“  ์นด์šดํ„ฐ ์Œ์„ ๋”ํ•˜์—ฌ ๋‘ ์Šค์ผ€์น˜๋ฅผ ํ•ฉ์นจ. ๋น ๋ฅด์ง€๋งŒ ์ •ํ™•ํ•˜์ง€ ์•Š์Œ
    2. ์ตœ๋Œ€ ๋ณ‘ํ•ฉ(Maximum Merging, MM) : ๋‘ ์Šค์ผ€์น˜์— ๋Œ€์‘ํ•˜๋Š” ๋ชจ๋“  ์นด์šดํ„ฐ ์Œ ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ํ†ตํ•ด ์ƒˆ๋กœ์šด ์Šค์ผ€์น˜ ์ƒ์„ฑ. ๊ณผ์†Œ ์ถ”์ • ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์„œ๋กœ ๋‹ค๋ฅธ ๋„ˆ๋น„๋ฅผ ๊ฐ€์ง„ ๋‘ ์Šค์ผ€์น˜๋ฅผ ๋ณ‘ํ•ฉํ•  ์ˆ˜ ์žˆ์Œ.

      image.png

Adaptivity to Packet Rate

ํŒจํ‚ท ์†๋„๊ฐ€ ๋†’์œผ๋ฉด ์ž…๋ ฅ ํ๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ฑ„์›Œ์ ธ ๋ชจ๋“  ํŒจํ‚ท์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ์–ด๋ ค์›€.

๊ธฐ์กด ์—ฐ๊ตฌ

SketchVisor : fast path๋ผ๋Š” ์ „์šฉ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉ. ๋ถ„ํ•  ์ƒํ™˜ O(1) ์—…๋ฐ์ดํŠธ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ตœ์•…์˜ ๊ฒฝ์šฐ์—๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•จ โ†’ ์ƒ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์„ ์œ ๋ฐœํ•˜๊ณ  ์„ฑ๋Šฅ์„ ์ €ํ•ด

๋™์ž‘ ํ๋ฆ„

  1. ์ž…๋ ฅ ํ์˜ ํŒจํ‚ท ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ ์ •์˜๋œ ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ์ปค์ง€๋ฉด, ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท์ด heavy part์—๋งŒ ์ ‘๊ทผํ•˜๋„๋ก ํ•˜์—ฌ ์—˜๋ฆฌํŽ€ํŠธ ํ”Œ๋กœ์šฐ์˜ ์ •๋ณด๋งŒ ๊ธฐ๋กํ•˜๊ณ  ๋งˆ์šฐ์Šค ํ”Œ๋กœ์šฐ๋Š” ํ๊ธฐ
    • light part๋ฅผ ํ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—…๋ฐ์ดํŠธ๋ฅผ ์•ˆํ•˜๋Š” ๊ฒƒ.
    • light part์— ๊ธฐ๋ก๋˜์–ด์•ผ ํ•  ์ •๋ณด๋งŒ ์†์‹ค
  2. ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ Heavy part ์‚ฝ์ž… ๊ณผ์ •๊ณผ ๊ฐ™์Œ
  3. ๋ฒ„ํ‚ท์— ์žˆ๋Š” ํ”Œ๋กœ์šฐ $f$๊ฐ€ ๋‹ค๋ฅธ ํ”Œ๋กœ์šฐ $fโ€™$๋กœ ๊ต์ฒด๋  ๋•Œ, $fโ€™$์˜ ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๋Š” $f$์˜ ํฌ๊ธฐ๋กœ ์„ค์ •
    • ๊ธฐ์กด ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ์ง€์šฐ๊ณ  ์ƒˆ ID๋ฅผ ์“ฐ๊ณ  ๊ฐ’์„ 1๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๋Ÿฌ ์—ฐ์‚ฐ์ด ํ•„์š”ํ•˜์ง€๋งŒ ์นด์šดํŠธ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ฎ์–ด ์”Œ์›Œ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ๊ณผ ์—ฐ์‚ฐ์„ ์ตœ์†Œํ™”

๊ฐ ์‚ฝ์ž… ์ž‘์—…์€ ํ—ค๋น„ ํŒŒํŠธ ๋‚ด ๋ฒ„ํ‚ท์— ๋Œ€ํ•œ ๋‹จ ํ•œ ๋ฒˆ์˜ probe(๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ)๋งŒ์„ ํ•„์š”. ์ •ํ™•๋„๊ฐ€ ์ €ํ•˜๋˜๋Š” ๋Œ€์‹  ๋†’์€ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋‹ฌ์„ฑ.

ํŒจํ‚ท ์†๋„๊ฐ€ ๋‚ด๋ ค๊ฐ€๋ฉด ๋‹ค์‹œ ์ด์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉ.

Adaptivity to Flow Size Distribution

ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ๋Š” ๋™์ ์ด๋ฏ€๋กœ Heavy part์˜ ํฌ๊ธฐ๋„ ๋™์ ์œผ๋กœ ๊ฒฐ์ •

๋™์ž‘ ํ๋ฆ„

image.png

  1. Heavy part์— ์ž‘์€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ์ž„๊ณ„๊ฐ’ $T_{1}$์„ ์ •์˜
  2. ํŠน์ • ๋ฒ„ํ‚ท ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํ”Œ๋กœ์šฐ์˜ ํฌ๊ธฐ๊ฐ€ $T_{2}$๋ณด๋‹ค ํฌ๋ฉด ๊ฐ€๋“ ์ฐธ์œผ๋กœ ๊ฐ„์ฃผ
  3. ๊ฐ€๋“ ์ฐฌ ๋ฒ„ํ‚ท์˜ ์ˆ˜๊ฐ€ ์ž„๊ณ„๊ฐ’ $T_{1}$์„ ์ดˆ๊ณผํ•˜๋ฉด Heavy part๊ฐ€ ๊ฐ€๋“ ์ฐฌ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ
  4. Heavy part๋ฅผ ๋ณต์‚ฌํ•˜๊ณ  ์›๋ณธ๊ณผ ๊ฒฐํ•ฉ
  5. ํ•ด์‹œ ํ•จ์ˆ˜๋Š” $h(.)\%w$์—์„œ $h(.)\%(2w)$๋กœ ๋ณ€๊ฒฝ
  6. ๋ณต์‚ฌ ์ž‘์—… ํ›„ ๋ฒ„ํ‚ท ๋‚ด ํ”Œ๋กœ์šฐ์˜ ์ ˆ๋ฐ˜์„ ์ ์ง„์ ์œผ๋กœ ์ œ๊ฑฐ.
    1. ์ƒˆ๋กœ์šด ํŒจํ‚ท ์‚ฝ์ž… ์‹œ ํ•ด๋‹น ๋ฒ„ํ‚ท์˜ ํ”Œ๋กœ์šฐ๋ฅผ ํ™•์ธํ•˜์—ฌ ๋‹ค๋ฅธ ์นธ์— ์žˆ์–ด์•ผ ํ•  ํ”Œ๋กœ์šฐ์ด๋ฉด ์ œ๊ฑฐ
    2. ์ œ๊ฑฐ๊ฐ€ ์•ˆ๋˜๋”๋ผ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ

์˜ค๋ฒ„ ํ—ค๋“œ

  • ๋ณต์‚ฌ ๋น„์šฉ : Heavy part๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์‚ฌํ•˜๋Š” ์‹œ๊ฐ„์€ ๋ฌด์‹œํ•  ์ •๋„
  • ์••์ถ• : ์ตœ๋Œ€ ์••์ถ•๊ณผ ์œ ์‚ฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์••์ถ•. ์นด์šดํ„ฐ๊ฐ€ ์•„๋‹Œ ($key, vote^{+}, flag, vote^{-}$)์„ ๋ณ‘ํ•ฉ. ๋‘ ํ‚ค์— ๋Œ€ํ•ด ๋นˆ๋„๋ฅผ ์กฐํšŒํ•˜์—ฌ ๋” ํฐ ๊ฒƒ์„ ์œ ์ง€ํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Light part๋กœ evict

Optimization

Light part

d=1 CM ์Šค์ผ€์น˜ ์‚ฌ์šฉ : ์ •ํ™•๋„๋ณด๋‹ค ๊ตฌํ˜„ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์†๋„๋ฅผ ์ค‘์‹œํ•˜๋ฉฐ, ์ถฉ๋ถ„ํžˆ ์ •ํ™•ํ•จ

Hardware Version of Elastic Sketches

image.png

์—˜๋ฆฌํŽ€ํŠธ ์ถฉ๋Œ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉ. Heavy part์™€ ๋™์ผํ•˜์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ. ๊ฐ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์ด ๋™์ผํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์— ์ ํ•ฉ

๋™์ž‘ ํ๋ฆ„

  1. $f_{8}$์„ ์‚ฝ์ž…ํ•  ๋•Œ, ์ฒซ ๋ฒˆ์งธ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์—์„œ $vote^{-}$๊ฐ€ 1 ์ฆ๊ฐ€ํ•˜๊ณ , $f_{8}$์€ ๋‹ค์Œ ์„œ๋ธŒ ํ…Œ์ด๋ธ”๋กœ ์‚ฝ์ž…
  2. ์ฒซ ๋ฒˆ์งธ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์— $f_{9}$๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ, ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๊ฐ€ 7์ธ $f_{4}$๊ฐ€ ๋ฐฉ์ถœ๋˜์–ด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์‚ฝ์ž…. ๋‘ ๋ฒˆ์งธ ์„œ๋ธŒ ํ…Œ์ด๋ธ”์—์„œ $f_{4}$๋Š” ์ด๋ฏธ $f_{4}$๊ฐ€ ์žˆ๋Š” ๋ฒ„ํ‚ท์— ๋งคํ•‘. ๊ฐ’์„ 2์—์„œ 9๋กœ ์ฆ๊ฐ€
  3. ํ”Œ๋กœ์šฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ๋Š” ์—ฌ๋Ÿฌ Heavy part์˜ ๋ชจ๋“  ๊ฐ’์„ ๋”ํ•จ

Software Version of Elastic Sketches

image.png

์—˜๋ฆฌํŽ€ํŠธ ์ถฉ๋Œ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ฐ ๋ฒ„ํ‚ท์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”Œ๋กœ์šฐ ์ €์žฅ. ๋ฒ„ํ‚ท ํฌ๊ธฐ๊ฐ€ Word ๋‹จ์œ„๋ณด๋‹ค ์ปค์งˆ ์ˆ˜ ์žˆ์–ด์„œ, Heavy packet์— ์ ‘๊ทผํ•˜๋Š” ๊ณผ์ •์ด ๋ณ‘๋ชฉ ์ง€์ 

CPU ํ”Œ๋žซํผ์—์„œ SIMD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์†ํ™”ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์— ์ ํ•ฉ

๋™์ž‘ ํ๋ฆ„

  1. ๊ฐ ๋ฒ„ํ‚ท์˜ ๋ชจ๋“  ํ”Œ๋กœ์šฐ๊ฐ€ ํ•˜๋‚˜์˜ $vote^{-}$ ํ•„๋“œ๋ฅผ ๊ณต์œ 
  2. ํ”Œ๋กœ์šฐ $f_{8}$์ธ ํŒจํ‚ท์ด ๋“ค์–ด์™”์„ ๋•Œ, $vote^{-}$$๋ฅผ ์ฆ๊ฐ€. $11 \le 11 * \lambda = 11 * 8$์ด๋ฏ€๋กœ, $f_{8}$์„ Light part์•  ์‚ฝ์ž…
  3. ํ”Œ๋กœ์šฐ $f_{9}$์ธ ํŒจํ‚ท์ด ๋“ค์–ด์™”์„ ๋•Œ, $vote^{-}$$๋ฅผ ์ฆ๊ฐ€. $56 \ge 7 * \lambda = 7 * 8$์ด๋ฏ€๋กœ, ํ”Œ๋กœ์šฐ ํฌ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ $f_{4}$์„ evict

Application

ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ์ถ”์ •

ํ”Œ๋ž˜๊ทธ๊ฐ€ false์ธ ํ”Œ๋กœ์šฐ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์ถ”์ • ์˜ค์ฐจ๊ฐ€ ์—†์Œ. ์‹คํ—˜ ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅด๋ฉด, 250๋งŒ ๊ฐœ์˜ ํŒจํ‚ท์— ๋Œ€ํ•ด 600KB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํ—ค๋น„ ํŒŒํŠธ(heavy part)์— ์žˆ๋Š” ํ”Œ๋กœ์šฐ์˜ 56.6% ์ด์ƒ์ด ์˜ค์ฐจ๊ฐ€ ์—†์Œ

Heavy Hitter ํƒ์ง€

Heavy part์— ํ”Œ๋กœ์šฐ ID๋ฅผ ์ง์ ‘ ๊ธฐ๋กํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋†’์€ ์ •ํ™•๋„๋กœ Heavy Heater ํƒ์ง€. Light part์—์„œ ๊ต์ฒด๋œ ์•„์ฃผ ์ ์€ ๋ถ€๋ถ„์˜ ํ”Œ๋กœ์šฐ๋“ค๋งŒ์ด ์˜ค์ฐจ๋ฅผ ๊ฐ€์ง

Heavy Change ํƒ์ง€

๊ฐ ์‹œ๊ฐ„ ์ฐฝ์—์„œ ํฌ๊ธฐ๊ฐ€ ์ž„๊ณ„๊ฐ’ ์ด์ƒ์ธ ๋ชจ๋“  ํ”Œ๋กœ์šฐ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํƒ์ง€. ๋‘ ์‹œ๊ฐ„์ฐฝ์˜ Heavy part๋ฅผ ์กฐํšŒํ•œ ํ›„ ํฌ๊ธฐ ์ฐจ์ด๊ฐ€ ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ํƒ์ง€

ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ, ์—”ํŠธ๋กœํ”ผ, ์นด๋””๋„๋ฆฌํ‹ฐ ์ถ”์ •

  1. ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ ์ถ”์ • : MRAC ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ Light part์˜ ๋ถ„ํฌ๋ฅผ ์ถ”์ •ํ•œ ํ›„, Heavy part์˜ ๋ถ„ํฌ์™€ ํ•ฉ์‚ฐ
  2. ์—”ํŠธ๋กœํ”ผ ์ถ”์ • : ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ๋ถ„ํฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ $-\sum(i * \frac{n_{i}}{m} \log \frac{n_{i}}{m})$ ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ.
  3. ์นด๋””๋„๋ฆฌํ‹ฐ ์ถ”์ • : Heavy part์— ์žˆ๋Š” ๊ณ ์œ  ํ”Œ๋กœ์šฐ ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ณ  Linear counting ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ Light part์— ์žˆ๋Š” ๊ณ ์œ ํ•œ ํ”Œ๋กœ์šฐ์˜ ๊ฐœ์ˆ˜์™€ ํ•ฉ์‚ฐ

Implementation

Hardware Version Implementations

P4

  • data plane์˜ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Heavy part์™€ Light part ๊ตฌํ˜„
  • Stateful ALU๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ ˆ์ง€์Šคํ„ฐ ๋ฐฐ์—ด์˜ ํ•ญ๋ชฉ์„ ์กฐํšŒํ•˜๊ณ  ์—…๋ฐ์ดํŠธ
  • Stateful ALU ๋ฆฌ์†Œ์Šค ์ œํ•œ
    • 3๊ฐœ์˜ ํ•„๋“œ($vote_{all}, key, vote^{+}$)๋งŒ ์‚ฌ์šฉ
    • $\frac{vote_{all}}{vote^{+}} \ge \lambdaโ€™$์ธ ๊ฒฝ์šฐ์— eviction. $\lambdaโ€™ = 32$๋ฅผ ๊ถŒ์žฅ
    • ํ•œ ํ”Œ๋กœ์šฐ($f, vote^{+}$)๊ฐ€ ๋‹ค๋ฅธ ํ”Œ๋กœ์šฐ$(f_{1}, vote^{+}{1}$)์— ์˜ํ•ด ๋ฐฉ์ถœ๋  ๋•Œ, ๋ฒ„ํ‚ท์„ ($f{1}, vote^{+} + vote^{+}_{1}$)๋กœ ์„ค์ •

์Šค์œ„์น˜ ASIC์˜ ์ „์ฒด ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ 6% ๋ฏธ๋งŒ์œผ๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ Line-rate ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ์„ ์ž…์ฆ

FPGA

Altera Stratix V ๋ชจ๋ธ์— ๊ตฌํ˜„๋˜์—ˆ์œผ๋ฉฐ, ์˜จ์นฉ RAM์˜ 4%์™€ ์ „์ฒด ํ•€์˜ 4%๋งŒ์„ ์‚ฌ์šฉํ•˜์—ฌ 162.6 Mpps์˜ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋‹ฌ์„ฑ

GPU

NVIDIA GTX 1080์—์„œ CUDA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ–ˆ์œผ๋ฉฐ, ๋ฐฐ์น˜ ์ฒ˜๋ฆฌ(Batch processing)์™€ ๋ฉ€ํ‹ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๊ธฐ์ˆ ๋กœ ์‚ฝ์ž… ์†๋„๋ฅผ ๊ฐ€์†ํ™”

Software Version Implementations

CPU ๋ฐ ๋ฉ€ํ‹ฐ์ฝ”์–ด

  • ํ•œ ๋ฒ„ํ‚ท์— ์—ฌ๋Ÿฌ ํ”Œ๋กœ์šฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „์„ ์ ์šฉ
  • CPU์˜ SIMD ๋ช…๋ น์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํฐ ๋ฒ„ํ‚ท ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐ

OVS (Open vSwitch)

๊ฐ€์ƒ ์Šค์œ„์น˜ ํ™˜๊ฒฝ์— ํ†ตํ•ฉ๋˜์—ˆ์œผ๋ฉฐ, 8๊ฐœ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ OVS ์ „์ฒด ์ฒ˜๋ฆฌ๋Ÿ‰์— ๊ฑฐ์˜ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๊ณ ์„ฑ๋Šฅ

Experimental results

  • Setup
    • Trace : CAIDA์—์„œ ์ˆ˜์ง‘ํ•œ Equinix-Chicago ๋ชจ๋‹ˆํ„ฐ์˜ 1์‹œ๊ฐ„์งœ๋ฆฌ ๊ณต๊ณต ํŠธ๋ž˜ํ”ฝ ํŠธ๋ ˆ์ด์Šค 4๊ฐœ๋ฅผ ์‚ฌ์šฉ.
    • ์ง€ํ‘œ : ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ์ถ”์ •์—๋Š” ARE(ํ‰๊ท  ์ƒ๋Œ€ ์˜ค์ฐจ), Heavy Heater ๋ฐ Change ํƒ์ง€์—๋Š” F1 ์Šค์ฝ”์–ด, ๊ทธ๋ฆฌ๊ณ  ์†๋„ ์ธก์ •์—๋Š” ์ฒ˜๋ฆฌ๋Ÿ‰(Mpps)์„ ์‚ฌ์šฉ

Accuracy

  • ํ”Œ๋กœ์šฐ ํฌ๊ธฐ ์ถ”์ •: 600KB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์—˜๋ผ์Šคํ‹ฑ ์Šค์ผ€์น˜์˜ ARE๋Š” CM, CU, Count ์Šค์ผ€์น˜๋ณด๋‹ค ๊ฐ๊ฐ ์•ฝ 3.8๋ฐฐ, 2.5๋ฐฐ, 7.5๋ฐฐ ๋” ๋‚ฎ์Šต๋‹ˆ๋‹ค.
  • Heavy Heater ํƒ์ง€ : 200KB ๋ฏธ๋งŒ์˜ ๋ฉ”๋ชจ๋ฆฌ์—์„œ๋„ ์—˜๋ผ์Šคํ‹ฑ ์Šค์ผ€์น˜๋Š” 100%์˜ ์ •๋ฐ€๋„์™€ ์žฌํ˜„์œจ์„ ๋‹ฌ์„ฑ
  • Heavy Change ํƒ์ง€ : 99.5% ์ด์ƒ์˜ F1 score ๋‹ฌ์„ฑ. ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์˜ ์ตœ๊ณ  ๊ธฐ๋ก์€ 97%

Memory and Bandwidth Usage

Heavy Change ํƒ์ง€์—์„œ 99%์˜ ์ •๋ฐ€๋„์™€ ์žฌํ˜„์œจ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋‹จ 150KB์˜ ๋Œ€์—ญํญ๋งŒ์„ ์‚ฌ์šฉ

Elasticity

  • ๋Œ€์—ญํญ ์ ์‘์„ฑ : ์ตœ๋Œ€ ์••์ถ• ๋ฐฉ์‹์ด ํ•ฉ์‚ฐ ์••์ถ•๋ณด๋‹ค 1.24๋ฐฐ์—์„œ 2.38๋ฐฐ ๋” ์ •ํ™•
  • ํŒจํ‚ท ์†๋„ ์ ์‘์„ฑ : ํŒจํ‚ท ์†์‹ค ์—†์ด ์•ฝ 50Mpps์˜ ํŒจํ‚ท ์†๋„๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, Light part๊ฐ€ ์—†๋Š” quick mode์—์„œ๋Š” ์•ฝ 70Mpps๊นŒ์ง€ ๊ฐ€๋Šฅ
  • ํŠธ๋ž˜ํ”ฝ ๋ถ„ํฌ ์ ์‘์„ฑ

    image.png

Conclusion & My Opinion

์—˜๋ผ์Šคํ‹ฑ ์Šค์ผ€์น˜๊ฐ€ ํŠธ๋ž˜ํ”ฝ ํŠน์„ฑ์ด ๋ณ€ํ•  ๋•Œ ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ, ์†๋„์™€ ์ •ํ™•๋„ ๋ชจ๋“  ๋ฉด์—์„œ ์ตœ์‹  ๊ธฐ์ˆ ๋“ค์„ ๋Šฅ๊ฐ€ํ•จ

๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ๋Š” ๋ณต์‚ฌ ํ›„ ์ ์ง„์  ์ฒญ์†Œ ๊ณผ์ •๊ณผ ํŒจํ‚ท ์†๋„๊ฐ€ ๋น ๋ฅด๊ฒŒ ์˜ค๋Š” ๊ฒฝ์šฐ๋Š” ์–ด๋–ป๊ฒŒ ํ•  ์ง€โ€ฆ. ์˜ค๋ž˜๊ฑธ๋ฆด ๊ฑฐ ๊ฐ™์€๋ฐโ€ฆ

Categories:

Updated:

Leave a comment