Results KO - k-p2p-lab/kpl-v3 GitHub Wiki

์ €์žฅ ๊ฒฐ๊ณผยท๋‚ด๋ณด๋‚ด๊ธฐยท๋ณด์กด

Wiki home โ€บ ํ•œ๊ตญ์–ด ๋ฌธ์„œ ยท ์˜์–ด ์›๋ฌธ

๋ฌธ์„œ ์•ˆ๋‚ด ยท ์†Œ์Šค ์ €์žฅ์†Œ

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

์ €์žฅ ๊ฒฐ๊ณผ ์ฐพ๊ธฐ

Saved results์—์„œ ์‹คํ—˜ ์ด๋ฆ„ยท๋ฐฐ์น˜ IDยทrun ID๋กœ ๊ฒ€์ƒ‰ํ•˜๊ณ  In progress, Completed, Needs attention ์ƒํƒœ ํ•„ํ„ฐ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜๋Š” run์ด ์žˆ์œผ๋ฉด ์ด์ „ ์‹œ๋„๋ฅผ ํฌํ•จํ•œ ๋ฐฐ์น˜ ์ „์ฒด๋ฅผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ ์ง„ํ–‰๋ฅ ๊ณผ ๋ฐฐ์น˜ ์ž‘์—…์„ ๊ทธ๋Œ€๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ํ•„ํ„ฐ๋Š” ํ˜„์žฌ ์‹œ๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒ์ •ํ•ฉ๋‹ˆ๋‹ค. Completed๋Š” ๋ฐฐ์น˜์˜ ํ˜„์žฌ run์ด ๋ชจ๋‘ ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ, Needs attention์€ ์‹คํŒจยท์ค‘๋‹จยท์ทจ์†Œ๋˜์—ˆ๊ฑฐ๋‚˜ ์ฝ์„ ์ˆ˜ ์—†๋Š” ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ ์ˆ˜๋Š” ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๋Š” ์ €์žฅ run์˜ ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ชฉ๋ก์„ ๊ฐฑ์‹ ํ•ด๋„ ๊ฒ€์ƒ‰ยทํ•„ํ„ฐ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ์„ ํƒ ๋ฒ„ํŠผ์„ ๋ฐ”๋กœ ๋ˆŒ๋Ÿฌ ์ „ํ™˜ํ•˜๊ณ  All๋กœ ์ƒํƒœ ํ•„ํ„ฐ๋งŒ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์ฐฝ ์•ˆ์˜ Clear search ๋ฒ„ํŠผ์€ ๊ฒ€์ƒ‰์–ด๋งŒ ์ง€์›๋‹ˆ๋‹ค. ์ „์ฒด ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด ๊ฒ€์ƒ‰์–ด๋ฅผ ์ง€์šฐ๊ณ  All์„ ์„ ํƒํ•œ ๋’ค ๊ทธ๋ฃน ํ•„ํ„ฐ๋ฅผ All groups๋กœ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค. ์ƒํƒœ ์„ ํƒ์ง€๋Š” ํ•ญ์ƒ ๋ณด์ด๋ฉฐ ์ข์€ ํ™”๋ฉด์—์„œ๋Š” ๋‘ ์ค„๋กœ ๋ฐฐ์น˜ํ•˜๊ณ  ํ‚ค๋ณด๋“œ ๋ฐฉํ–ฅํ‚ค๋กœ๋„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ฐ”์ผ์—์„œ๋Š” ๊ฒฐ๊ณผ ํ–‰์„ ์‹œ๊ฐ„ ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ์นด๋“œ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ Run์€ Images์™€ ๋‹ค์šด๋กœ๋“œ๋ฅผ ๋ฐ”๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, More์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณต๊ตฌยท์‚ญ์ œ ๊ธฐ๋Šฅ์„ ๋‘ก๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ํ—ค๋”๋Š” Analyze batch mean๊ณผ More ๋ฉ”๋‰ด๋ฅผ ๋‚˜๋ž€ํžˆ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Agent ํ‘œ๋Š” ๊ฐ€๋กœ๋กœ ์Šคํฌ๋กคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Saved results์˜ ๋ฐ˜๋ณต ์‹คํ–‰ ๋ฐฐ์น˜ ๋‚ด๋ถ€๋Š” queued ๋ฐ ์žฌ์‹œ๋„ ํ•ญ๋ชฉ์„ ํฌํ•จํ•ด Run n of M์˜ ์ˆซ์ž ์ˆœ์„œ(1, 2, โ€ฆ, 10)๋กœ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค. queued ํ•ญ๋ชฉ์ด ์‹คํ–‰์„ ์‹œ์ž‘ํ•ด๋„ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์‹œ๋„๋Š” ๋ณ„๋„ ํ‘œ์— ๋‚จ์œผ๋ฉฐ, ์œ ํšจํ•œ ํšŒ์ฐจ ๋ฒˆํ˜ธ๊ฐ€ ์—†๋Š” ํ•ญ๋ชฉ์€ ๋งˆ์ง€๋ง‰์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ์ž์ฒด๋Š” ๊ธฐ์กด ๊ฒฐ๊ณผ ๋ชฉ๋ก ์œ„์น˜๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ณต์œ  ๊ทธ๋ฃน์œผ๋กœ ๊ฒฐ๊ณผ ์ •๋ฆฌ

Groups์—์„œ Saved scenarios์™€ ๊ฐ™์€ ๊ทธ๋ฃน์„ ๊ด€๋ฆฌํ•˜๊ณ  Select โ†’ Move๋กœ ๊ธฐ์กด ๊ฒฐ๊ณผ๋ฅผ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฃน ํ•„ํ„ฐ๋„ ๋‘ ํ™”๋ฉด์—์„œ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑยท์ด๋ฆ„ ๋ณ€๊ฒฝยท์„ ํƒยทUngrouped ์ด๋™ยท์‚ญ์ œยท์ƒˆ๋กœ๊ณ ์นจ ๋ฐฉ๋ฒ•์€ ๊ณต์œ  ๊ทธ๋ฃน ์‚ฌ์šฉ๋ฒ•์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

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

๊ทธ๋ฃน ๋“œ๋กญ๋‹ค์šด์˜ ์ˆ˜๋Š” ๊ฒฐ๊ณผ ๋ฌถ์Œ ๊ธฐ์ค€์œผ๋กœ, ๋ฐ˜๋ณต ๋ฐฐ์น˜ ์ „์ฒด๊ฐ€ ํ•˜๋‚˜์ด๊ณ  ๋‹จ๋… run๋„ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ชฉ๋ก ์š”์•ฝ์€ ์ €์žฅ run ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜์˜ ์ด์ „ ์‹œ๋„ยท์žฌ์‹œ๋„ยท์ถ”๊ฐ€ ํšŒ์ฐจ๋Š” ๊ฐ™์€ ๊ทธ๋ฃน ์†Œ์†์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฃน ๋ณ€๊ฒฝ์€ ์ •๋ฆฌ ์šฉ๋„์ด๋ฉฐ ๋ฐฐ์น˜ ๊ตฌ์„ฑ, ์›๋ณธ ํŒŒ์ผ, ๋ถ„์„ ํ•ด์‹œ๋‚˜ ๋ฐฐ์น˜ ํ‰๊ท ์„ ๋ฐ”๊พธ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Delete group์€ ๊ฒฐ๊ณผ๋ฅผ Ungrouped์— ๋ณด์กดํ•˜๋ฉฐ, More โ†’ Delete batch๋Š” ํ™•์ธ ํ›„ ํ•ด๋‹น ๋ฐฐ์น˜์˜ ๊ฒฐ๊ณผ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ๊ฒฐ๊ณผ ๋‹ค์šด๋กœ๋“œ

Saved results์—์„œ Select๋ฅผ ๋ˆ„๋ฅด๊ณ  Run ๋˜๋Š” ๋ฐฐ์น˜๋ฅผ ์„ ํƒํ•œ ๋’ค Download ZIP์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. Select visible์€ ๊ทธ๋ฃนยท๊ฒ€์ƒ‰ยท์ƒํƒœ ํ•„ํ„ฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ฐฐ์น˜๋ฅผ ์„ ํƒํ•˜๋ฉด ์‹คํŒจ Run๊ณผ ์ด์ „ ์‹œ๋„๋ฅผ ํฌํ•จํ•ด ํ˜„์žฌ ๋ชฉ๋ก์— ์žˆ๋Š” ํ•ด๋‹น ๋ฐฐ์น˜์˜ ๋ชจ๋“  Run์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Download ZIP์„ ๋ˆ„๋ฅด๋Š” ์‹œ์ ์— ์„ ํƒํ•œ Run ID๋ฅผ ํ™•์ •ํ•˜๋ฏ€๋กœ ์ดํ›„ ์ถ”๊ฐ€๋œ Run์€ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”๊นฅ ZIP์—๋Š” Run๋ณ„๋กœ [์‹คํ—˜ ์ด๋ฆ„]-<run-id>.zip์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ฐ ๋‚ด๋ถ€ ZIP์˜ ๊ตฌ์„ฑ์€ ๊ฐœ๋ณ„ ๊ฒฐ๊ณผ ๋‚ด๋ณด๋‚ด๊ธฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฐจํŠธ PNG/CSV ZIP์€ ๋ถ„์„์ฐฝ์—์„œ ๋‚ด๋ ค๋ฐ›๊ฑฐ๋‚˜ ์•„๋ž˜์˜ CSV ์ „์šฉ ์„ ํƒ ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

์„ ํƒ ๋ชจ๋“œ์˜ Download CSV ZIP์€ results-csv-<UTC timestamp>.zip์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์•ˆ์—๋Š” ์„ ํƒํ•œ Run๋ณ„ [์‹คํ—˜ ์ด๋ฆ„]-<run-id>-csv.zip์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ฐ ๋‚ด๋ถ€ ZIP์—๋Š” Images์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ๋ถ„๋ฅ˜ยทํ”„๋กœํ† ์ฝœ์˜ ๊ฐœ์š” ์ฐจํŠธ CSV๋งŒ ํฌํ•จํ•˜๋ฉฐ PNGยท์ฐจํŠธ ์ •์˜ JSONยท์›๋ณธ ๋กœ๊ทธ๋Š” ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ์„ ํƒ์€ ์ด์ „ ์‹œ๋„๋ฅผ ํฌํ•จํ•œ ํ˜„์žฌ ๋ชฉ๋ก์˜ ๊ฐœ๋ณ„ Run๋“ค์„ ํฌํ•จํ•˜๋ฉฐ ๋ฐฐ์น˜ ํ‰๊ท ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‰๊ท ์€ ํ•ด๋‹น ๋ฐฐ์น˜ ๋ถ„์„์ฐฝ์—์„œ ๋ณ„๋„๋กœ ๋‚ด๋ณด๋‚ด์‹ญ์‹œ์˜ค.

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

์‹คํ—˜ ๊ฒฐ๊ณผ๋ณ„ ๋ฉ”๋ชจ

Saved results์—์„œ ์‹คํ–‰ ์ด๋ฆ„ ์˜†์˜ Add note ๋˜๋Š” Edit note๋กœ ๋ฉ”๋ชจ๋ฅผ ์ž‘์„ฑยท์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ํ–‰์—๋Š” ์งง์€ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ํŽธ์ง‘์ฐฝ์—์„œ๋Š” ์ „์ฒด ์ผ๋ฐ˜ ํ…์ŠคํŠธ์™€ ๋งˆ์ง€๋ง‰ ์ €์žฅ ์‹œ๊ฐ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋Š” ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณต์œ ๋˜๋ฉฐ ๋Œ€๊ธฐยท์‹คํ–‰ยท์ข…๋ฃŒ ์ƒํƒœ ๋ชจ๋‘์—์„œ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ UTF-8 16 KiB๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Save note๋กœ ์ €์žฅํ•˜๊ณ , ๋น„์šด ๋’ค ์ €์žฅํ•˜๋ฉด ๋ฉ”๋ชจ๋ฅผ ์ง€์›๋‹ˆ๋‹ค. Cancel์€ ์ž‘์„ฑ ์ค‘์ธ ๋ณ€๊ฒฝ์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค.

๋ฐ˜๋ณต ์‹คํ—˜์˜ ์ด์ „ ์‹œ๋„๋ฅผ ํฌํ•จํ•ด run ID๋งˆ๋‹ค ๋ณ„๋„ ๋ฉ”๋ชจ๋ฅผ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ—˜ ์žฌ์‹œ๋„๋Š” ์ƒˆ run ID๋ฅผ ๋งŒ๋“ค๋ฏ€๋กœ ์ด์ „ ์‹œ๋„์˜ ๋ฉ”๋ชจ๋ฅผ ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ๋ฎ์–ด์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋Š” current-run/<run-id>/note.json์— ๋”ฐ๋กœ ์ €์žฅํ•˜๊ณ  NAS ๋ณด๊ด€๋ณธ์— ๋ฐ˜์˜ํ•˜์—ฌ Controller ์žฌ์‹œ์ž‘๊ณผ ์‹คํ—˜ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ ์ดํ›„์—๋„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์ €์žฅํ•œ ๋ฉ”๋ชจ ํŒŒ์ผ์€ ๊ฒฐ๊ณผ ZIP์— ํฌํ•จํ•˜๊ณ , ๋น„์šด ๊ฒฝ์šฐ์—๋„ ์˜ค๋ž˜๋œ ํŽธ์ง‘์˜ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ๋ง‰๋Š” ๋นˆ ๊ธฐ๋ก์„ ๋‚จ๊น๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ์‚ญ์ œ ์‹œ ๋ฉ”๋ชจ๋„ ์‚ญ์ œ๋˜๋ฉฐ ๋ฐฑ์—…์—๋Š” ๋กœ์ปฌ ๋ฐ˜์˜ ๋Œ€๊ธฐ ๋ฉ”๋ชจ์™€ NAS ๋ณด๊ด€๋ณธ์„ ํ•จ๊ป˜ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐ์น˜ ํ—ค๋”์˜ Add batch note ๋˜๋Š” Edit batch note๋กœ ๋ฐ˜๋ณต ๋ฐฐ์น˜ ์ „์ฒด์˜ ๋ฉ”๋ชจ๋ฅผ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜๋ฅผ ํŽผ์น˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํŽธ์ง‘๊ธฐ์™€ ์ถฉ๋Œ ๋ณดํ˜ธ๋Š” ๊ฐœ๋ณ„ ๋ฉ”๋ชจ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ๋ฉ”๋ชจ์™€ Run ๋ฉ”๋ชจ๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ด๊ณ , ์žฌ์‹œ๋„๋‚˜ ๊ฐœ๋ณ„ Run ์‚ญ์ œ ์ดํ›„์—๋„ ๊ฐ™์€ ๋ฐฐ์น˜ ID์— ์—ฐ๊ฒฐํ•ด ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. Delete batch๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ์› ์‚ญ์ œ๊ฐ€ ์„ฑ๊ณตํ•œ ๋’ค ๋ฐฐ์น˜ ๋ฉ”๋ชจ๋„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ๋ฉ”๋ชจ๋Š” ๋กœ์ปฌ result-groups/<batch-id>/note.json์— ๋ณด๊ด€ํ•˜๋ฏ€๋กœ Controller ๋ฐฑ์—…์— ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. NAS๊ฐ€ ๋Š๊ฒจ๋„ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐœ๋ณ„ Run ZIP์—๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ฐฝ์—์„œ ๋ฉ”๋ชจ๋ฅผ ๋ฐ”๊พธ๋ฉด ์ €์žฅ ์ถฉ๋Œ์„ ์•Œ๋ฆฌ๊ณ  ์ž‘์„ฑ ์ค‘์ธ ๋‚ด์šฉ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. Review latest note๋กœ ์ตœ์‹  ์ €์žฅ๋ณธ์„ ์ดˆ์•ˆ๊ณผ ํ•จ๊ป˜ ํ™•์ธํ•œ ๋’ค ํ•„์š”์— ๋”ฐ๋ผ ํŽธ์ง‘ํ•˜๊ณ  ๋‹ค์‹œ ์ €์žฅํ•˜์—ฌ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์ดˆ์•ˆ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก์—๋Š” ๊ธธ์ด๋ฅผ ์ œํ•œํ•œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋งŒ ์ „๋‹ฌํ•˜๋ฉฐ ์ „์ฒด ๋ฉ”๋ชจ๋Š” ํŽธ์ง‘์ฐฝ์„ ์—ด ๋•Œ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹œ๋ณด๋“œ SSE์—๋Š” ๋ฉ”๋ชจ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๊ทœ์•ฝ์€ ๋ฉ”๋ชจ API๋ฅผ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

์™„๋ฃŒ ๋ฐฐ์น˜์˜ More โ†’ Add runs๋กœ ๊ฐ™์€ ๋ฐฐ์น˜์— ๋ฐ˜๋ณต ํšŒ์ฐจ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10ํšŒ ์™„๋ฃŒ + 10ํšŒ ์ถ”๊ฐ€๋Š” 20ํšŒ ๋ฐฐ์น˜๊ฐ€ ๋˜๋ฉฐ, ์™„๋ฃŒ ํ›„ Analyze batch mean์ด ์ „์ฒด 20ํšŒ๋ฅผ ๋‹ค์‹œ ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ ์กฐ๊ฑดยทํ•œ๋„ยท๋ณต๊ตฌ๋Š” ์™„๋ฃŒ ๋ฐฐ์น˜ ํ™•์žฅ์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

์‹คํ—˜ ๊ฒฐ๊ณผ ๋‹ค์šด๋กœ๋“œ

