์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜

์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜

์ปค๋ฎค๋‹ˆํ‹ฐ ์—ฌ๋Ÿฌ๋ถ„, ์ด ๊ธ€์—์„œ๋Š” ์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์ค‘์ ์„ ๋‘˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๋ชฉ๋ฐœ ์—†์ด๋„ ํด๋Ÿฌ์Šคํ„ฐ ์ž ๊ธˆ์„ ํฌํ•จํ•˜์—ฌ ์ž ๊ธˆ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” POSIX ํ˜ธํ™˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ตœ์ข… ์†”๋ฃจ์…˜์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ €๋Š” ์ด ๋ชฉ์ ์„ ์œ„ํ•ด ๋‚˜๋งŒ์˜ ์‚ฌ์šฉ์ž ์ •์˜ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์—์„œ ์šฐ๋ฆฌ๋Š” ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋™์‹œ์— ํด๋Ÿฌ์Šคํ„ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋ฌด์ž๋น„ํ•˜๊ฒŒ ์†Œ๋น„ํ•˜๊ณ  ์žˆ๋˜ ๋””์Šคํฌ ๊ณต๊ฐ„๊ณผ RAM์„ ์ ˆ์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ด๋Ÿฌํ•œ ์ˆ˜์˜ ํŒŒ์ผ์€ ํด๋Ÿฌ์Šคํ„ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ํ•ด๋กญ์Šต๋‹ˆ๋‹ค.

์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด, ์ž‘์€ ํŒŒ์ผ์€ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์—…๋กœ๋“œ๋˜๊ณ , ์•„์นด์ด๋ธŒ์— ์ง์ ‘ ์ €์žฅ๋˜๊ธฐ๋„ ํ•˜๊ณ , ์•„์นด์ด๋ธŒ์—์„œ ์ฝ์–ด์˜ค๊ธฐ๋„ ํ•˜๋ฉฐ, ํฐ ํŒŒ์ผ์€ ๋‚˜๋ž€ํžˆ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑํ‘œ: ํด๋” 1๊ฐœ = ์•„์นด์ด๋ธŒ 1๊ฐœ, ์ „์ฒด์ ์œผ๋กœ ์ˆ˜์–ต ๊ฐœ์˜ ํŒŒ์ผ์ด ์•„๋‹Œ ์ž‘์€ ํŒŒ์ผ์ด ํฌํ•จ๋œ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์•„์นด์ด๋ธŒ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋“  ๊ฒƒ์€ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ํŒŒ์ผ์„ tar/zip ์•„์นด์ด๋ธŒ์— ๋„ฃ์ง€ ์•Š๊ณ ๋„ ์™„๋ฒฝํ•˜๊ฒŒ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

์งง๊ฒŒ ์“ฐ๋„๋ก ๋…ธ๋ ฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๋งŒ, ๊ธ€์ด ๊ธธ๋‹ค๋ฉด ๋ฏธ๋ฆฌ ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ๊ฒƒ์€ ๊ธฐ์กด ์•„์นด์ด๋ธŒ์™€ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€์— ๋‚ด์žฌ๋œ ๋‹จ์  ์—†์ด HTTP ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์•„์นด์ด๋ธŒ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ ํ•ฉํ•œ ์„œ๋ฒ„๋ฅผ ์„ธ์ƒ์— ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒ€์ƒ‰์„ ํ•˜๊ฒŒ ๋œ ์ด์œ ๋Š” 10๋Œ€์˜ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ์˜ค๋ฆฌ์ง„ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋Œ€๊ทœ๋ชจ๋กœ ์„ฑ์žฅํ•ด ์ด๋ฏธ 250,000,000์–ต XNUMX์ฒœ๋งŒ ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์ด ์ถ•์ ๋˜์–ด ์„ฑ์žฅ์„ธ๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์‚ฌ๋ฅผ ์ฝ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์•ฝ๊ฐ„์˜ ๋ฌธ์„œ๊ฐ€ ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ะธ ์—ฌ๊ธฐ์—.

๊ทธ๋ฆฌ๊ณ  ๋™์‹œ์— docker์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ๋‚ด๋ถ€์— nginx๋งŒ ํฌํ•จํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

docker run -d --restart=always -e host=localhost -e root=/var/storage 
-v /var/storage:/var/storage --name wzd -p 80:80 eltaline/wzd

๋‹ค์Œ :

