์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ Yandex์˜ ๊ธฐ์—ฌ๋„๊ฐ€ ๊ฒ€ํ† ๋ฉ๋‹ˆ๋‹ค.

  • ํด๋ฆญ ํ•˜์šฐ์Šค
  • ์˜ค๋””์„ธ์ด
  • ํŠน์ • ์‹œ์ ์œผ๋กœ ๋ณต๊ตฌ(WAL-G)
  • PostgreSQL(logerrors, Amcheck, heapcheck ํฌํ•จ)
  • ๊ทธ๋ฆฐํ”Œ๋Ÿผ

๋น„๋””์˜ค :

์•ˆ๋…•ํ•˜์„ธ์š”! ๋‚ด ์ด๋ฆ„์€ ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ Yandex.Cloud์—์„œ ํ•˜๋Š” ์ผ์€ Yandex.Cloud ๋ฐ Yandex.Cloud ๊ณ ๊ฐ์˜ ์ด์ต์„ ์œ„ํ•ด ๊ฐœ๋ฐฉํ˜• ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์ด ๊ฐ•์—ฐ์—์„œ๋Š” ๊ทœ๋ชจ์— ๋”ฐ๋ฅธ ๊ฐœ๋ฐฉํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ง๋ฉดํ•œ ๊ณผ์ œ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์™œ ์ค‘์š” ํ•จ? ๋ชจ๊ธฐ์ฒ˜๋Ÿผ ๋‚˜์ค‘์— ์ฝ”๋ผ๋ฆฌ๊ฐ€ ๋˜๋Š” ์•„์ฃผ ์ž‘์€ ๋ฌธ์ œ๋“ค ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋งŽ์œผ๋ฉด ํฌ๊ธฐ๊ฐ€ ์ปค์ง‘๋‹ˆ๋‹ค.

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

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ์ž‘์—…์—๋Š” ์–ด๋–ค ์ ‘๊ทผ ๋ฐฉ์‹์ด ์žˆ๋‚˜์š”?

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๊ณ , ํ‘œ์ค€์„ ์‚ฌ์šฉํ•˜๊ณ , ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๊ณ , ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด ์ด๋ฏธ ์ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์ƒํƒœ๊ณ„๋ฅผ ๋” ํฌ๊ฒŒ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์˜ ์‹ ๋ขฐ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ์‹œ์žฅ์—์„œ ๊ฐœ๋ฐœ์ž์˜ ๊ฐ€์šฉ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ์ด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ€์ผ์„ ์™„์„ฑํ•˜๊ณ  ๋ญ”๊ฐ€๋ฅผ ์†๋ดค๋‹ค๋ฉด ๋‹น์‹ ์€ ์ด๋ฏธ ๊ธฐ์—ฌ์ž์ž…๋‹ˆ๋‹ค.
  • ๋˜ ๋‹ค๋ฅธ ์ดํ•ด ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ›„์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž˜ ์•Œ๋ ค์ง„ Google Summer of Code ํ”„๋กœ๊ทธ๋žจ์€ Google์ด ํŠน์ • ๋ผ์ด์„ผ์Šค ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ „ ์„ธ๊ณ„์˜ ๋งŽ์€ ํ•™์ƒ๋“ค์—๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ˆ์„ ์ง€๋ถˆํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.
  • ์ด๋Š” ์ดˆ์ ์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๊ณ ๋„ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ฑฐ๋Œ€ ๊ธฐ์ˆ  ๊ธฐ์—…์ธ Google์€ ์šฐ๋ฆฌ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์›ํ•œ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ๊ณ  ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ํŒŒํ—ค์ณ์•ผ ํ•  ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๊ตฌ๊ธ€์€ โ€œ๋‹น์‹ ์ด ํ•˜๋Š” ์ผ์„ ํ•˜์„ธ์š”. ์ง€๊ธˆ๊นŒ์ง€ ํ•ด์˜ค๋˜ ๋ฐฉ์‹๋Œ€๋กœ ๊ณ„์† ๋…ธ๋ ฅํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.โ€
  • ์˜คํ”ˆ์†Œ์Šค ์ฐธ์—ฌ์— ๋Œ€ํ•œ ๋‹ค์Œ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ฐธ์—ฌ์ž…๋‹ˆ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์œผ๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ท€ํ•˜์˜ ์ธํ”„๋ผ๋ฅผ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค๊ณ , ํ”„๋กœ๊ทธ๋žจ์„ ๋” ๋น ๋ฅด๊ณ  ์•ˆ์ •์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด ๋ถ„์•ผ์—์„œ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ Yandex ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜๋Š” ClickHouse์ž…๋‹ˆ๋‹ค. ์ด๋Š” Yandex.Metrica๊ฐ€ ์ง๋ฉดํ•œ ๊ณผ์ œ์— ๋Œ€ํ•œ ๋Œ€์‘์œผ๋กœ ํƒ„์ƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ์„œ ์ƒํƒœ๊ณ„๋ฅผ ๋งŒ๋“ค๊ณ  (Yandex ๋‚ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ) ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์™€ ํ•จ๊ป˜ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ œ ์ด๊ฒƒ์€ ๋‹ค์–‘ํ•œ ํšŒ์‚ฌ๊ฐ€ ์ฐธ์—ฌํ•˜๋Š” ํฐ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

Yandex.Cloud์—์„œ๋Š” Yandex Object Storage, ์ฆ‰ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์œ„์— ClickHouse๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์–ด๋–ป๊ฒŒ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‚˜์š”? ์ด๊ฒƒ์ด ์ด ๋ณด๊ณ ์„œ์˜ ์ค‘์š”ํ•œ ํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค.

  • MDS๋ฅผ ํ†ตํ•ด ClickHouse๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MDS๋Š” ๋‚ด๋ถ€ Yandex ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€ ์ธํ„ฐํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ S3 ํ”„๋กœํ† ์ฝœ๋ณด๋‹ค ๋” ๋ณต์žกํ•˜์ง€๋งŒ ๋ธ”๋ก ์žฅ์น˜์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๊ฒƒ์ด๊ณ  ์‹ฌ์ง€์–ด ํ›Œ๋ฅญํ•˜๊ณ  ํฅ๋ฏธ๋กœ์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • S3๋Š” ํŠน์ • ์œ ํ˜•์˜ ์›Œํฌ๋กœ๋“œ์— ๋œ ์ ์‘ํ•˜๋Š” ๋น„์šฉ์œผ๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋” ๋‹จ์ˆœํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๋‹น์—ฐํžˆ ์ „์ฒด ClickHouse ์ƒํƒœ๊ณ„์— ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  Yandex.Cloud ๋‚ด๋ถ€์— ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ „์ฒด ClickHouse ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ด๋กœ๋ถ€ํ„ฐ ํ˜œํƒ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” MDS๋ฅผ ํ†ตํ•œ ClickHouse๊ฐ€ ์•„๋‹Œ S3๋ฅผ ํ†ตํ•ด ClickHouse๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋งŽ์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๋งํฌ :

https://github.com/ClickHouse/ClickHouse/pull/7946 "ํŒŒ์ผ ์‹œ์Šคํ…œ ์ถ”์ƒํ™” ๊ณ„์ธต"
https://github.com/ClickHouse/ClickHouse/pull/8011 "AWS SDK S3 ํ†ตํ•ฉ"
https://github.com/ClickHouse/ClickHouse/pull/8649 โ€œS3์šฉ IDisk ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ ๊ตฌํ˜„โ€
https://github.com/ClickHouse/ClickHouse/pull/8356 "IDisk ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋กœ๊ทธ ์ €์žฅ ์—”์ง„ ํ†ตํ•ฉ"
https://github.com/ClickHouse/ClickHouse/pull/8862 "S3 ๋ฐ SeekableReadBuffer์— ๋Œ€ํ•œ ๋กœ๊ทธ ์—”์ง„ ์ง€์›"
https://github.com/ClickHouse/ClickHouse/pull/9128 "์Šคํ† ๋ฆฌ์ง€ ์ŠคํŠธ๋ผ์ดํ”„ ๋กœ๊ทธ S3 ์ง€์›"
https://github.com/ClickHouse/ClickHouse/pull/9415 "S3์— ๋Œ€ํ•œ Storage MergeTree ์ดˆ๊ธฐ ์ง€์›"
https://github.com/ClickHouse/ClickHouse/pull/9646 "MergeTree๋Š” S3๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค"
https://github.com/ClickHouse/ClickHouse/pull/10126 "S3๋ฅผ ํ†ตํ•œ ReplicatedMergeTree ์ง€์›"
https://github.com/ClickHouse/ClickHouse/pull/11134 โ€œs3 ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ž๊ฒฉ ์ฆ๋ช… ๋ฐ ์‚ฌ์šฉ์ž ์ง€์ • ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”โ€
https://github.com/ClickHouse/ClickHouse/pull/10576 "๋™์  ํ”„๋ก์‹œ ๊ตฌ์„ฑ์„ ๊ฐ–์ถ˜ S3"
https://github.com/ClickHouse/ClickHouse/pull/10744 "ํ”„๋ก์‹œ ๋ฆฌ์กธ๋ฒ„๊ฐ€ ์žˆ๋Š” S3"

ํด๋ฆญํ•˜์šฐ์Šค์—์„œ ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŽ์€ ์ˆ˜์˜ ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๋งํฌ :

https://github.com/ClickHouse/ClickHouse/pull/9760 "DiskS3 ํ•˜๋“œ๋งํฌ ์ตœ์  ๊ตฌํ˜„"
https://github.com/ClickHouse/ClickHouse/pull/11522 "S3 HTTP ํด๋ผ์ด์–ธํŠธ - ์‘๋‹ต ์ŠคํŠธ๋ฆผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณต์‚ฌํ•˜์ง€ ๋งˆ์„ธ์š”"
https://github.com/ClickHouse/ClickHouse/pull/11561 โ€œS3 HTTP์—์„œ ์ „์ฒด ์‘๋‹ต ์ŠคํŠธ๋ฆผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณต์‚ฌํ•˜์ง€ ๋งˆ์„ธ์š”.
๊ณ ๊ฐ"
https://github.com/ClickHouse/ClickHouse/pull/13076 โ€œS3 ๋””์Šคํฌ์— ๋Œ€ํ•œ ๋งˆํฌ ๋ฐ ์ธ๋ฑ์Šค ํŒŒ์ผ์„ ์บ์‹œํ•˜๋Š” ๊ธฐ๋Šฅโ€
https://github.com/ClickHouse/ClickHouse/pull/13459 "DiskLocal์—์„œ DiskS3์œผ๋กœ ๋ถ€ํ’ˆ์„ ๋ณ‘๋ ฌ๋กœ ์ด๋™"

๊ทธ๋Ÿฌ๋‚˜ ์ผ์€ ์—ฌ๊ธฐ์„œ ๋๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ด ๋งŒ๋“ค์–ด์ง„ ํ›„ ์ด ๊ธฐ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ์ž‘์—…์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๋งํฌ :

https://github.com/ClickHouse/ClickHouse/pull/12638 "SelectedRows ๋ฐ SelectedBytes ์ด๋ฒคํŠธ ์ถ”๊ฐ€"
https://github.com/ClickHouse/ClickHouse/pull/12464 "S3 ์š”์ฒญ์˜ ํ”„๋กœํŒŒ์ผ๋ง ์ด๋ฒคํŠธ๋ฅผ system.events์— ์ถ”๊ฐ€"
https://github.com/ClickHouse/ClickHouse/pull/13028 "QueryTimeMicroseconds, SelectQueryTimeMicroseconds ๋ฐ InsertQueryTimeMicroseconds ์ถ”๊ฐ€"

๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์ง„๋‹จํ•˜๊ณ , ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์„ค์ •ํ•˜๊ณ , ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ๋ชจ๋“  ์ž‘์—…์€ ์ „์ฒด ์ปค๋ฎค๋‹ˆํ‹ฐ, ์ „์ฒด ClickHouse ์ƒํƒœ๊ณ„๊ฐ€ ์ด ์ž‘์—…์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๊ฐœ์ธ์ ์œผ๋กœ ๋” ๊ฐ€๊นŒ์šด ํŠธ๋žœ์žญ์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, OLTP ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋„˜์–ด๊ฐ€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์˜คํ”ˆ์†Œ์Šค DBMS ๊ฐœ๋ฐœ ๋ถ€์„œ์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ๋žŒ๋“ค์€ ํŠธ๋žœ์žญ์…˜ ๊ฐœ๋ฐฉํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ๋ฆฌ ๋งˆ์ˆ ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ž‘์—…์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜๋Š” Postgres์˜ ์—ฐ๊ฒฐ ํ’€๋Ÿฌ์ž…๋‹ˆ๋‹ค.

Postgres๋Š” ํ”„๋กœ์„ธ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ๊ฐ€๋Šฅํ•œ ํ•œ ์ ์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์— ์ˆ˜์ฒœ ๊ฐœ์˜ ์—ฐ๊ฒฐ์ด ๋™์‹œ์— ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฐ๊ฒฐ ํ’€๋Ÿฌ์˜ ์ž„๋ฌด๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ ์—ฐ๊ฒฐ์„ ์†Œ์ˆ˜์˜ ์„œ๋ฒ„ ์—ฐ๊ฒฐ๋กœ ๋ฌถ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์—ฐ๊ฒฐ ํ’€๋Ÿฌ๋Š” ๋ฐ”์ดํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํšจ์œจ์ ์œผ๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ”์ดํŠธ๋ฅผ ์žฌ๋ฐฐ์—ดํ•˜๋Š” ์ „ํ™” ๊ตํ™˜์›์ด๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํ•˜๊ฒŒ๋„ ์—ฐ๊ฒฐ ํ’€๋Ÿฌ์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋Ÿฌ์‹œ์•„์–ด ๋‹จ์–ด๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ ์—ฐ๊ฒฐ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ํ’€๋Ÿฌ๋ฅผ ๋ฌด์—‡์ด๋ผ๊ณ  ๋ถ€๋ฅผ์ง€ ์•Œ๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด ๊ผญ ๋ง์”€ํ•ด ์ฃผ์‹ญ์‹œ์˜ค. ์ œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋Ÿฌ์‹œ์•„์–ด ๊ธฐ์ˆ  ์–ธ์–ด๋ฅผ ๊ธฐ๊บผ์ด ๊ตฌ์‚ฌํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://pgconf.ru/2017/92899

๊ด€๋ฆฌํ˜• Postgres ํด๋Ÿฌ์Šคํ„ฐ์— ์ ํ•ฉํ•œ ์—ฐ๊ฒฐ ํ’€๋Ÿฌ๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  PgBouncer๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์ตœ๊ณ ์˜ ์„ ํƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ PgBouncer์—์„œ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋…„ ์ „ Volodya Borodin์€ ์šฐ๋ฆฌ๊ฐ€ PgBouncer๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์„ ์ข‹์•„ํ•˜์ง€๋งŒ ๋‰˜์•™์Šค๊ฐ€ ์žˆ๊ณ  ์ž‘์—…ํ•  ๊ฒƒ์ด ์žˆ๋‹ค๋Š” ๋ณด๊ณ ์„œ๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://pgconf.ru/media/2017/04/03/20170316H1_V.Borodin.pdf

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  Bouncer๋ฅผ ํŒจ์น˜ํ•˜๊ณ  ํ’€ ์š”์ฒญ ์—…์ŠคํŠธ๋ฆผ์„ ํ‘ธ์‹œํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ์ ์ธ ๋‹จ์ผ ์Šค๋ ˆ๋”ฉ์€ ์ž‘์—…ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์šฐ๋ฆฌ๋Š” Odyssey๋ผ๋Š” ์ž์ฒด ์—ฐ๊ฒฐ ํ’€๋Ÿฌ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ทธ๊ฒƒ์„ ์ผ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.pgcon.org/2019/schedule/events/1312.en.html

2019๋…„ PgCon ์ปจํผ๋Ÿฐ์Šค์—์„œ ์ €๋Š” ์ด ํ’€๋Ÿฌ๋ฅผ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ด์ œ GitHub์—๋Š” 2๊ฐœ ๋ฏธ๋งŒ์˜ ๋ณ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํ”„๋กœ์ ํŠธ๊ฐ€ ์‚ด์•„ ์žˆ๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ์ธ๊ธฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  Yandex.Cloud์—์„œ Postgres ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์•ž๋’ค๋กœ ํ™•์žฅํ•  ๋•Œ ์žฌ๊ตฌ์„ฑ๋˜๋Š” Odyssey๊ฐ€ ๋‚ด์žฅ๋œ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์ด ํ”„๋กœ์ ํŠธ์—์„œ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜์š”? ๊ฒฝ์Ÿ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ํ•ญ์ƒ ๊ณต๊ฒฉ์ ์ธ ๋‹จ๊ณ„์ด๋ฉฐ, ์ถฉ๋ถ„ํžˆ ๋นจ๋ฆฌ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๊ณ  ์šฐ๋ฆฌ์—๊ฒŒ ์ ํ•ฉํ•œ ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ ๋‚ด์— ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•  ๋•Œ ์ด๋Š” ๊ทน๋‹จ์ ์ธ ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ํšจ๊ณผ์ ์ธ ์กฐ์น˜์ž…๋‹ˆ๋‹ค.

PgBouncer๊ฐ€ ๋” ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Red Hat ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•œ pgagroal์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์œ ์‚ฌํ•œ ๋ชฉํ‘œ๋ฅผ ์ถ”๊ตฌํ•˜๊ณ  ์œ ์‚ฌํ•œ ์•„์ด๋””์–ด๋ฅผ ๊ตฌํ˜„ํ•˜์ง€๋งŒ ๋ฌผ๋ก  Pgagroal ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋” ๊ฐ€๊นŒ์šด ๊ณ ์œ ํ•œ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

Postgres ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ˜‘๋ ฅํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์‚ฌ๋ก€๋Š” ํŠน์ • ์‹œ์ ์œผ๋กœ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์žฅ์•  ํ›„ ๋ณต๊ตฌ์ด๊ณ  ๋ฐฑ์—…์—์„œ ๋ณต๊ตฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๋งŽ์€ ๋ฐฑ์—…์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ฑฐ์˜ ๋ชจ๋“  Postgres ๊ณต๊ธ‰์—…์ฒด์—๋Š” ์ž์ฒด ๋ฐฑ์—… ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ฐฑ์—… ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ ๋งคํŠธ๋ฆญ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๋†๋‹ด์œผ๋กœ ์ด ๋งคํŠธ๋ฆญ์Šค์˜ ํ–‰๋ ฌ์‹์„ ๊ณ„์‚ฐํ•˜๋ฉด XNUMX์ด ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฌด์—‡์„ ์˜๋ฏธ ํ•˜๋Š”๊ฐ€? ํŠน์ • ๋ฐฑ์—… ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“  ํŒŒ์ผ์˜ ์กฐ๊ฐ๋“ค๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ตฌํ˜„์ด ๋…ํŠนํ•˜๊ณ , ๋ชฉ์ ์ด ๋…ํŠนํ•˜๋ฉฐ, ๊ทธ ์•ˆ์— ํฌํ•จ๋œ ์•„์ด๋””์–ด๊ฐ€ ๋…ํŠนํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ๋“ค์€ ๋ชจ๋‘ ๊ตฌ์ฒด์ ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.citusdata.com/blog/2017/08/18/introducing-wal-g-faster-restores-for-postgres/

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋™์•ˆ CitusData๋Š” WAL-G ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ์—ผ๋‘์— ๋‘๊ณ  ๋งŒ๋“ค์–ด์ง„ ๋ฐฑ์—… ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด์ œ CitusData๋Š” ์ด๋ฏธ Microsoft์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ทธ ์ˆœ๊ฐ„ ์šฐ๋ฆฌ๋Š” WAL-G์˜ ์ดˆ๊ธฐ ๋ฆด๋ฆฌ์Šค์— ์ œ์‹œ๋œ ์•„์ด๋””์–ด๊ฐ€ ์ •๋ง ๋งˆ์Œ์— ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://github.com/wal-g/wal-g/graphs/contributors

ํ˜„์žฌ ์ด ํ”„๋กœ์ ํŠธ์—๋Š” ์ˆ˜์‹ญ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์ง€๋งŒ WAL-G์˜ ์ƒ์œ„ 10๋ช…์˜ ๊ธฐ์—ฌ์ž์—๋Š” 6๋ช…์˜ Yandexoids๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์— ๋งŽ์€ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•˜๊ณ , ํ”„๋กœ๋•์…˜์— ์ถœ์‹œํ•˜๊ณ , ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ณ , ๋Œ€๊ทœ๋ชจ WAL-G ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋ฉด์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•  ์œ„์น˜๋ฅผ ์Šค์Šค๋กœ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ด์ œ ์šฐ๋ฆฌ์˜ ๋…ธ๋ ฅ์„ ๊ณ ๋ คํ•œ ์ด ๋ฐฑ์—… ์‹œ์Šคํ…œ์€ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์— ์ตœ์ ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํด๋ผ์šฐ๋“œ์—์„œ Postgres๋ฅผ ๋ฐฑ์—…ํ•˜๋Š” ๋ฐ ๋“œ๋Š” ์ตœ๊ณ ์˜ ๋น„์šฉ์ž…๋‹ˆ๋‹ค.

๋ฌด์Šจ ๋œป์ด์—์š”? ์šฐ๋ฆฌ๋Š” ๋ฐฑ์—…์ด ์•ˆ์ „ํ•˜๊ณ , ์šด์˜ ๋น„์šฉ์ด ์ €๋ ดํ•˜๋ฉฐ, ๋ณต์› ์†๋„๊ฐ€ ์ตœ๋Œ€ํ•œ ๋นจ๋ผ์•ผ ํ•œ๋‹ค๋Š” ์ƒ๋‹นํžˆ ํฐ ์•„์ด๋””์–ด๋ฅผ ์ถ”์ง„ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

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

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

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด ๊ฐ„๋‹จํ•œ ์•„์ด๋””์–ด๋ฅผ ํ™๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์ „๋ถ€๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ž‘์€ ๊ฒƒ์„ ํ•˜๋‚˜ ๋” ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณ ๊ฐ์ด Postgres๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์€ MySQL, MongoDB๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด FoundationDB๋ฅผ ์ง€์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋ชฉ๋ก์€ ์ง€์†์ ์œผ๋กœ ํ™•์žฅ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํด๋ผ์šฐ๋“œ์˜ ๊ด€๋ฆฌ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋œ๋‹ค๋Š” ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ๋‹น์‚ฌ์˜ ๋ฐฑ์—… ์‹œ์Šคํ…œ์„ ํ†ตํ•ด Postgres์™€ ํ•จ๊ป˜ ๊ท ์ผํ•˜๊ฒŒ ๋ฐฑ์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์šฐ๋ฆฌ๋Š” ์ด ์ด์•ผ๊ธฐ์—์„œ ๋ฌด์—‡์„ ๋ฐฐ์› ์Šต๋‹ˆ๊นŒ? ๊ฐœ๋ฐœ ๋ถ€์„œ๋กœ์„œ ์šฐ๋ฆฌ ์ œํ’ˆ์€ ์ฝ”๋“œ ๋ผ์ธ๋„, ๋ช…๋ น๋ฌธ๋„, ํŒŒ์ผ๋„ ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ์ œํ’ˆ์€ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ „๋‹ฌํ•˜๋Š” ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ์ˆ ์  ์ „๋ฌธ์„ฑ์ด์ž ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ํ–ฅํ•œ ๊ธฐ์ˆ ์˜ ์›€์ง์ž„์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

Postgres์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Postgres ์ฝ”์–ด๋ฅผ ๊ฐ€์žฅ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ•จ๊ป˜ โ€‹โ€‹Postgres ์ฝ”์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์„œ๋Š” Yandex.Cloud์— ๊ด€๋ฆฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‚ด๋ถ€์— ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ Yandex.Mail์—์„œ ์˜ค๋ž˜ ์ „์— ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Managed Postgres๋กœ ์ด์–ด์ง„ ์ „๋ฌธ์„ฑ์€ ๋ฉ”์ผ์ด Postgres๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์ถ•์ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ Postgres๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํŒ€์—๊ฒŒ ์ƒ๋‹นํžˆ ์‹ฌ๊ฐํ•œ ๋„์ „์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง๋ฉดํ•œ ๋ชจ๋“  ๋ฌธ์ œ๊ฐ€ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋Š” ์ผ๋ถ€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์œ ๋ฃŒ ์ง€์› ์ˆ˜์ค€์—์„œ๋„ ์‹ฌ์ง€์–ด ๋” ๋‚˜์€ ์ˆ˜์ค€์—์„œ๋„ ์ผ๋ถ€ ์žฅ์†Œ์—์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์˜ํ•ด ์ˆ˜์ •๋˜๊ณ  ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, PgSQL ํ•ด์ปค์—๊ฒŒ ํŽธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  40๋ถ„ ์ด๋‚ด์— ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์œ ๋ฃŒ ์ง€์›์—์„œ๋Š” ๋ฒ„๊ทธ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ Postgres์˜ ๋‚ด๋ถ€ ์„ค์น˜์—๋Š” ํŽ˜ํƒ€๋ฐ”์ดํŠธ ๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ดˆ๋‹น ์ˆ˜๋ฐฑ๋งŒ ๊ฑด์˜ ์š”์ฒญ์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ๋Œ€๊ทœ๋ชจ์ž…๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์˜ ํŠน์ • ์ˆœ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ๋ฑ์Šค์˜ ๋‚ด๋ถ€ ๋ถˆ๋ณ€์„ฑ์ด ์œ„๋ฐ˜๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋ถˆ๋ณ€์„ฑ์€ ์šฐ๋ฆฌ๊ฐ€ ํ•ญ์ƒ ์œ ์ง€ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š” ์ผ์ข…์˜ ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์—๊ฒŒ๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์†์‹ค๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์†์‹ค์€ ๊ทธ์•ผ๋ง๋กœ ์žฌ์•™์ž…๋‹ˆ๋‹ค.

๊ด€๋ฆฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์šฐ๋ฆฌ๊ฐ€ ๋”ฐ๋ฅด๋Š” ์ผ๋ฐ˜์ ์ธ ์ƒ๊ฐ์€ ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์—ฌ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ๊ธฐ๋Š” ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ์ œ๊ฑฐํ•˜๋”๋ผ๋„ ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ถ€์žฌ๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ณด์•ˆ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งค์šฐ ์—ด์‹ฌํžˆ ๋”ฐ๋ฅด๋Š” ์ข…๊ต์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋Œ€๋น„ํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ์•”์‹œํ•˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฐ ์ƒํ™ฉ์— ๋Œ€๋น„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://commitfest.postgresql.org/23/2171/

์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ•œ ์ผ์€ ์ˆ˜์ฒœ ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋กœ๊ทธ๋ฅผ ๋ฌป๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํŽ˜์ด์ง€ ์—…๋ฐ์ดํŠธ๊ฐ€ ์†์‹ค๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ํŽŒ์›จ์–ด๊ฐ€ ์žˆ๋Š” ๋””์Šคํฌ์— ์–ด๋–ค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  Postgres ๋ฐ์ดํ„ฐ ์ฝ”๋“œ๋ฅผ ๋งˆํฌ์—…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ ์†์ƒ์„ ๊ฐ์ง€ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ฝ”๋“œ๋กœ ๋‚ด๋ถ€ ๋ถˆ๋ณ€์„ฑ ์œ„๋ฐ˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŒจ์น˜๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ณ„๋‹ค๋ฅธ ๋…ผ์˜ ์—†์ด ์‚ฌ์‹ค์ƒ ์Šน์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ๊ฐ์˜ ํŠน์ • ์‚ฌ๋ก€์—์„œ ๋ญ”๊ฐ€ ๋‚˜์œ ์ผ์ด ๋ฐœ์ƒํ–ˆ๊ณ  ๋กœ๊ทธ์— ๋ณด๊ณ ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ช…๋ฐฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

๊ทธ ํ›„, ๋กœ๊ทธ๋ฅผ ์Šค์บ”ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜์‹ฌ์Šค๋Ÿฌ์šด ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋‹น์ง๋‹ด๋‹น์ž๋ฅผ ๊นจ์šฐ๊ณ , ๋‹น์ง๋‹ด๋‹น์ž๋Š” ์ด๋ฅผ ์ˆ˜๋ฆฌํ•œ๋‹ค.

ํ•˜์ง€๋งŒ! ๋กœ๊ทธ ์Šค์บ”์€ ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ์ €๋ ดํ•œ ์ž‘์—…์ด๊ณ , ์ˆ˜์ฒœ ๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ์—„์ฒญ๋‚œ ๋น„์šฉ์ด ๋“ญ๋‹ˆ๋‹ค.

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

์ด ํ™•์žฅ์€ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ์ €์žฅ์†Œ์— ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CentOS์—. ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹œ๋ฉด ์ง์ ‘ ์„ค์น˜ํ•˜์…”๋„ ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์˜คํ”ˆ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[์ด๋ฉ”์ผ ๋ณดํ˜ธ]

ํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์ „๋ถ€๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ธ๋ฑ์Šค์—์„œ ๋ถˆ๋ณ€ ์œ„๋ฐ˜์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๊ตฌ์ถ•ํ•œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ธ Amcheck๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋Œ€๊ทœ๋ชจ๋กœ ์šด์˜ํ•˜๋‹ค ๋ณด๋ฉด ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค๋„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ๋“ค์„ ๊ณ ์น˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์Šน์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.postgresql.org/message-id/flat/[์ด๋ฉ”์ผ ๋ณดํ˜ธ]

์šฐ๋ฆฌ๋Š” ์ด ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด GiST ๋ฐ GIT ์ธ๋ฑ์Šค๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค์„ ์ง€์›ํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ง€์›์€ ๋น„๊ต์  ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด๊ณ  ์„ธ๋ถ€ ์‚ฌํ•ญ์ด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ์ „ํžˆ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋…ผ์˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://commitfest.postgresql.org/29/2667/

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

์šฐ๋ฆฌ๋Š” ๋ชจ๋“  can... ํ”„๋กœํ† ์ฝœ์„ ๋”ฐ๋ผ์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” Crunchy Data์˜ Peter Gaghan๊ณผ ์ด ํŒจ์น˜์— ๋Œ€ํ•ด ์˜ค๋žซ๋™์•ˆ ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ด ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด Postgres์˜ ๊ธฐ์กด B-ํŠธ๋ฆฌ๋ฅผ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ฐ›์•„ ๋“ค์—ฌ์กŒ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋ณต์ œ๋ณธ์˜ ์ธ๋ฑ์Šค๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ ๋˜ํ•œ ์šฐ๋ฆฌ๊ฐ€ ์ง๋ฉดํ•œ ์œ„๋ฐ˜์„ ๊ฐ์ง€ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํšจ๊ณผ์ ์ด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋””์Šคํฌ ํŽŒ์›จ์–ด ์˜ค๋ฅ˜, Postgres ๋ฒ„๊ทธ, Linux ์ปค๋„ ๋ฒ„๊ทธ, ํ•˜๋“œ์›จ์–ด ๋ฌธ์ œ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์œ„๋ฐ˜ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ค€๋น„ํ•˜๊ณ  ์žˆ๋˜ ๋ฌธ์ œ์˜ ์›์ธ์— ๋Œ€ํ•œ ์ƒ๋‹นํžˆ ๊ด‘๋ฒ”์œ„ํ•œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.postgresql.org/message-id/flat/38AF687F-8F6B-48B4-AB9E-A60CFD6CC261%40enterprisedb.com#0e86a12c01d967bac04a9bf83cd337cb

๊ทธ๋Ÿฌ๋‚˜ ์ธ๋ฑ์Šค ์™ธ์—๋„ ํž™๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„, ์ฆ‰ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์žฅ์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ถˆ๋ณ€๊ฐ’์ด ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ทธ๋ฆฌ๊ณ  ์ด์ œ ์šฐ๋ฆฌ๋Š” ๊ทธ๋“ค์˜ ํ™•์žฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ๋” ์ด์ƒ ๊ทธ๋“ค์˜ ํ™•์žฅ์ด ์•„๋‹ˆ๋ผ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ํ™•์žฅ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Š” ์•ž์œผ๋กœ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฏธ๋ž˜์˜ ๋ฌธ์ œ๋ฅผ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต๋  ์ปค๋„์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.postgresql.org/message-id/flat/fe9b3722df94f7bdb08768f50ee8fe59%40postgrespro.ru

์–ด๋–ค ๊ณณ์—์„œ๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์— ์˜คํƒ์ง€๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ•˜๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1C ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ Postgres๋Š” ๋•Œ๋•Œ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜์ง€๋งŒ pg_dump๋Š” ์ฝ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์ƒํ™ฉ์€ ์šฐ๋ฆฌ์˜ ๋ฌธ์ œ ๊ฐ์ง€ ์‹œ์Šคํ…œ์ด ์†์ƒ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๋‹ด๋‹น๊ด€์ด ๊นจ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹ด๋‹น๊ด€์€ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ์‚ดํŽด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ ํ›„ ๊ณ ๊ฐ์ด ์™€์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์Šน๋ฌด์›์€ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” Postgres ์ฝ”์–ด์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํ† ๋ก ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์ ‘ํ–ˆ๊ณ  ๊ทธ๊ฒƒ์ด ๋ถˆ์พŒํ–ˆ๋‹ค๊ณ  ์ผ์Šต๋‹ˆ๋‹ค. ํ•œ ์‚ฌ๋žŒ์ด ๊ทธ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ๋ฐค์— ์ผ์–ด๋‚ฌ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://www.postgresql.org/message-id/flat/fe9b3722df94f7bdb08768f50ee8fe59%40postgrespro.ru

์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” โ€œ์•„, ์ •๋ง ๊ณ ์ณ์•ผ ํ•œ๋‹คโ€๋Š” ๋ฐ˜์‘์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜์š”? ์šฐ๋ฆฌ๋Š” ๊ฐ„๋‹จํ•œ ๊ฒƒ์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋ฌธ์ œ๋ฅผ ์ธ์‹ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ž์—ฐ์Šค๋Ÿฌ์šด ๊ฒฝ์Ÿ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘๊ฐ€ ์ค‘์š”ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์–ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณต๊ธ‰์—…์ฒด, ๋ชจ๋“  ํ•ด์ปค๋Š” ์ž์‹ ์ด ์ด ๊ฐˆํ€ด๋ฅผ ๋ฐŸ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

ํฅ๋ฏธ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” Greenplum์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ œ๊ฐ€ ๋งค์šฐ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” Postgres ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๊ณ ๋„์˜ ๋ณ‘๋ ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://greenplum.org/greenplum-database-tables-compression/

๊ทธ๋ฆฌ๊ณ  Greenplum์—๋Š” ์ตœ์ ํ™”๋œ ํ…Œ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜๋Š” ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ์—ด ํ˜•์‹์ด๊ฑฐ๋‚˜ ํ–‰ ํ˜•์‹์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ธ๋ฑ์Šค ์ค‘ ํ•˜๋‚˜์— ์žˆ๋Š” ์ˆœ์„œ์— ๋”ฐ๋ผ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

ํƒ์‹œ์—์„œ ์˜จ ์‚ฌ๋žŒ๋“ค์ด ๋‚˜์—๊ฒŒ ์™€์„œ ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. โ€œAndrey, ๋‹น์‹ ์€ Postgres๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ๋Š” ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. 20๋ถ„์œผ๋กœ ์ „ํ™˜ํ•˜์„ธ์š”. ๋‹น์‹ ์€ ๊ทธ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ๊ทธ๊ฒƒ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.โ€ ๋‚˜๋Š” Postgres๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ 20๋ถ„ ๋™์•ˆ ์ „ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://github.com/greenplum-db/gpdb/commit/179feb77a034c2547021d675082aae0911be40f7

ํ•˜์ง€๋งŒ ์•„๋‹ˆ, 20๋ถ„์ด ์•„๋‹ˆ๊ณ  ๋ช‡ ๋‹ฌ์— ๊ฑธ์ณ ์ผ์Šต๋‹ˆ๋‹ค. PgConf.Russia ์ปจํผ๋Ÿฐ์Šค์—์„œ ์ €๋Š” Pivotal์˜ Heikki Linakangas์—๊ฒŒ ์ ‘๊ทผํ•˜์—ฌ ์ด๋ ‡๊ฒŒ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. โ€œ์ด๊ฒƒ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ถ”๊ฐ€ ์ตœ์ ํ™” ํ…Œ์ด๋ธ” ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด ์—†๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?โ€ ๊ทธ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. โ€œ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€์„ธ์š”. ์ •๋ ฌํ•˜๊ณ  ์žฌ๋ฐฐ์—ดํ•˜์„ธ์š”. ๊ทธ๋ƒฅ ์ง์—…์ผ ๋ฟ์ด์•ผ." ๋‚˜: โ€œ์•„, ๋„ค, ๊ทธ๋ƒฅ ๊ฐ€์ ธ๊ฐ€์„œ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.โ€ ๊ทธ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. โ€œ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด ์ผ์„ ํ•˜๋ ค๋ฉด ์†์ด ์ž์œ ๋กœ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.โ€ ์ด๊ฑด ๊ผญ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๋‹ฌ ํ›„ ์ €๋Š” ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ํ’€ ์š”์ฒญ์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ’€ ์š”์ฒญ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ•จ๊ป˜ โ€‹โ€‹Pivotal์—์„œ ๊ฒ€ํ† ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฒ„๊ทธ๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://github.com/greenplum-db/gpdb/issues/10150

๊ทธ๋Ÿฐ๋ฐ ๊ฐ€์žฅ ํฅ๋ฏธ๋กœ์šด ์ ์€ ์ด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ณ‘ํ•ฉํ–ˆ์„ ๋•Œ Greenplum ์ž์ฒด์—์„œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํž™ ํ…Œ์ด๋ธ”์ด ํด๋Ÿฌ์Šคํ„ฐ๋ง๋  ๋•Œ ํŠธ๋žœ์žญ์…˜์ด ์ค‘๋‹จ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋ฐ”๋กœ์žก์•„์•ผ ํ•  ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋…€๋Š” ๋‚ด๊ฐ€ ๋ฐฉ๊ธˆ ๋งŒ์ง„ ๊ณณ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐ˜์‘์€ โ€“ ์•Œ์•˜์–ด, ๋‚˜๋„ ํ•ด๋ณด์ž.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://github.com/greenplum-db/gpdb/pull/10290

์ด ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ์‚ฌ์—๊ฒŒ ํ’€ ์š”์ฒญ์„ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์‚ดํ•ด ๋‹นํ–ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://github.com/greenplum-db/gpdb-postgres-merge/pull/53

๊ทธ ํ›„ ์ด ๊ธฐ๋Šฅ์€ PostgreSQL 12์šฉ Greenplum ๋ฒ„์ „์—์„œ ์–ป์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. ์ฆ‰, 20๋ถ„๊ฐ„์˜ ๋ชจํ—˜์€ ์ƒˆ๋กœ์šด ํฅ๋ฏธ๋กœ์šด ๋ชจํ—˜์œผ๋กœ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ƒˆ๋กญ๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์„ ์‚ญ์ œํ•˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ ๊ฐœ๋ฐœ์„ ์ ‘ํ•˜๋Š” ๊ฒƒ์€ ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์–ผ์—ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

https://github.com/greenplum-db/gpdb/pull/10565

ํ•˜์ง€๋งŒ ๊ฑฐ๊ธฐ์„œ ๋๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฌธ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šด ์ข‹๊ฒŒ๋„ Pivotal์˜ ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ ์ž‘๊ฐ€๋“ค์ด ํ•จ๊ป˜ ์™”์Šต๋‹ˆ๋‹ค. ์˜์–ด๋Š” ๊ทธ๋“ค์˜ ๋ชจ๊ตญ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๋ฌธ์„œ ์ž‘์„ฑ์— ๋„์›€์„ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค, ๊ทธ๋“ค์€ ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ๊ฒƒ์„ ์‹ค์ œ ์˜์–ด๋กœ ๋‹ค์‹œ ์ผ์Šต๋‹ˆ๋‹ค.

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

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์ด ์‚ฌ๊ฑด์—์„œ ์šฐ๋ฆฌ๋Š” ๋ฌด์—‡์„ ๋ฐฐ์› ์Šต๋‹ˆ๊นŒ? ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์€ ํ•ญ์ƒ ํŠน์ • ์‚ฌ๋žŒ๊ณผ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ํ•ญ์ƒ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋งค ๋‹จ๊ณ„๋งˆ๋‹ค ๊ฐœ๋ฐœ์ž, ํ…Œ์Šคํ„ฐ, ํ•ด์ปค, ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ ์ž‘๊ฐ€, ์„ค๊ณ„์ž์™€ ํ•จ๊ป˜ ์ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ €๋Š” Greenplum๊ณผ ํ•จ๊ป˜ ์ผํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ Greenplum ์ฃผ๋ณ€ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ! ๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ์ผ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์™€์„œ ์ปคํ”ผ๋ฅผ ๋งˆ์‹œ๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋‹จ์ˆœ ๋ถˆ๋ณ€์„ฑ์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ‰์†Œ๋Œ€๋กœ ํ•˜์„ธ์š” - ๊ดœ์ฐฎ์„ ๊ฑฐ์˜ˆ์š”! ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๊ฝค ํฅ๋ฏธ๋กœ์šด ์ง์—…์ž…๋‹ˆ๋‹ค. Yandex.Cloud ํด๋ผ์ด์–ธํŠธ, Yandex ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€ ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ด ์ž‘์—…์— ๋Œ€ํ•œ ์š”์ฒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์ฐธ์—ฌํ•˜๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ˆ˜๋„ ๋Š˜์–ด๋‚˜๊ณ  ์ฐธ์—ฌ์˜ ๊นŠ์ด๋„ ์ปค์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒŒ ๋‹ค์•ผ. ์งˆ๋ฌธ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฌด์—‡์„ ์™œ ํ•˜๋Š”์ง€. ์•ˆ๋“œ๋ ˆ์ด ๋ณด๋กœ๋”˜(Yandex.Cloud)

์งˆ๋ฌธ ์„ธ์…˜

์•ˆ๋…•ํ•˜์„ธ์š”! ๋˜ ๋‹ค๋ฅธ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€ ์„ธ์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ŠคํŠœ๋””์˜ค์—์„œ Andrei Borodin. ๋ฐฉ๊ธˆ Yandex.Cloud์™€ Yandex๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค์— ๊ธฐ์—ฌํ•œ ๊ฒƒ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฐ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์šฐ๋ฆฌ ๋ณด๊ณ ์„œ๋Š” ์ „์ ์œผ๋กœ ํด๋ผ์šฐ๋“œ์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ์ง€๋งŒ ๋™์‹œ์— ๊ทธ๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. Yandex ๋‚ด๋ถ€์—์„œ ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์ด ์—†์—ˆ๋‹ค๋ฉด Yandex.Cloud์— ์„œ๋น„์Šค๊ฐ€ ์—†์—ˆ์„ ๊ฒƒ์ด๋ฏ€๋กœ ๊ฐœ์ธ์ ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐฉ์†ก์—์„œ ๋‚˜์˜จ ์ฒซ ๋ฒˆ์งธ ์งˆ๋ฌธ์€ โ€œ๋‹น์‹ ์ด ์–ธ๊ธ‰ํ•œ ๊ฐ ํ”„๋กœ์ ํŠธ์—๋Š” ์–ด๋–ค ๋‚ด์šฉ์ด ์ ํ˜€์žˆ๋‚˜์š”?โ€์˜€์Šต๋‹ˆ๋‹ค.

WAL-G์˜ ๋ฐฑ์—… ์‹œ์Šคํ…œ์€ Go๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ์ž‘์—…ํ•œ ์ตœ์‹  ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๊ฒจ์šฐ 3 ์‚ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ข…์ข… ์‹ ๋ขฐ์„ฑ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ฝค ์˜ค๋ž˜๋˜์—ˆ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ C๋กœ ์ž‘์„ฑ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. Postgres ํ”„๋กœ์ ํŠธ๋Š” ์•ฝ 30๋…„ ์ „์— ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด C89๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์œ„์— Postgres๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ClickHouse์™€ ๊ฐ™์€ ์ตœ์‹  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ C++๋กœ ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์€ C์™€ C++๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

Cloud์—์„œ ๋น„์šฉ์„ ๋‹ด๋‹นํ•˜๋Š” ์žฌ๋ฌด ๊ด€๋ฆฌ์ž์˜ ์งˆ๋ฌธ: "Cloud๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ์ง€์›์— ๋ˆ์„ ์“ฐ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"

์—ฌ๊ธฐ์— ์žฌ๋ฌด ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ๋Œ€๋‹ต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋” ๋‚˜์€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ด๋ ‡๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ๋‚˜์š”? ์šฐ๋ฆฌ๋Š” ์ผ์„ ๋”์šฑ ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ์ผ์˜ ํ™•์žฅ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ์—๊ฒŒ ์žˆ์–ด ์ด ์ด์•ผ๊ธฐ๋Š” ์ฃผ๋กœ ์‹ ๋ขฐ์„ฑ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐฑ์—… ์‹œ์Šคํ…œ์— ์ ์šฉ๋˜๋Š” ํŒจ์น˜๋ฅผ 100% ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒˆ ๋ฒ„์ „์„ ํ”„๋กœ๋•์…˜์— ์ถœ์‹œํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธ์•ˆํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์šฐ์„  ์ž์‹ ๊ฐ, ๊ฐœ๋ฐœ ์ค€๋น„ ์ƒํƒœ ๋ฐ ์‹ ๋ขฐ์„ฑ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์งˆ๋ฌธ: "Yandex.Cloud์— ๊ฑฐ์ฃผํ•˜๋Š” ์™ธ๋ถ€ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋‚ด๋ถ€ ํด๋ผ์šฐ๋“œ์— ๊ฑฐ์ฃผํ•˜๋Š” ๋‚ด๋ถ€ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๋‹ค๋ฆ…๋‹ˆ๊นŒ?"

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

๋‹ค์Œ ์งˆ๋ฌธ: โ€œ๋‹น์‹ ์ด ํ•˜๋Š” ์ผ ์ค‘ ๋งŽ์€ ๋ถ€๋ถ„์ด ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•ด ๊ฐœ์ธ์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹œ๋‚˜์š”?โ€ ๊ตฌ์ฒด์ ์ธ ์ด๋ฆ„์„ ๋ฐํžˆ์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ Yandex.Cloud์—์„œ ์ˆ˜ํ–‰๋œ ๋งŽ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํด๋ผ์šฐ๋“œ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฉ‹์ง€๋‹ค. ์ฒซ์งธ, ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์˜ณ์€ ์ผ์„ ํ–ˆ๋‹ค๋Š” ํ‘œ์‹œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ž์•„๋ฅผ ๊ธ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ์ •์„ ๋‚ด๋ ธ๋‹ค๊ณ  ๋”์šฑ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— ์ด๊ฒƒ์€ ์•ž์œผ๋กœ ์šฐ๋ฆฌ์—๊ฒŒ ์ƒˆ๋กœ์šด ์•„์ด๋””์–ด์™€ ์ œ30์ž ์‚ฌ์šฉ์ž์˜ ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ๊ฐ€์ ธ์˜ฌ ๊ฒƒ์ด๋ผ๋Š” ํฌ๋ง์ž…๋‹ˆ๋‹ค. GitHub์˜ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋Š” ๊ฐœ๋ณ„ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž, ๊ฐœ๋ณ„ DBA, ๊ฐœ๋ณ„ ์„ค๊ณ„์ž, ๊ฐœ๋ณ„ ์—”์ง€๋‹ˆ์–ด์— ์˜ํ•ด ์ƒ์„ฑ๋˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ์ฒด๊ณ„์ ์ธ ๊ฒฝํ—˜์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์ด ์™€์„œ ํŠน์ • ์‚ฌ๋ก€์˜ XNUMX%์—์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋งํ•˜๊ณ  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๊ณผ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ๋ผํ†ค ์–˜๊ธฐ๋ฅผ ๋งŽ์ด ํ•˜๋”๊ตฐ์š”. ๋‚˜๋Š” ๋‹น์‹ ์ด ๋ชจ์Šคํฌ๋ฐ”์—์„œ ๋งˆ๋ผํ†ค์„ ๋›ด ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ? PostgreSQL์˜ ์‚ฌ๋žŒ๋“ค์„ ๋Šฅ๊ฐ€ํ–ˆ๋‚˜์š”?

์•„๋‹ˆ์š”, Oleg Bartunov๋Š” ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ๋‹ฌ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋‚˜๋ณด๋‹ค ํ•œ ์‹œ๊ฐ„ ๋จผ์ € ์ผ์„ ๋งˆ์ณค๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ๋‚˜๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋„๋‹ฌํ•œ ๊ฒƒ์— ๋งŒ์กฑํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ๋Š” ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์„ฑ๊ณผ์˜€๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ Postgres ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์‹คํ–‰์ž๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๋‹ค๋Š” ๊ฒƒ์€ ๋†€๋ผ์šด ์ผ์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ณด๊ธฐ์—๋Š” ์—์–ด๋กœ๋น… ์Šคํฌ์ธ ์™€ ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์š•๊ตฌ ์‚ฌ์ด์— ์ผ์ข…์˜ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํด๋ฆญํ•˜์šฐ์Šค์— ์ฃผ์ž๊ฐ€ ์—†๋‹ค๋Š” ๊ฒ๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ทธ๋“ค์ด ๊ฑฐ๊ธฐ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์‹คํžˆ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ClickHouse๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , Oleg๋Š” ์ง€๊ธˆ ๋‚˜์—๊ฒŒ ํŽธ์ง€๋ฅผ ์“ฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "๋ณด๊ณ  ํ›„ ๋‹ฌ๋ฆฌ๊ธฐํ•˜๋Ÿฌ ๊ฐˆ๊นŒ์š”?" ์ด๊ฒƒ์€ ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

Nikita์˜ ๋ฐฉ์†ก์—์„œ ๋‚˜์˜จ ๋˜ ๋‹ค๋ฅธ ์งˆ๋ฌธ: "์™œ Greenplum์˜ ๋ฒ„๊ทธ๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•˜๊ณ  ํ›„๋ฐฐ๋“ค์—๊ฒŒ ์ฃผ์ง€ ์•Š์•˜๋‚˜์š”?" ์‚ฌ์‹ค, ๋ฒ„๊ทธ๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ค ์„œ๋น„์Šค์— ์žˆ๋Š”์ง€๋Š” ๋ช…ํ™•ํ•˜์ง€ ์•Š์ง€๋งŒ ์•„๋งˆ๋„ ๋‹น์‹ ์ด ๋งํ•œ ๋ฒ„๊ทธ๋ฅผ ์˜๋ฏธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

ํ›„๋ฐฐ ์–˜๊ธฐ๋‹ˆ๊นŒ ์งˆ๋ฌธ ํ•˜๋‚˜ ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ ์‚ฌ๋žŒ์€ Postgres์—์„œ ์ฒซ ๋ฒˆ์งธ ์ปค๋ฐ‹์„ ๋งŒ๋“ค๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ปค๋ฐ‹์„ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ํฅ๋ฏธ๋กœ์šด ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. โ€œ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์•ผ ํ• ๊นŒ์š”?โ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋„์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Postgres์—๋Š” ํ•  ์ผ ๋ชฉ๋ก์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‚ฌ์‹ค ์ด๊ฒƒ์€ ๊ทธ๋“ค์ด ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์— ๋Œ€ํ•œ ์‹œํŠธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ๋ณต์žกํ•œ ๊ฒƒ๋“ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋„ ๊ฐœ๋ฐœ์ž์˜ ๊ด€์‹ฌ์„ ๋œ ๋„๋Š” ์ผ๋ถ€ ์œ ํ‹ธ๋ฆฌํ‹ฐ, ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์ƒํƒœ๊ณ„์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฑฐ๊ธฐ์—๋Š” ๋” ๋งŽ์€ ์„ฑ์žฅ ํฌ์ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Google Summer of Code ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋งค๋…„ Postgres ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ฃผ์ œ๋ฅผ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์˜ฌํ•ด์—๋Š” ํ•™์ƒ์ด ์„ธ ๋ช… ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”. ํ•œ ์‚ฌ๋žŒ์€ Yandex์— ์ค‘์š”ํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด WAL-G์— ๊ธ€์„ ์“ฐ๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ๋‹ค. Greenplum์—์„œ๋Š” Greenplum ํ•ด์ปค๊ฐ€ ํ’€ ์š”์ฒญ์„ ๋งค์šฐ ์ž˜ ์ฒ˜๋ฆฌํ•˜๊ณ  ์ฆ‰์‹œ ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Postgres ์ปค๋ฎค๋‹ˆํ‹ฐ๋ณด๋‹ค ๋ชจ๋“  ๊ฒƒ์ด ๋” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. Postgres์— ํŒจ์น˜๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์€ ๋ช‡ ๋‹ฌ์ด ๊ฑธ๋ฆฌ์ง€๋งŒ Greenplum์€ ํ•˜๋ฃจ ์•ˆ์— ์™€์„œ ์—ฌ๋Ÿฌ๋ถ„์ด ์ˆ˜ํ–‰ํ•œ ์ž‘์—…์„ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ ์ ์€ Greenplum์ด ํ˜„์žฌ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Greenplum์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ฌธ์ œ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌด์—‡๋ณด๋‹ค๋„ ๋จผ์ € ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com