๋Œ€์‹œ๋ณด๋“œ์˜ ์‹คํ—˜ ํ•ญ๋ชฉ์ด๋‚˜ Saved results์—์„œ Download results๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต run์€ ์‹œ๋ฆฌ์ฆˆ ํ—ค๋”๋ฅผ ํŽผ์ณ ๊ฐ run์˜ ๋‹ค์šด๋กœ๋“œยท๋ถ„์„ยท์‚ญ์ œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ ๋ชฉ๋ก์€ Controller์˜ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฝ์œผ๋ฏ€๋กœ Controller ์žฌ์‹œ์ž‘ ํ›„์—๋„ ๊ฒฐ๊ณผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—… ํŒŒ์ผ์„ ๋ณต์›ํ•œ ๋’ค์—๋Š” Refresh๋กœ ๋ชฉ๋ก์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘ ์‹คํ—˜์—๋Š” Download snapshot์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์šฉ๋Ÿ‰์€ ๋งˆ์ง€๋ง‰ ๋ชฉ๋ก ์กฐํšŒ ์‹œ์ ์˜ ์••์ถ• ์ „ ์›๋ณธ ํŒŒ์ผ ํ•ฉ๊ณ„์ธ Source๋กœ ๋ฐ”๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ยท๋Œ€๊ธฐ ์ค‘ ๊ฒฐ๊ณผ๋„ Live source๋กœ ํ‘œ์‹œํ•˜๋ฉฐ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค. ZIP ๋‹ค์šด๋กœ๋“œ ํฌ๊ธฐ์™€๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ZIP์—๋Š” ๋‹ค์Œ ํŒŒ์ผ์ด ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ ๋‚ด์šฉ
scenario.yaml ์‹คํ—˜ ์‹คํ–‰ ์‹œ ์ œ์ถœํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ์›๋ฌธ
experiment.json ์ €์žฅ๋œ ์‹คํ—˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐยท์ƒํƒœยทseedยทjob ์นด์šดํ„ฐ ์›๋ฌธ
events.jsonl ๋‚ด๋ณด๋‚ด๊ธฐ ๊ธฐ์ค€ ์‹œ์ ๊นŒ์ง€ ์ €์žฅ๋œ ์ „์ฒด ์ด๋ฒคํŠธ. ํ•œ ์ค„์— JSON ํ•˜๋‚˜์ด๋ฉฐ, ๊ธฐ๋ก๋œ ์ด๋ฒคํŠธ๊ฐ€ ์—†์œผ๋ฉด ๋นˆ ํŒŒ์ผ
observations.jsonl ์‹คํ–‰ ์ค‘ ์•ฝ 5์ดˆ๋งˆ๋‹ค ์ €์žฅํ•œ ๊ทธ๋ฃน ์ƒํƒœยท์ฐจ์ˆ˜ยทclusteringยท์ ์ˆ˜์™€ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ํ”„๋กœํ† ์ฝœ๋ณ„ ๋…ธ๋“œยท๊ฐ„์„  ํ‘œ๋ณธ. ๊ณผ๊ฑฐ ๊ฒฐ๊ณผ์—๋Š” ํŒŒ์ผ์ด๋‚˜ ๊ฐ„์„ ์ด ์—†์„ ์ˆ˜ ์žˆ์Œ
note.json ์„ ํƒ์  ๊ฒฐ๊ณผ ๋ฉ”๋ชจ, run ID, revision๊ณผ ๋งˆ์ง€๋ง‰ ์ €์žฅ ์‹œ๊ฐ. ๋™์ผํ•œ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ฒฝ๊ณ„์˜ ํŒŒ์ผ์„ ํฌํ•จ
metrics.json ๋™์ผ ์ด๋ฒคํŠธ ๋กœ๊ทธ ๊ฒฝ๊ณ„์—์„œ ์žฌ๊ณ„์‚ฐํ•œ ์„ธ์…˜ ๊ธฐ๊ฐ„ ๋„๋‹ฌ๋ฅ  ๋ฒ”์œ„, ๋ฐœํ–‰ ์‹œ์  ๋Œ€์ƒ ๊ฒฐ๊ณผ, coverage, pending/unknown, ์ฒซ ์›๊ฒฉ ์ง€์—ฐ, ๊ด€์ธก ์ค‘๋ณต, control ๋‚ด์—ญ๊ณผ ์ˆ˜์ง‘๋œ ๋Œ€์—ญํญ ๋ˆ„์ ๋Ÿ‰ยทํ’ˆ์งˆ. ๊ณผ๊ฑฐ ์ •์˜๋Š” legacy ์œ ์ง€
export.json ๋‚ด๋ณด๋‚ด๊ธฐ ์‹œ๊ฐ, ์‹คํ—˜ ์ƒํƒœ, active/partial ์—ฌ๋ถ€์™€ ์›๋ณธ ํŒŒ์ผ์˜ ์บก์ฒ˜๋œ ํฌ๊ธฐ

Controller์˜ ์ €์žฅ ์ž ๊ธˆ ์•ˆ์—์„œ ๋กœ์ปฌ ํŒŒ์ผ ๊ฒฝ๊ณ„์™€ ๋ถˆ๋ณ€ NAS ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํ™•๋ณดํ•œ ๋’ค ์ž ๊ธˆ์„ ํ•ด์ œํ•˜๊ณ  ZIP์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ์ถ”๊ฐ€๋œ ์ด๋ฒคํŠธ๋Š” ์ œ์™ธ๋˜๋ฉฐ ๋А๋ฆฐ ๋‹ค์šด๋กœ๋“œ๊ฐ€ telemetry ํŒŒ์ผ ์“ฐ๊ธฐ๋ฅผ ๋ถ™์žก์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™„๋ฃŒ๋œ ์‹คํ—˜์—๋„ ์ง€์—ฐ๋œ telemetry๊ฐ€ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‚˜์ค‘์— ์ถ”๊ฐ€๋œ ๊ธฐ๋ก๊นŒ์ง€ ํ•„์š”ํ•˜๋ฉด ์ˆ˜์ง‘์ด ์•ˆ์ •๋œ ๋’ค ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜์‹ญ์‹œ์˜ค. partial: false๋Š” ๊ธฐ๋ก๋œ ์‹คํ—˜ ์ƒํƒœ๊ฐ€ ์ข…๋ฃŒ ์ƒํƒœ๋ผ๋Š” ์˜๋ฏธ์ด๋ฉฐ telemetry ๋ฌด์†์‹ค์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ, PCAP, Prometheus/Grafana ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ZIP์— ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Source / Live source์—๋Š” ๋ถ„์„ ์บ์‹œ, ์ƒ์„ฑ ์ด๋ฏธ์ง€, ๋‚ด๋ณด๋‚ผ ๋•Œ ๊ณ„์‚ฐํ•˜๋Š” ํŒŒ์ผ๊ณผ ํŒŒ์ผ์‹œ์Šคํ…œ ๋ถ€๊ฐ€ ๊ณต๊ฐ„์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹œ๋ณด๋“œ๋Š” ZIP ํฌ๊ธฐ๋ฅผ ์ž๋™ ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. sourceBytes, ๋ช…์‹œ์  HEAD ์š”์ฒญ๊ณผ ์บ์‹œ ํ—ค๋”๋Š” ๋‹ค์šด๋กœ๋“œ API๊ฐ€ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ ๊ฒฐ๊ณผ ๋ชฉ๋ก๊ณผ ๋‹ค์šด๋กœ๋“œ์—๋„ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. API ๋กœ๊ทธ์ธ ํ›„ ์ฟ ํ‚ค ํŒŒ์ผ์„ ์žฌ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

curl --fail -b "${KPL_COOKIE_JAR:?Log in first}" http://control-node:8080/api/v1/results
curl --fail -b "${KPL_COOKIE_JAR:?Log in first}" --output run-results.zip \
  http://control-node:8080/api/v1/experiments/RUN_ID/download

RUN_ID๋Š” ์ €์žฅ ๋ชฉ๋ก์˜ ID๋กœ ๋ฐ”๊พธ๊ณ  access๊ฐ€ ์ถœ๋ ฅํ•œ control ๋…ธ๋“œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๋‚ด๋ณด๋‚ด๋Š” ๋‚ด์šฉ์€ ๊ตฌ๋… ์„ธ์…˜ start/checkpoint/stop๊ณผ ๊ธฐ๋ก๋œ Agent ์ข…๋ฃŒ ํ™•์ธ์„ ํฌํ•จํ•œ ์ˆ˜์ง‘ telemetry์ž…๋‹ˆ๋‹ค. Peer ์žฌ์‹œ๋„, Agent ํ backpressure, ์ •์ƒ ์ข…๋ฃŒ drain์€ ์œ ์‹ค์„ ์ค„์ด์ง€๋งŒ ํ•œ๋„๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ฐ•์ œ ์ข…๋ฃŒ๋Š” Peer๋ฅผ drainํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›๋ณธ sequence ๊ฐ„๊ฒฉ์ด ์žˆ์œผ๋ฉด ๋ฏธ์ˆ˜์‹ ์€ unknown์ž…๋‹ˆ๋‹ค. ๋‹ค์šด๋กœ๋“œ๋กœ ๋ˆ„๋ฝ์„ ๋ณต๊ตฌํ•˜๊ฑฐ๋‚˜ ์•„์˜ˆ ๋ณด์ด์ง€ ์•Š์€ ์„ธ์…˜์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. /api/v1/events๋Š” ์—ฌ์ „ํžˆ ์ตœ๊ทผ 300๊ฐœ๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์›น ์ด๋ฒคํŠธ ํ™”๋ฉด์€ ๊ทธ์ค‘ ์ตœ์‹  40๊ฐœ๋ฅผ ํ‘œ์‹œํ•˜์ง€๋งŒ ZIP์€ ์ €์žฅ๋œ ์ „์ฒด ๋กœ๊ทธ๋ฅผ ์ฝ์Šต๋‹ˆ๋‹ค.

์ €์žฅ ๊ฒฐ๊ณผ ์‚ญ์ œ

Saved results โ†’ More โ†’ Delete๋Š” ํ™•์ธ ํ›„ ์„ ํƒํ•œ run์˜ ์‹œ๋‚˜๋ฆฌ์˜คยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐยท๋ฉ”๋ชจยท์ด๋ฒคํŠธ์™€ ์‹ค์‹œ๊ฐ„ ์ง€ํ‘œ ์ธ๋ฑ์Šค๋ฅผ ์˜๊ตฌ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ยท๋Œ€๊ธฐ ์ค‘ ์‹คํ—˜, ํ™œ์„ฑ ๋ฐฐ์น˜ ๊ตฌ์„ฑ์›, ๋‹ค์šด๋กœ๋“œ ์ค‘ ๊ฒฐ๊ณผ๋Š” ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์‚ญ์ œ ํ‘œ์‹๊ณผ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋กœ์ปฌ ๋””์Šคํฌ์— ๋™๊ธฐํ™”ํ•œ ๋’ค ๋กœ์ปฌ ๊ธฐ๋ก๊ณผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์•„์นด์ด๋ธŒ ๊ด€๋ฆฌ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ณด๊ด€ ์ž‘์—…์ž๊ฐ€ ์ดํ›„ NAS ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉฐ, NAS๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด ๋‚˜์ค‘์— ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์‚ญ์ œ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด ์ €์žฅ ๋ฆฌ๋น„์ „์ด ๋ฐ”๋€Œ๋ฏ€๋กœ NAS ์žฅ์•  ์ค‘์—๋„ ๋‹ค๋ฅธ ๋Œ€์‹œ๋ณด๋“œ์˜ ์ €์žฅ ๊ฒฐ๊ณผ ๋ชฉ๋ก์— ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. API๋Š” ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” DELETE /api/v1/results/{id}์ž…๋‹ˆ๋‹ค. Peer๋ฅผ ์ข…๋ฃŒํ•˜์ง€ ์•Š์œผ๋ฉฐ ๊ธฐ์กด Prometheus/Grafana ์‹œ๊ณ„์—ด์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ํ‘œ์‹์€ ์ง€์—ฐ telemetry์˜ ๊ฒฐ๊ณผ ์žฌ์ƒ์„ฑ์„ ๋ง‰์œผ๋ฏ€๋กœ ๋ฐฑ์—…ยท์ด์ „ ๋•Œ Controller ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ ๋ณด์กดํ•˜์‹ญ์‹œ์˜ค. ์ƒํƒœ ์ฝ”๋“œ์™€ ๋‹ค์šด๋กœ๋“œ header๋Š” REST API ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

๋ชฉ๋ก ์กฐํšŒ๋Š” ์‚ญ์ œ๋ฅผ ๋ง‰์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง์ ‘ ์š”์ฒญํ•œ ZIP ํฌ๊ธฐ ์กฐํšŒ(HEAD)๋Š” NAS ์›๋ณธ ํŒŒ์ผ์„ ์—ฌ๋Š” ๋™์•ˆ ์ž ์‹œ ๊ฒฐ๊ณผ๋ฅผ ๋ณดํ˜ธํ•˜์—ฌ ์‚ญ์ œ๊ฐ€ 409๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ํ™•๋ณด ํ›„ ํฌ๊ธฐ ๊ณ„์‚ฐ ์ค‘์—๋Š” ์‚ญ์ œ ๋ณดํ˜ธ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ZIP ๋‹ค์šด๋กœ๋“œ(GET)๋Š” ์š”์ฒญ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ฒฐ๊ณผ๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ์š”์ฒญ์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ 30์ดˆ ์ œํ•œ ์‹œ๊ฐ„์„ ์ ์šฉํ•˜๋ฉฐ, ์‹œ๊ฐ„ ์ดˆ๊ณผ ํ›„์—๋„ Controller์—์„œ ์™„๋ฃŒ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ชฉ๋ก์„ ๊ฐฑ์‹ ํ•˜๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฐ๊ณผ์˜ ์‚ญ์ œ๋ฅผ ์žฌ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์† ๋ชฉ๋ก ๊ฐฑ์‹ ์ด ๋А๋ ค๋„ ์‚ญ์ œ์ฐฝ ๋ฒ„ํŠผ์€ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๋ฆฌ์ฆˆ ํ—ค๋”์˜ More โ†’ Delete batch์€ ์ €์žฅ๋œ run ์ˆ˜๋ฅผ ํ™•์ธํ•œ ๋’ค DELETE /api/v1/result-batches/{batchId}๋กœ ๋ฐฐ์น˜ ์ „์ฒด๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์›๋ณธ ์‚ญ์ œ์™€ ๋‹ฌ๋ฆฌ ๋ณ„๋„ batch-analyses/{batchId} ํ‰๊ท  ํŒŒ์ผ๊นŒ์ง€ ์ œ๊ฑฐํ•˜๋ฉฐ ์ง„ํ–‰ ์ค‘์ธ ๋ถ„์„๋„ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค. ์‚ญ์ œ ์ „ ๋ชจ๋“  ๊ตฌ์„ฑ์›์˜ ํ™œ์„ฑ ์ƒํƒœยท๋‹ค์šด๋กœ๋“œ๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ ์žฅ์น˜ ์˜ค๋ฅ˜๋กœ ์ผ๋ถ€๋งŒ ์‚ญ์ œ๋์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•œ ๋’ค ๋ชฉ๋ก์„ ๊ฐฑ์‹ ํ•˜๊ณ  ์žฌ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ์กด Prometheus/Grafana ์‹œ๊ณ„์—ด์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ถ„์„ ํŒŒ์ผ๊ณผ ์ด๋ฏธ์ง€ ๋ณด์กด

์‹คํ–‰์˜ ์›๋ณธ ๋‚ด๋ณด๋‚ด๊ธฐ์™€ ๊ณ„์‚ฐ๋œ ๋ถ„์„์€ ๊ฒฝ๊ณ„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. Download results / Download snapshot์€ ๋‚ด๋ณด๋‚ผ ๋•Œ ์›๋ณธ ํŒŒ์ผ ๊ฒฝ๊ณ„๋ฅผ ์žก๊ณ , Download analysis JSON์€ ์™„๋ฃŒ๋œ ๋ถ„์„ ์ž‘์—…์˜ ๊ฒฝ๊ณ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ถ”๊ฐ€๋œ ๋กœ๊ทธ๋Š” ์ƒˆ ๋ถ„์„์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „๊นŒ์ง€ ๊ธฐ์กด ๋ถ„์„์— ๋“ค์–ด๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ฉ๊ณ„๋ฅผ ๋Œ€์กฐํ•  ๋•Œ export.json.exportedAt๊ณผ ๋ถ„์„์˜ asOfยท์ž‘์—…์˜ snapshotAt์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

ํŒŒ์ผ / ์‚ฐ์ถœ๋ฌผ ์œ„์น˜์™€ ๋‚ด์šฉ
analysis-job.json ๋ถ„์„ ์š”์ฒญ ํ›„ ์‹คํ–‰ ํŒŒ์ผ ์˜†์— ์ €์žฅํ•˜๋Š” ํ˜„์žฌ ์‹œ๋„ยท์ƒํƒœยท์ง„ํ–‰๋ฅ ยท์›๋ณธ ๊ฒฝ๊ณ„
analysis-result.json / analysis-result-next.json ์ž‘์—… ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์„ ํƒํ•˜๋Š” ์„œ๋ฒ„ ๋ถ„์„ ์Šฌ๋กฏ. ๋ฉ”์ธ ์ง€ํ‘œ, ์—ฐ๊ตฌ ๋ฉ”์‹œ์ง€ยท๋ชจ์ง‘๋‹จยท๊ทผ๊ฑฐ, ๊ณ„์‚ฐ๋œ ๊ทธ๋ž˜ํ”„ยท๋Œ€์—ญํญ ์‹œ๊ณ„์—ด, ๋ถ„ํฌ์™€ ์ ํ•ฉ ๊ฒฐ๊ณผ
analysis-summary.json / analysis-summary-next.json ๊ฐ™์€ ์Šฌ๋กฏ์˜ ๋น„๊ต์šฉ ๊ฒฝ๋Ÿ‰ ์‘๋‹ต. ๋ฉ”์‹œ์ง€๋ณ„ ๊ฒฝ๋กœ์™€ ์›๋ณธ ์‹œ๊ณ„์—ด์„ ์ œ์™ธํ•˜๊ณ  ์ง‘๊ณ„ยท๋ถ„ํฌยท์ ํ•ฉยท๋ฉ”์‹œ์ง€ ์ˆ˜ ์œ ์ง€
PNG / ์ฐจํŠธ CSV / ์ฐจํŠธ ์ •์˜ JSON ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐœ์š”ยท๋ฉ”์‹œ์ง€ยท๋น„๊ต ํ™”๋ฉด์—์„œ ์ƒ์„ฑ. ์ œ๋ชฉ์„ ํŽผ์ณ ๊ฐœ๋ณ„ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉฐ, Download ZIP์€ ํ™”๋ฉด์˜ ํ”„๋กœํ† ์ฝœ ์„ ํƒยท์ œ๋ชฉ ํŽผ์นจ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ๊ทธ๋ž˜ํ”„ ํ”„๋กœํ† ์ฝœ์˜ PNGยทCSVยท์ฐจํŠธ ์ •์˜๋ฅผ ํฌํ•จํ•œ ZIP์„ ์ €์žฅ
๊ฐ€์ ธ์˜จ v2 ํŒŒ์ผ / ๋น„๊ต ์„ ํƒ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์—์„œ ์œ ์ง€ํ•˜๋ฉฐ Controller์— ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ๋น„๊ต ์ž‘์—…์œผ๋กœ ์ €์žฅํ•˜์ง€ ์•Š์Œ

์„œ๋ฒ„ ๋ถ„์„ ํŒŒ์ผ์€ Download results ZIP์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณ„์‚ฐ JSON์€ ๋ถ„์„ ๋‹ค์šด๋กœ๋“œ endpoint๋กœ, ๊ทธ๋ฆผ์€ ์ฐจํŠธ ๋‹ค์šด๋กœ๋“œ๋กœ ๊ฐ๊ฐ ๋ณด์กดํ•˜์‹ญ์‹œ์˜ค. ๋น„๊ต ZIP์€ ์ƒ์„ฑํ•œ ์ฐจํŠธ์ด๋ฉฐ ์žฌ๋ถ„์„์— ํ•„์š”ํ•œ ์ „์ฒด ์›๋ณธ ๊ธฐ๋ก์ด๋‚˜ ๊ฐ€์ ธ์˜จ ํŒŒ์ผ์˜ ๋ฌถ์Œ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์›๋ณธ๊ณผ ์„ ํƒํ•œ Series/CaseยทํŒŒ๋ผ๋ฏธํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด revision์„ ํ•จ๊ป˜ ๋‚จ๊ธฐ์‹ญ์‹œ์˜ค.

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

๋ฐ˜๋ณต ์‹คํ—˜์˜ Analyze batch mean ์ž‘์—…์€ <data-dir>/batch-analyses/{batchId}/job.json์— ๋ณ„๋„๋กœ ๋ณด์กดํ•˜๋ฉฐ result.json๊ณผ result-next.json์„ ์ €์žฅ ์Šฌ๋กฏ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์—๋Š” run๋ณ„ ๋™์ผ ๊ฐ€์ค‘ ํ‰๊ท ยทํ‘œ๋ณธ SDยท์œ ํšจ ์ˆ˜์™€ ํ‰๊ท  ๊ฐœ์š” ์žฌํ˜„์šฉ ๊ฒฝ๋Ÿ‰ ์ž…๋ ฅ์ด ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์›๋ณธ์„ ์‚ญ์ œํ•ด๋„ ๊ธฐ์กด ํ†ตํ•ฉ ์Šค๋ƒ…์ƒท ํŒŒ์ผ์€ ๋‚จ์œผ๋ฉฐ, ๊ตฌ์„ฑ์›์ด ๋ฐ”๋€ ๋’ค ์žฌ๋ถ„์„ํ•˜๋ฉด ํ˜„์žฌ ํ†ตํ•ฉ ํŒŒ์ผ์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค. Download analysis JSON ๋˜๋Š” ํ‰๊ท  PNG/CSV ZIP์„ ๋‚ด๋ ค๋ฐ›๊ณ , ์„œ๋ฒ„ ๋ฐฑ์—…์—๋Š” current-run, runs, batch-analyses, result-groups๋ฅผ ํ•จ๊ป˜ ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. ๋ฐฑ์—…์—๋Š” ๋‘ ์Šฌ๋กฏ๊ณผ ์ž‘์—… ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ํ•จ๊ป˜ ๋ณด์กดํ•˜์‹ญ์‹œ์˜ค. ํ†ตํ•ฉ ์ž‘์—…์˜ ์‹คํŒจยท์ œ์™ธ ๊ธฐ์ค€๊ณผ ํ‘œ๋ณธ ์ˆ˜ ํ•ด์„์€ ํ†ตํ•ฉ ํ‰๊ท  ์‚ฌ์šฉ๋ฒ•์— ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ณธ ๋ณ€๊ฒฝ๊ณผ ์‹ ๋ขฐ์„ฑ ํ‘œ์‹œ

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

๋ถ„์„ ์žฌ์‚ฌ์šฉ์€ scenario.yaml, experiment.json, events.jsonl, observations.jsonl์˜ ํ‘œ๋ณธ ํ•ด์‹œ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋กยท์ƒํƒœ ์กฐํšŒ์—์„œ๋Š” NAS ๋กœ๊ทธ๋ฅผ ์ฝ์ง€ ์•Š๋Š” ๊ฐ€๋ฒผ์šด ์›๋ณธ revision์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ๋งŒ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. Images ยท Check, Batch mean ยท Check๋Š” ๋ณ€๊ฒฝ๋œ ํžŒํŠธ์˜ ํ‘œ๋ณธ์„ ์ œํ•œ๋œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์—์„œ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ํ‘œ๋ณธ ํ•ด์‹œ์™€ ๋ถ„์„๊ธฐ ๋ฒ„์ „์ด ๊ฐ™์œผ๋ฉด ์ˆ˜์ • ์‹œ๊ฐ๋งŒ ๋ฐ”๋€ ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•ด ๊ธฐ์กด ๋ถ„์„ ํŒŒ์ผ๊ณผ ์Šค๋ƒ…์ƒท์„ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ํฌ๊ธฐ์˜ ๋ณ€๊ฒฝ์ด ํ‘œ๋ณธ ๋ฐ–์— ์žˆ์œผ๋ฉด ๋†“์น  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Reanalyze๋Š” ํ•ญ์ƒ ์ž…๋ ฅ์„ ์ฝ๊ณ  ๋‹ค์‹œ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ ํ•œ๋„ยท์œ„์น˜ ์„ ํƒยทํ˜•์‹์€ ํ‘œ๋ณธ ๋น„๊ต ๊ณ„์•ฝ์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค. ๋ฐฐ์น˜ ํ•ด์‹œ๋Š” ๊ตฌ์„ฑ์›๊ณผ ์‹œ๋„ ๊ฒฐ๊ณผ๋„ ๋ฐ˜์˜ํ•˜๋ฉฐ, ์ œ์™ธ๋œ run์˜ ํ†ต๊ณ„์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋กœ๊ทธ์™€ ๋ฉ”๋ชจ๋Š” ํ‰๊ท ์„ ๋ฌดํšจํ™”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด ์ „์ฒด ํ•ด์‹œ ๊ธฐ๋ฐ˜ ๋ถ„์„์€ ์›๋ณธ revision์ด ๊ฐ™์œผ๋ฉด ์œ ์ง€ํ•˜๊ณ , revision ๋ณ€๊ฒฝ ์‹œ ํ•œ ๋ฒˆ ๊ณ„์‚ฐํ•ด ํ‘œ๋ณธ ๊ธฐ์ค€์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ•ด์‹œ๊ฐ€ ์—†๋Š” ๋ถ„์„๋„ ๊ธฐ์ค€ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธยท๊ต์ฒด ์ค‘์—๋„ ๊ธฐ์กด ์™„๋ฃŒ ๋ถ„์„๊ณผ ๋‹ค์šด๋กœ๋“œ๋Š” ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

Controller๊ฐ€ ๋กœ๊ทธ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ฑฐ๋‚˜ Local โ†’ Archived๋กœ ์ด๋™ํ•  ๋•Œ ํŒŒ์ผ ๋ฐฐ์น˜๋งŒ ๋ฐ”๋€Œ๋ฉด ์›๋ณธ revision์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋™์ผํ•œ ๊ฐœ๋ณ„ยท๋ฐฐ์น˜ ๋ถ„์„์„ ๋‹ค์‹œ ์—ด ๋•Œ NAS ๋กœ๊ทธ ์ „์ฒด์˜ ํ•ด์‹œ๋ฅผ ์ถ”๊ฐ€๋กœ ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ์•„์นด์ด๋ธŒ manifest์— ํŒŒ์ผ ๋ฐฐ์น˜ fingerprint์™€ ์›๋ž˜ revision์„ ๊ธฐ๋กํ•˜๋ฉฐ, ์žฌ์‹œ์ž‘ ํ›„์—๋„ fingerprint๊ฐ€ ์ผ์น˜ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋Šฆ์€ telemetry๋‚˜ ์›๋ณธ ๊ต์ฒด๋Š” ์ด๋ฅผ ๋ฌดํšจํ™”ํ•˜๊ณ  ํฌ๊ธฐยทmtime์„ ์œ ์ง€ํ•œ ์žฌ์ž‘์„ฑ๋„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋™ ์ค‘ ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ์ด์ „ ์•„์นด์ด๋ธŒ๋ฅผ ๋ณต์›ํ•œ ๊ฒฝ์šฐ์—๋Š” ์ •์ƒ ํ•ด์‹œ ํ™•์ธ์ด ํ•œ ๋ฒˆ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์‹คํ—˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉด ๊ธฐ์กด ํŒŒ์ผ์„ ์œ ์ง€ํ•˜๊ณ  ๋ณด๊ด€ยท๊ฒ€์ฆ์„ ๋‹ค์‹œ ์˜ˆ์•ฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Mean metrics and contributing run counts์—๋Š” ์‹ค์ œ ์‹œ์ž‘ํ•œ ์‹œ๋„, ์‹คํŒจยท์ทจ์†Œยท์ค‘๋‹จยท์žฌ์‹œ๋„ ์ˆ˜์™€ ๋ฐ์ดํ„ฐ ๋ถˆ์™„์ „ยท์‹คํ–‰ ํ™˜๊ฒฝ ๋ณ€๊ฒฝ ๊ฒฝ๊ณ ๋ฅผ ํ•จ๊ป˜ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจ์œจ์€ ๊ธฐ๋ก๋œ ์ „์ฒด ์‹œ์ž‘ ์‹œ๋„ ์ค‘ ์‹คํŒจํ•œ ๋น„์œจ์ด๋ฉฐ ์‹œ์ž‘ํ•˜์ง€ ์•Š์€ ๋Œ€๊ธฐ ๊ธฐ๋ก์€ ๋ถ„๋ชจ์—์„œ ์ œ์™ธํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ท ์€ ๊ณ„์† ์ตœ์‹  ์™„๋ฃŒ ํšŒ์ฐจ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์‹œ๋„๋ฅผ ์‚ญ์ œํ•ด๋„ ๊ฒฐ๊ณผ ์ด๋ ฅ์€ ๋ฐฐ์น˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋‚จ๊ธฐ๋ฉฐ, ์ด ๊ธฐ๋ก์„ ๋„์ž…ํ•˜๊ธฐ ์ „์— ์‚ญ์ œํ•œ ๊ณผ๊ฑฐ ์‹œ๋„์˜ ๊ฒฐ๊ณผ๋Š” unknown์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๊ทธ๋ฃน์—๋Š” Controller/Agent ๋นŒ๋“œ, ํ™•์ธ ๊ฐ€๋Šฅํ•œ ์‹ค์ œ Peer ์ด๋ฏธ์ง€, Agent ์‹คํ–‰ ์ธ์Šคํ„ด์Šค์™€ ์šฉ๋Ÿ‰์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ๊ธฐ๋ก์˜ ๋ˆ„๋ฝ๋„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ๋ถ€ํ•˜ยท๋„คํŠธ์›Œํฌ ๋ณ€ํ™” ์ „์ฒด๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์„ ํ•˜๋‚˜์˜ ํ‰๊ท ์œผ๋กœ ํ•ด์„ํ•˜๊ธฐ ์ „์— ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

ํ™œ์„ฑ Run์˜ Recording experiment dataโ€ฆ, **Cleaning up Peers and collecting final logsโ€ฆ**๋Š” ์ค‘๋ฆฝ์ ์ธ ์ƒ‰์ƒ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ธฐ Run์—๋Š” ๋ถˆํ•„์š”ํ•œ ์ •๋ฆฌ ๋Œ€๊ธฐ ๊ฒฝ๊ณ ๋ฅผ ๋ถ™์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Peer๋ฅผ ์œ ์ง€ํ•œ ์™„๋ฃŒ ๋‹จ์ผ Run์€ **Peers retained ยท Recording experiment dataโ€ฆ**๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ •๋ฆฌ ์‹คํŒจ, ๋ถˆ์™„์ „ยท๋ฏธํ™•์ธ ๋ฐ์ดํ„ฐ, ์ค‘๋‹จ๋˜์–ด ํ™•์ธํ•˜์ง€ ๋ชปํ•œ ์ˆ˜์ง‘์€ ๊ฒฝ๊ณ ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์ •๋ฆฌยท์ˆ˜์ง‘์ด ๋ชจ๋‘ ์™„๋ฃŒ๋˜๋ฉด ์ถ”๊ฐ€ ๋ฌธ๊ตฌ๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ๊ธฐ๋ก๊ณผ NAS ๋ณด๊ด€

Controller๋Š” runs/๋ฅผ ๋А๋ฆด ์ˆ˜ ์žˆ๋Š” ์™ธ๋ถ€ ์ €์žฅ์†Œ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์‹คํ—˜์˜ ์‹œ๋‚˜๋ฆฌ์˜คยท์ƒํƒœยทtelemetryยท๊ด€์ธกยท๋ฉ”๋ชจ๋Š” **๋กœ์ปฌ <data-dir>/current-run/<run-id>/**์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. NAS์—๋Š” runs/๋งŒ ๋งˆ์šดํŠธํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ž์ฒด์™€ current-run/์€ ๋กœ์ปฌ ์˜๊ตฌ ์ €์žฅ์†Œ์— ๋‘์‹ญ์‹œ์˜ค. ๊ธฐ์กด NAS ๊ฒฐ๊ณผ๋Š” ์‹œ์ž‘ ์‹œ์™€ ์•ฝ 1๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฐœ๊ฒฌํ•˜๋ฉฐ ํฐ ๋กœ๊ทธ๋ฅผ ๋กœ์ปฌ๋กœ ๋‹ค์‹œ ๋ณต์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ์ดˆ ๋ฐœ๊ฒฌ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๊ณ  ํ™”๋ฉด์˜ ์ €์žฅ์†Œ ์ƒํƒœ์—์„œ ๊ฒ€์ƒ‰ ์ค‘ ์—ฌ๋ถ€๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ๋ณด๊ด€ ์ž‘์—…์ž๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ runs/์— ๋ณต์‚ฌํ•˜๊ณ  ๋™๊ธฐํ™”ยทSHA-256 ๊ฒ€์ฆยท๋ณด๊ด€ manifest ๊ฒŒ์‹œ๋ฅผ ๋งˆ์นœ ๋’ค ๋ณต์‚ฌ๋œ ๋กœ์ปฌ ๋กœ๊ทธ์™€ ํฐ ๊ฐœ๋ณ„ ๋ถ„์„ ํŒŒ์ผ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ ๋ณด๊ด€์€ ์ˆจ๊น€ .incoming-<run-id> ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์ค€๋น„ํ•œ ํ›„ ํ™•์ •ํ•ฉ๋‹ˆ๋‹ค. current-run/์—๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค, ์‹คํ—˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ, ๋ฉ”๋ชจ, ๋ถ„์„ ์ž‘์—… ์ƒํƒœ์™€ .kpl-archive.json์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž‘์€ ์ธ๋ฑ์Šค๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜์—ฌ NAS ์‘๋‹ต๊ณผ ๊ด€๊ณ„์—†์ด ๋ชฉ๋กยท๋ฉ”๋ชจยท์‚ญ์ œยท๋ณต๊ตฌ ํŒ๋‹จ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Run ๋ฉ”๋ชจ๋Š” ์ฆ‰์‹œ ๋กœ์ปฌ์— ์ €์žฅํ•˜๊ณ  ๋‚˜์ค‘์— NAS์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜ ๋ฉ”๋ชจ๋Š” ๋ณ„๋„์˜ ๋กœ์ปฌ result-groups/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

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

ํ™œ์„ฑยท๋Œ€๊ธฐ ์‹คํ–‰, ์‚ด์•„ ์žˆ๋Š” Peer๊ฐ€ ํ™•์ธ๋˜๋Š” ์‹คํ–‰๊ณผ ๋ถ„์„ ์ž‘์—… ์ง„ํ–‰ ์ค‘์ธ ๊ฒฐ๊ณผ๋Š” ๋กœ์ปฌ์— ๋‘ก๋‹ˆ๋‹ค. ์—ด๋ ค ์žˆ๋Š” ๋‘ ๋กœ๊ทธ ๋ชจ๋‘ ๋งˆ์ง€๋ง‰ ๊ธฐ๋ก ํ›„ 5์ดˆ๊ฐ€ ์ง€๋‚œ ๋‹ค์Œ ๋ถ„๋ฆฌํ•˜๋ฉฐ, ์‹คํ—˜์ด ์‹คํ–‰ ์ค‘์ด๋ฉด 256 KiB ์ฒญํฌ ์‚ฌ์ด์—์„œ ๋ณต์‚ฌ์™€ ๊ฒ€์ฆ์„ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์œ ํœด ์ƒํƒœ์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ณต์‚ฌยท๊ฒ€์ฆ์€ ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค 32 MiB/s๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋‹จ๊ณ„๊ฐ€ ๋ชจ๋‘ ๋๋‚œ ๋’ค ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋ฏ€๋กœ ์ „์ฒด ๋ณด๊ด€ ์ฒ˜๋ฆฌ๋Ÿ‰์€ ์ด๋ณด๋‹ค ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๋ฐœํ–‰ํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ ์ž‘์—…์€ ์ทจ์†Œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ณ  ๋ช…์‹œ์  ๋‹ค์šด๋กœ๋“œยท๋ถ„์„๋„ NAS ํ†ต์‹ ์„ ๋ฐœ์ƒ์‹œํ‚ค๋ฏ€๋กœ NAS์™€ ์‹คํ—˜์ด ๊ฐ™์€ NIC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌผ๋ฆฌ์ ์ธ ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

์ „์†ก ์ „ ๋กœ๊ทธ๋ฅผ ๋ถˆ๋ณ€ ์กฐ๊ฐ์œผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋กœ๊ทธ๊ฐ€ ๋ณด๊ด€๋œ ๋’ค ๋„์ฐฉํ•˜๋Š” telemetry๋„ ํ•ญ์ƒ ๋กœ์ปฌ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋‹ค์šด๋กœ๋“œ์™€ ๋ถ„์„์€ NAS ์กฐ๊ฐ๊ณผ ์บก์ฒ˜ํ•œ ๋กœ์ปฌ ํ›„์† ๊ธฐ๋ก์„ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ ๋กœ๊ทธ๋กœ ํ•ฉ์น˜๋ฉฐ, ์ •๋ฆฌ ๋„์ค‘ ์ค‘๋‹จ๋˜์–ด ๊ฐ™์€ ์กฐ๊ฐ์ด ์–‘์ชฝ์— ๋‚จ์•„๋„ ์ค‘๋ณต ๊ณ„์‚ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ „์ฒด ๊ฒฐ๊ณผ๋Š” ๋‹ค์šด๋กœ๋“œยท๋ถ„์„ API๋กœ ์กฐํšŒํ•˜์‹ญ์‹œ์˜ค. ๋Šฆ์€ ๋กœ๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด NAS์˜ events.jsonl์€ ์ฒซ ์กฐ๊ฐ๋งŒ ๋‹ด์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง์ ‘ ๋ณต์‚ฌํ•  ๋•Œ๋Š” .kpl-archive.json๊ณผ ๋ชจ๋“  ๋กœ๊ทธ ์กฐ๊ฐยท๋ถ„์„ ๊ฐ์ฒด๋ฅผ ํ•จ๊ป˜ ๋ณด์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Local, Archive pending, Archiving, Archived๋Š” ์‹คํ—˜ ์„ฑ๊ณตยท์‹คํŒจ์™€ ๋ณ„๋„์˜ ์ €์žฅ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. NAS ์žฅ์•  ์‹œ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ ๋กœ์ปฌ ๊ธฐ๋ก๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ž‘์—…์€ ๊ณ„์†ํ•ฉ๋‹ˆ๋‹ค. NAS๋กœ ์˜ฎ๊ธด ์›๋ณธ์˜ ๋‹ค์šด๋กœ๋“œยท๋ถ„์„์—๋Š” NAS ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฉˆ์ถ˜ ๋งˆ์šดํŠธ๊ฐ€ ํ•˜๋‚˜์˜ ๋ณด๊ด€ ์ž‘์—…์ž๋‚˜ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ NAS ์ฝ๊ธฐ๋ฅผ ๋ถ™์žก์„ ์ˆ˜ ์žˆ์ง€๋งŒ NAS ํŒŒ์ผ ์ž‘์—…์ด ์‹คํ—˜์˜ ์ €์žฅ ์ž ๊ธˆ์„ ์žก์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ์ž‘ํ•˜๋ฉด ๋ฏธ์™„๋ฃŒ ๋ณด๊ด€์„ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ—˜ ์ž์ฒด๋Š” ์—ฌ์ „ํžˆ ์ค‘๋‹จ ์ƒํƒœ์ด๋ฉฐ ๊ธฐ์กด ์ด์–ดํ•˜๊ธฐยท์žฌ์‹œ๋„ ์ ˆ์ฐจ๋กœ ์žฌ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

Saved results๋Š” ์‹คํ—˜๊ณผ ๋ถ„์„ ์ž‘์—…์ด ๋ชจ๋‘ ๋๋‚œ ๋’ค์—๋„ ๊ฐ€๋ฒผ์šด ์ €์žฅ ์ƒํƒœ ์กฐํšŒ๋กœ ๋ณ€๊ฒฝ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๊ฐ€ ๋ณด์ด๋Š” ๋™์•ˆ ๊ธฐ๋ณธ 15์ดˆ ์ฃผ๊ธฐ๋กœ ํ™•์ธํ•˜๊ณ , ์ €์žฅ ๋ฆฌ๋น„์ „์ด ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ๋กœ์ปฌ ๊ฒฐ๊ณผ ๋ชฉ๋ก์„ ๋‹ค์‹œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋ฆฌ๋น„์ „์ด ๊ทธ๋Œ€๋กœ์ด๋ฉด ์ „์ฒด ๋ชฉ๋ก์„ ๋ฐ˜๋ณต ์กฐํšŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋กœ ๋Œ์•„์˜ค๋ฉด ์ฆ‰์‹œ ํ™•์ธํ•˜๋ฉฐ, ๋ชฉ๋ก ์š”์ฒญ ๋„์ค‘ ์ƒ๊ธด ๋ณ€๊ฒฝ์€ ์š”์ฒญ ์™„๋ฃŒ ํ›„ ๋‹ค์‹œ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์กฐํšŒ ์‹คํŒจ ์‹œ ํ‘œ์‹œ ์ค‘์ธ ๋ชฉ๋ก์„ ์œ ์ง€ํ•˜๊ณ  ๋‹ค์Œ ์ €์žฅ ์ƒํƒœ ์กฐํšŒ ๋•Œ ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋’ค๋Šฆ์€ ๋ฉ”๋ชจ๋‚˜ telemetry๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ์ƒˆ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•„์นด์ด๋ธŒํ•  ๋•Œ๊นŒ์ง€ Archived๊ฐ€ Archive pending์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ๋‚ด์šฉ์ด ๊ฐ™์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์žฌ๊ธฐ๋ก์€ ์›๋ณธ ํŒŒ์ผ์„ ์žฌ์ „์†กํ•˜์ง€ ์•Š๊ณ  manifest์˜ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ๊ฐ์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ์†Œ ์ƒํƒœ ์ค„์€ ๋ณต์‚ฌยท๊ฒ€์ฆยท์ตœ์ข… ๋ฐ˜์˜ยท๋ณด๊ด€์†Œ ๊ฒ€์ƒ‰/์‚ญ์ œ์™€ Archiving paused while experiments are running์„ ์ •์ƒ ์ž‘์—… ์ƒํƒœ๋กœ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์ž‘์—… ์ „์ฒด๊ฐ€ 15์ดˆ ๊ฑธ๋ ธ๋‹ค๋Š” ์ด์œ ๋กœ ๊ฒฝ๊ณ ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์•„์นด์ด๋ธŒ I/O ๋‹จ๊ณ„์—์„œ ์ง„ํ–‰ ๊ธฐ๋ก์ด 15์ดˆ ๋„˜๊ฒŒ ๋ฉˆ์ถ˜ ๊ฒฝ์šฐ ์ง€์—ฐ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ „์†ก ์ œํ•œ๊ณผ ์‹คํ—˜ ์ค‘ ๋Œ€๊ธฐ ์ •์ฑ…์€ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

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

CLI์™€ Swarm์˜ ๊ธฐ๋ณธ๊ฐ’์€ ์‹คํ—˜ ์‹œ์ž‘ ์ „ ๋กœ์ปฌ ์—ฌ์œ  1 GiB์ž…๋‹ˆ๋‹ค. --run-min-free-bytes ๋˜๋Š” KPL_RUN_MIN_FREE_BYTES๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด sh scripts/swarm.sh configure KPL_RUN_MIN_FREE_BYTES=2147483648 ํ›„ ์žฌ๋ฐฐํฌํ•˜๋ฉด 2 GiB๋ฅผ ์š”๊ตฌํ•˜๋ฉฐ 0์€ ์—ฌ์œ  ๊ณต๊ฐ„ ๊ฒ€์‚ฌ๋ฅผ ๋•๋‹ˆ๋‹ค. ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฉด ์ƒˆ ์ œ์ถœ์€ 507์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ๋ฐฐ์น˜๋Š” ๋‹ค์Œ Run์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•˜๊ณ  ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€๊ธฐ ์ค‘ ๋ณด๊ด€์œผ๋กœ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๊ณต๊ฐ„ ์˜ˆ์•ฝ์ด๋‚˜ Run๋ณ„ ํฌ๊ธฐ ์ œํ•œ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๊ฐ€์žฅ ํฐ Run, ๋ถ„์„ ์ถœ๋ ฅ๊ณผ NAS ์žฅ์•  ๋™์•ˆ ์Œ“์ผ ๋ถ„๋Ÿ‰์„ ์ˆ˜์šฉํ•  ๋กœ์ปฌ ๊ณต๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ ์ •์ƒ ์—ฐ๊ฒฐํ•œ ๋’ค ๋กœ์ปฌ .archive-store-id์™€ runs/.kpl-store-id๋กœ ๋ณด๊ด€ ๋Œ€์ƒ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์šดํŠธ๊ฐ€ ์‚ฌ๋ผ์ง€๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋กœ ๋ฐ”๋€Œ๋ฉด ์•„๋ž˜์˜ ๋นˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ๋ณด๊ด€์„ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ ์ดˆ๊ธฐํ™” ์ „์— ์˜๋„ํ•œ NAS๊ฐ€ ๋งˆ์šดํŠธ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ๋‘ ์‹๋ณ„ ํŒŒ์ผ์„ ๋ฐฑ์—…์— ํฌํ•จํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์ƒ ๋ณ€๊ฒฝ์€ ์ €์žฅ์†Œ ์ด์ „ ์ ˆ์ฐจ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹คํ–‰ ์ค‘ ์‹๋ณ„ ํŒŒ์ผ๋งŒ ์‚ญ์ œํ•ด์„œ ์šฐํšŒํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ €์žฅ์†Œ์™€ ๋ฐฑ์—…

Swarm์—์„œ KPL_STACK_NAME=kpl์ด๋ฉด control ๋…ธ๋“œ์˜ kpl_controller-data volume์„ /var/lib/kpl/data์— ๋งˆ์šดํŠธํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ํŒŒ์ผ๊ณผ ์œ ์ง€ํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ธ๋ฑ์Šค๋Š” current-run/<run-id>, ๋ณด๊ด€ํ•œ ๊ฐ์ฒด๋Š” runs/<run-id>์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์„œ๋น„์Šค ์žฌ์ƒ์„ฑ๊ณผ swarm.sh remove๋Š” volume์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์›๋ณธ ์ด๋ฒคํŠธ์˜ ์ž๋™ ๋ณด์กด ํ•œ๋„๋‚˜ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ์˜ ๋ณต์ œ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ˆจ๊น€ ํ•ญ๋ชฉ์„ ํฌํ•จํ•œ Controller ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ „์ฒด๋ฅผ ๋ณด์กดํ•˜์‹ญ์‹œ์˜ค.

๋‚ด์šฉ ๋ณด์กดํ•˜๋Š” ํ•ญ๋ชฉ
current-run/ ๋กœ์ปฌ ์‹คํ–‰ ํŒŒ์ผ, ์•„์ง ๋ณด๊ด€ํ•˜์ง€ ์•Š์€ telemetry, ์ตœ์‹  ๋ฉ”๋ชจยท๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ๋ณด๊ด€ ์ธ๋ฑ์Šค
runs/ ์ˆจ๊น€ manifest, ๋ถˆ๋ณ€ ๋กœ๊ทธ ์กฐ๊ฐ๊ณผ ๋ถ„์„ ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•œ NAS/๋กœ์ปฌ ๋ณด๊ด€์†Œ
.archive-store-id ๋กœ์ปฌ ๋ณด๊ด€ ๋Œ€์ƒ ์‹๋ณ„์ž. ์ง์ธ runs/.kpl-store-id์™€ ํ•จ๊ป˜ ๋ณด์กด
.archived-deletions/ ์™„๋ฃŒ๋œ NAS ์‚ญ์ œ ์ž‘์—… ๊ธฐ๋ก
scenarios/ ์žฌ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
library-groups.json ์ €์žฅ ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ๊ฒฐ๊ณผ ๋ฌถ์Œ์˜ ๊ณต์œ  ๊ทธ๋ฃน ๋ฐ ์†Œ์†
library-group-admission.json ์ค‘๋‹จ๋œ ๊ฒฐ๊ณผ ๊ทธ๋ฃน ๋ฐฐ์ •์„ ๋ณต๊ตฌํ•˜๋Š” ์ž„์‹œ ๋กœ์ปฌ ๊ธฐ๋ก. ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ํ•จ๊ป˜ ๋ณด์กด
result-groups/ ๋ฐฐ์น˜ ๋ฉ”๋ชจ, ํ™•์ • ์ดํ•ฉ, ์ ‘์ˆ˜ ์˜ˆ์•ฝ, ์ตœ์‹  ์‹œ๋„์™€ ์‚ญ์ œํ•œ ์‹œ๋„์˜ ๊ฒฐ๊ณผ ์ด๋ ฅ
run-ownership/ ์žฌ์‹œ์ž‘ยท์‹œ๋„ ์‚ญ์ œ ํ›„ Peer ์ •๋ฆฌ์— ์‚ฌ์šฉํ•˜๋Š” Agent ์†Œ์œ  ์ •๋ณด
run-submissions/ ์ตœ์ดˆ ์ œ์ถœ์˜ ์ค‘๋ณต ์‹คํ–‰์„ ๋ง‰๋Š” ์ ‘์ˆ˜ ๊ธฐ๋ก
batch-analyses/ ์ €์žฅ๋œ ๋ฐ˜๋ณต ํ‰๊ท 
agent-capacities.json Agent ID๋ณ„ ์šฉ๋Ÿ‰ ์˜ˆ์™ธ
.deleted-results/ ๋Šฆ์€ telemetry๊ฐ€ ์‚ญ์ œ ๊ฒฐ๊ณผ๋ฅผ ์žฌ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ํ‘œ์‹
logs/ ํšŒ์ „ํ•˜๋Š” ์ ‘๊ทผยท์ธ์ฆ ์ด๋ ฅ

๊ทธ๋ฃน ๋ฐฐ์ • ๋„์ค‘ ์ค‘๋‹จ๋˜๋ฉด Controller ์‹œ์ž‘ ์‹œ ๋กœ์ปฌ ๋ฐฐ์น˜ ์ ‘์ˆ˜ ํ™•์ • ๊ธฐ๋ก์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ ‘์ˆ˜๊ฐ€ ํ™•์ •๋œ ๋ฐฐ์น˜๋Š” ํ˜„์žฌ ์†Œ์†์„ ์œ ์ง€ํ•˜๊ณ , ์ ‘์ˆ˜๋˜์ง€ ์•Š์€ ๋ฐฐ์น˜์˜ ๋Œ€๊ธฐ ์ค‘ ๋ฐฐ์ •์€ ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค. ์ดํ›„ library-group-admission.json์„ ์ œ๊ฑฐํ•˜๋ฉฐ, ๋‚˜์ค‘์— ์ˆ˜๋™์œผ๋กœ ์ด๋™ํ•œ ์†Œ์†์ด๋‚˜ ์‚ญ์ œํ•œ ๊ทธ๋ฃน์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋ณต๊ตฌ ๋˜๋Š” ๋ฐฐ์น˜ ๊ธฐ๋ก์„ ์ฝ์„ ์ˆ˜ ์—†์œผ๋ฉด ์–ด๋–ค ๋ฐฐ์ •์„ ์œ ์ง€ํ• ์ง€ ์ถ”์ •ํ•˜์ง€ ์•Š๊ณ  ์˜ค๋ฅ˜๋กœ ์‹œ์ž‘์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

์‹คํ—˜ ZIP์€ ํ•˜๋‚˜์˜ ์‹คํ—˜ ๊ธฐ๋ก์ด๋ฉฐ ์ „์ฒด Controller ๋ฐฑ์—…์ด ์•„๋‹™๋‹ˆ๋‹ค. PrometheusยทGrafana ์ด๋ ฅ๊ณผ ์„ค์ •์€ ๋ณ„๋„ volume์„ ๋ฐฑ์—…ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ง ๋ณด์กด์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค. ์‹คํ–‰ ํŒŒ์ผ์„ ๋ณต์›ํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์„ธ์…˜ยท์‹ค์‹œ๊ฐ„ ์นด์šดํ„ฐ๋ฅผ ๋ณต์›ํ•˜๊ฑฐ๋‚˜ ๋ฏธ์™„๋ฃŒ ์‹คํ–‰์„ ์ž๋™ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณต๊ตฌ ์ ˆ์ฐจ๋ฅผ ์„ ํƒํ•ด ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. Volume ์œ„์น˜, ์“ฐ๊ธฐ ๋‚ด๊ตฌ์„ฑ๊ณผ ์ข…๋ฃŒ ์กฐ๊ฑด์€ ๋ฐฐํฌ ์ €์žฅ์†Œ์™€ ์žฌ์‹œ์ž‘์„ ์ฐธ๊ณ ํ•˜์‹ญ์‹œ์˜ค.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