ํŒŒ์ผ์ด ๋งŽ์œผ๋ฉด ์ƒ๋‹นํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•˜๊ณ , ๊ทธ์ค‘ ์ผ๋ถ€๊ฐ€ ๋‚ญ๋น„๋˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํด๋Ÿฌ์Šคํ„ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ(์ด ๊ฒฝ์šฐ MooseFS)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์€ ์‹ค์ œ ํฌ๊ธฐ์— ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ตœ์†Œ 64KB๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํฌ๊ธฐ๊ฐ€ 3KB, 10KB ๋˜๋Š” 30KB์ธ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋””์Šคํฌ์— 64KB๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. 2์–ต ๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ 10~1ํ…Œ๋ผ๋ฐ”์ดํŠธ๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค. MooseFS์—๋Š” ๊ฐ ํŒŒ์ผ์˜ ๋ณต์ œ๋ณธ ํ•˜๋‚˜์— XNUMX์–ต ๊ฐœ๋ฅผ ๋„˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ œํ•œ์ด ์žˆ์œผ๋ฏ€๋กœ ์ƒˆ ํŒŒ์ผ์„ ๋ฌดํ•œ์ • ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ• ์ˆ˜๋ก ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์œ„ํ•ด ๋งŽ์€ RAM์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋นˆ๋ฒˆํ•œ ๋Œ€๊ทœ๋ชจ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋คํ”„๋„ SSD ๋“œ๋ผ์ด๋ธŒ์˜ ๋งˆ๋ชจ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

wZD ์„œ๋ฒ„. ์šฐ๋ฆฌ๋Š” ๋””์Šคํฌ์— ๋ฌผ๊ฑด์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„๋Š” Go๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ํŒŒ์ผ ์ˆ˜๋ฅผ ์ค„์—ฌ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”? ๋ณด๊ด€ ๋•Œ๋ฌธ์—, ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ์—๋Š” ์••์ถ•ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‚ด ํŒŒ์ผ์€ ๋‹จ์ง€ ์••์ถ•๋œ ์‚ฌ์ง„์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. BoltDB๊ฐ€ ๊ตฌ์ถœ๋˜์—ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋‹จ์ ์„ ์ œ๊ฑฐํ•ด์•ผ ํ–ˆ์œผ๋ฉฐ ์ด๋Š” ๋ฌธ์„œ์— ๋ฐ˜์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ 10์–ต ๊ฐœ์˜ ํŒŒ์ผ ๋Œ€์‹  ์ œ ๊ฒฝ์šฐ์—๋Š” Bolt ์•„์นด์ด๋ธŒ๊ฐ€ 1์ฒœ๋งŒ ๊ฐœ๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊ฟ€ ๊ธฐํšŒ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ๋Œ€๋žต XNUMX๋งŒ๊ฐœ ์ •๋„์˜ ํŒŒ์ผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

wZD ์„œ๋ฒ„์˜ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ๊ธฐ๋Šฅ.

์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜

์„œ๋ฒ„๋Š” Linux, BSD, Solaris ๋ฐ OSX ์šด์˜ ์ฒด์ œ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Linux์—์„œ๋Š” AMD64 ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด์„œ๋งŒ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ ARM64, PPC64, MIPS64์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•:

  • ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ;
  • ๋‚ด๊ฒฐํ•จ์„ฑ๊ณผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ค‘ ์„œ๋ฒ„
  • ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๋Œ€ ํˆฌ๋ช…์„ฑ
  • ์ง€์›๋˜๋Š” HTTP ๋ฉ”์†Œ๋“œ: GET, HEAD, PUT ๋ฐ DELETE;
  • ํด๋ผ์ด์–ธํŠธ์ธก ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๋™์ž‘์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ๋„๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ์ง€์›
  • ์“ฐ๊ธฐ/์ฝ๊ธฐ ์‹œ CRC ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์†Œํ•œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„์™€ ์ตœ์ ์˜ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ ํŠœ๋‹์„ ์œ„ํ•œ ๋ฐ˜๋™์  ๋ฒ„ํผ
  • ์ง€์—ฐ๋œ ๋ฐ์ดํ„ฐ ์••์ถ•
  • ๋˜ํ•œ ์„œ๋น„์Šค๋ฅผ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ์•„์นด์ด๋ฒ„ wZA๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฝํ—˜:

์ €๋Š” ์˜ค๋žซ๋™์•ˆ ๋ผ์ด๋ธŒ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์„œ๋ฒ„์™€ ์•„์นด์ด๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•ด ์™”์œผ๋ฉฐ ์ด์ œ๋Š” ๋ณ„๋„์˜ SATA ๋“œ๋ผ์ด๋ธŒ์— ์žˆ๋Š” 250,000,000๊ฐœ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” 15,000,000๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ(๊ทธ๋ฆผ)์„ ํฌํ•จํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 10๊ฐœ ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” CDN ๋„คํŠธ์›Œํฌ ๋’ค์— ์„ค์น˜๋œ Origin ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์„œ๋น„์Šคํ•˜๊ธฐ ์œ„ํ•ด Nginx ์„œ๋ฒ„ 2๋Œ€ + wZD ์„œ๋ฒ„ 2๋Œ€๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ์‚ฌ๋žŒ๋“ค์€ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ํ•ด๋‹น๋˜๋Š” ๊ฒฝ์šฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ณ„ํšํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ๋ชจ๋“  ๊ฒƒ์„ 1 Bolt ์•„์นด์ด๋ธŒ์— ๋‹ด์„ ์˜๋„๊ฐ€ ์—†๋‹ค๋Š” ์ ์„ ์ฆ‰์‹œ ์˜ˆ์•ฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์‹œํ—˜:

์••์ถ•๋œ ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„์ˆ˜๋ก GET ๋ฐ PUT ์ž‘์—…์ด ๋” ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. HTTP ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ๋ฐ˜ ํŒŒ์ผ๊ณผ Bolt ์•„์นด์ด๋ธŒ์— ์“ฐ๊ณ  ์ฝ๋Š” ๋ฐ ์†Œ์š”๋˜๋Š” ์ด ์‹œ๊ฐ„์„ ๋น„๊ตํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 32KB, 256KB, 1024KB, 4096KB ๋ฐ 32768KB ํฌ๊ธฐ์˜ ํŒŒ์ผ ์ž‘์—…์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

Bolt ์•„์นด์ด๋ธŒ๋กœ ์ž‘์—…ํ•  ๋•Œ ๊ฐ ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ํ™•์ธ๋ฉ๋‹ˆ๋‹ค(CRC ์‚ฌ์šฉ). ๊ธฐ๋ก ์ „๊ณผ ๊ธฐ๋ก ํ›„์—๋„ ์ฆ‰์‹œ ์ฝ๊ธฐ ๋ฐ ์žฌ๊ณ„์‚ฐ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋‹น์—ฐํžˆ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์ž…๋‹ˆ๋‹ค.

SATA ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๋šœ๋ ทํ•œ ์ฐจ์ด๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— SSD ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ทธ๋ž˜ํ”„:

์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜
์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜

๋ณด์‹œ๋‹ค์‹œํ”ผ ์ž‘์€ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ๋ณด๊ด€๋œ ํŒŒ์ผ๊ณผ ๋ณด๊ด€๋˜์ง€ ์•Š์€ ํŒŒ์ผ ๊ฐ„์˜ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์‹œ๊ฐ„ ์ฐจ์ด๊ฐ€ ์ž‘์Šต๋‹ˆ๋‹ค.

32MB ํฌ๊ธฐ์˜ ํŒŒ์ผ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ฉด ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ทธ๋ฆผ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

์ˆ˜์–ต ๊ฐœ์˜ ์ž‘์€ ํŒŒ์ผ์„ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… ์†”๋ฃจ์…˜

ํŒŒ์ผ ์ฝ๊ธฐ ๊ฐ„์˜ ์‹œ๊ฐ„ ์ฐจ์ด๋Š” 5-25ms ์ด๋‚ด์ž…๋‹ˆ๋‹ค. ๋…น์Œํ•˜๋ฉด ์ƒํ™ฉ์ด ๋” ๋‚˜๋น ์ง€๋ฉฐ ์ฐจ์ด๋Š” ์•ฝ 150ms์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๊ทธ๋ ‡๊ฒŒ ํ•ด๋„ ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†์œผ๋ฉฐ ์•„์นด์ด๋ธŒ์™€ ๋ณ„๋„๋กœ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

*๊ธฐ์ˆ ์ ์œผ๋กœ NoSQL์ด ํ•„์š”ํ•œ ์ž‘์—…์— ์ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wZD ์„œ๋ฒ„ ์ž‘์—…์˜ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•:

์ผ๋ฐ˜ ํŒŒ์ผ ๋กœ๋“œ:

curl -X PUT --data-binary @test.jpg http://localhost/test/test.jpg

Bolt ์•„์นด์ด๋ธŒ์— ํŒŒ์ผ ์—…๋กœ๋“œ(์•„์นด์ด๋ธŒ์— ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์„œ๋ฒ„ ๋งค๊ฐœ๋ณ€์ˆ˜ fmaxsize๊ฐ€ ์ดˆ๊ณผ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ด๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ํŒŒ์ผ์ด ํ‰์†Œ์™€ ๊ฐ™์ด ์•„์นด์ด๋ธŒ ์˜†์— ์—…๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค):

curl -X PUT -H "Archive: 1" --data-binary @test.jpg http://localhost/test/test.jpg

ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ(๋””์Šคํฌ์™€ ์•„์นด์ด๋ธŒ์— ์ด๋ฆ„์ด ๊ฐ™์€ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์šด๋กœ๋“œ ์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•„์นด์ด๋ธŒ๋˜์ง€ ์•Š์€ ํŒŒ์ผ์— ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค):

curl -o test.jpg http://localhost/test/test.jpg

Bolt ์•„์นด์ด๋ธŒ์—์„œ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ(๊ฐ•์ œ):

curl -o test.jpg -H "FromArchive: 1" http://localhost/test/test.jpg

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์„ค๋ช…์„œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

wZD ๋ฌธ์„œ
wZA ๋ฌธ์„œ

์„œ๋ฒ„๋Š” ํ˜„์žฌ HTTP ํ”„๋กœํ† ์ฝœ๋งŒ ์ง€์›ํ•˜๋ฉฐ ์•„์ง HTTPS์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. POST ๋ฉ”์„œ๋“œ๋„ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(ํ•„์š”ํ•œ์ง€ ์—ฌ๋ถ€๋Š” ์•„์ง ๊ฒฐ์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŒŒ๊ณ ๋“œ๋Š” ์‚ฌ๋žŒ์€ ๊ฑฐ๊ธฐ์—์„œ ๋ฒ„ํ„ฐ์Šค์นด์น˜๋ฅผ ๋ฐœ๊ฒฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ธํ„ฐ๋ŸฝํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ฉ”์ธ ์ฝ”๋“œ๋ฅผ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๊ธฐ๋Šฅ์— ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์•ž์œผ๋กœ๋Š” ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋น ๋ฅด๊ฒŒ ๋‹ค์‹œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—”์ง„.

ํ• ์ผ :

  • ํด๋Ÿฌ์Šคํ„ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ ์—†์ด ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ๋ณต์ œ๊ธฐ ๋ฐ ๋ฐฐํฌ์ž + geo ๊ฐœ๋ฐœ(์„ฑ์ธ์„ ์œ„ํ•œ ๋ชจ๋“  ๊ฒƒ)
  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์™„์ „ํžˆ ์†์‹ค๋œ ๊ฒฝ์šฐ ์ „์ฒด ์—ญ๋ณต๊ตฌ ๊ฐ€๋Šฅ(๋ฐฐํฌ์ž๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ)
  • ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•ด ์ง€์†์ ์ธ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋ฐ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ํ”„๋กœํ† ์ฝœ
  • NoSQL ๊ตฌ์„ฑ ์š”์†Œ ์‚ฌ์šฉ์„ ์œ„ํ•œ ๊ณ ๊ธ‰ ๊ฐ€๋Šฅ์„ฑ
  • Bolt ์•„์นด์ด๋ธŒ ๋‚ด๋ถ€์˜ ํŒŒ์ผ์ด๋‚˜ ๊ฐ’ ๋ฐ ์ผ๋ฐ˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์œ ํ˜•(gzip, zstd, snappy)์˜ ์••์ถ•
  • Bolt ์•„์นด์ด๋ธŒ ๋‚ด๋ถ€์˜ ํŒŒ์ผ ๋˜๋Š” ๊ฐ’๊ณผ ์ผ๋ฐ˜ ํŒŒ์ผ์— ๋Œ€ํ•ด ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์•”ํ˜ธํ™”
  • GPU๋ฅผ ํฌํ•จํ•˜์—ฌ ์ง€์—ฐ๋œ ์„œ๋ฒ„ ์ธก ๋น„๋””์˜ค ๋ณ€ํ™˜

๋‚˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋ฒ„๊ฐ€ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์œ ์šฉํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. BSD-3 ๋ผ์ด์„ผ์Šค, ์ด์ค‘ ์ €์ž‘๊ถŒ. ๋‚ด๊ฐ€ ์ผํ•˜๋Š” ํšŒ์‚ฌ๊ฐ€ ์—†์—ˆ๋‹ค๋ฉด ์„œ๋ฒ„๊ฐ€ ์ž‘์„ฑ๋˜์ง€ ์•Š์•˜์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์œ ์ผํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋‚˜ ๊ธฐ๋Šฅ ์š”์ฒญ์„ ๋ฐœ๊ฒฌํ•˜์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€