๋๋ Setting and expiration time
๋์์ธ ๊ฒฐ์ ์์ ๋๋ฝ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ์๋ฎฌ๋ ์ดํธํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ด๋์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ์ผ๋์ ๋๊ณ ์๋ ์ฌ์ฉ ์ฌ๋ก๋ ์น ์ฑ ์์ ์บ์๋ ์ญ๋ฐฉํฅ ํ๋ก์๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค. ํ์ด์ง๊ฐ X๋ถ ๋์ ์บ์๋์ด์ผ ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ์ ์ด๋ป๊ฒ ์ ๊ทผํ ๊ฒ์ธ์ง ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
(์ฌ๊ธฐ๊ฐ ์ง๋ฌธํ ๊ณณ์ด ๋ง๋์ง ํ์คํ์ง ์์ต๋๋ค.)
groupcache์ ์ค๊ณ๋ฅผ ์ดํดํ๋ ํ ์บ์๋ ํญ๋ชฉ์ ๋ฌดํจํํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ถ์ฐ ์์คํ ์์ ๋งค์ฐ ์ด๋ ต๊ณ ๊ฐ๋น์ผ ํฉ์ ์๊ณ ๋ฆฌ์ฆ(์: paxos)์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ต๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ์บ์ ํค ์์ฒด์ ์๊ฐ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ์ฌ X๋ถ๋ง๋ค ๊ณ ์ ํ ์บ์ ํค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด "foo-12:30"์ ์๊ฐ 12:30์ "foo" ํญ๋ชฉ์ ๊ณ ์ ํ๊ฒ ์ค๋ช ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด 12:40๊น์ง ์ด ํญ๋ชฉ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ ์ ํญ๋ชฉ "foo-12:40"์ด ์์ฑ๋ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ๊ฐ ์ก์ธ์ค๋ฅผ ์ค์งํ๋ฉด ์ด์ ํญ๋ชฉ("foo-12:30")์ด ๊ฒฐ๊ตญ ๋ง๋ฃ๋ฉ๋๋ค.
๋ถ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ๋ฒํธ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ๊ฒ์ํ ์ ์๋ ๊ฒฝ์ฐ(์: doozerd, zookeeper ๋๋ ์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฃจ์ ์ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์) ์ด ๊ฐ์ ๋ฒํธ๋ฅผ ์บ์ ํค์ ์ผ๋ถ๋ก ์ธ์ฝ๋ฉํ ์๋ ์์ต๋๋ค. ๋๋ "Last-Modified" ๋๋ "ETag" HTTP ํค๋๋ฅผ ์น ํ๋ก์์์ ์ผ์ข ์ ๊ฐ์ ๋ฒํธ๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
์, tux21b๊ฐ ๋งํ ๊ฒ์ ๋๋ค. (์ ์ด๋ ๋น๋ถ๊ฐ์ ์๋์ ์ผ๋ก ์๋ตํ์ต๋๋ค.)
๊ฐ์ ์ ๊ดํ ์ ์์ ํด์ฃผ์ @tux21b ์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
groupcache์ ์ค๊ณ๋ฅผ ์ดํดํ๋ ํ ์บ์๋ ํญ๋ชฉ์ ๋ฌดํจํํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋ถ์ฐ ์์คํ ์์ ๋งค์ฐ ์ด๋ ต๊ณ ๊ฐ๋น์ผ ํฉ์ ์๊ณ ๋ฆฌ์ฆ(์: paxos)์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์๋ต๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ์บ์ ํค ์์ฒด์ ์๊ฐ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ์ฌ X๋ถ๋ง๋ค ๊ณ ์ ํ ์บ์ ํค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด "foo-12:30"์ ์๊ฐ 12:30์ "foo" ํญ๋ชฉ์ ๊ณ ์ ํ๊ฒ ์ค๋ช ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ด 12:40๊น์ง ์ด ํญ๋ชฉ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ ์ ํญ๋ชฉ "foo-12:40"์ด ์์ฑ๋ ์ ์์ผ๋ฉฐ ํด๋ผ์ด์ธํธ๊ฐ ์ก์ธ์ค๋ฅผ ์ค์งํ๋ฉด ์ด์ ํญ๋ชฉ("foo-12:30")์ด ๊ฒฐ๊ตญ ๋ง๋ฃ๋ฉ๋๋ค.
๋ถ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ ๋ฒํธ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ ๊ฒ์ํ ์ ์๋ ๊ฒฝ์ฐ(์: doozerd, zookeeper ๋๋ ์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฃจ์ ์ ์ฌ์ฉํ์ฌ ์ํํ ์ ์์) ์ด ๊ฐ์ ๋ฒํธ๋ฅผ ์บ์ ํค์ ์ผ๋ถ๋ก ์ธ์ฝ๋ฉํ ์๋ ์์ต๋๋ค. ๋๋ "Last-Modified" ๋๋ "ETag" HTTP ํค๋๋ฅผ ์น ํ๋ก์์์ ์ผ์ข ์ ๊ฐ์ ๋ฒํธ๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค.