๋คํธ์ํฌ ์๋ฒ์์ ์ฅ์น ๋งค์นญ ์ต์ ํ
Redis I/O์ ๊ฒฝ์ฐ DevAddr ์ฌ์ฌ์ฉ์ ๋๋ฆฌ๊ณ DevAddr ํฌ๊ธฐ๋ฅผ ๋๋ฆด ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๋ฐ ์ ๋ฐ์ ์ธ ์ปดํจํ ์ฑ๋ฅ.
ํ์ฌ NS๋ DevAddr์ ์ํด ์ฅ์น ๋ฒ์๋ฅผ ์ง์ ํ๊ณ proto๋ฅผ ๋์ฝ๋ฉํฉ๋๋ค. protos๋ mac ์ํ์ ์ต๊ทผ ์ ๋งํฌ ๋ฐ ๋ค์ด๋งํฌ ๋ฉ์์ง๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ ์ค๋ณต DevAddr์ ๋ง์ protos(์๋ฐฑ)๊ฐ ์์ ์ ์์ต๋๋ค.
์ผ์นํ๋ ์ฅ์น๋ฅผ ๋ก๋ํ๊ธฐ ์ ์ UID๋ก ์ฅ์น์ ๋ํ ์ ๋งํฌ๋ฅผ ์ผ์น์ํค๊ธฐ ์ํด Redis์์ ๊ตฌ์ฒดํ๋ ๋ณด๊ธฐ๊ฐ ํ์ํฉ๋๋ค.
์ ์ฉ ํค(๊ธฐ๋ณธ์ ์ผ๋ก DevAddr, FCnt, NwkSIntKeys ๋ฐ UID)์ ์ผ์น๋ฅผ ์ํ ๊ด๋ จ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
์ ๋ ฌ๋ ์งํฉ ๋ฐ/๋๋ ํด์ ๋งต์ FCnt์ ์ํ Redis ์ ๋ ฌ ๋ฐ ์ฟผ๋ฆฌ ์์, ๋ฌด๊ฒฐ์ฑ ํค ๋ฐ UID ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ฏ๋ก ์ ์ฉํ ๊ฒ์ ๋๋ค.
๊ฐ ์ ๋งํฌ ๋ฐ ๊ฐ์ ์๋ฝ์์ ์ด ๊ตฌ์ฒดํ๋ ๋ณด๊ธฐ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
๊ธฐ์กด ๋งค์นญ ์ฒด๊ณ๋ก ๋์ฒดํ์ฌ ๋กค๋ง ๋ง์ด๊ทธ๋ ์ด์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ ์คํธ์์ Redis ํค์ ํด๋น ๊ฐ์ ์ ์ฌ์ ์ผ๋ก ์ด์ค์ ํ๋ ๋จ์ ํ ์คํธ.
๊ฒํ ๊ฐ๋ฅ
๋ ๋์ ์ ๊ทผ ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ณต๊ฐ์ ๋ง์ด ์ฐจ์งํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋กํ ์ค์์ ๋ถ๋ฆฌํ๊ณ ๋ณ๋๋ก ์ ์ฅํฉ๋๋ค(์: recent_uplinks
, recent_downlinks
๋ฑ, ๋ง์ฌ๋ง๋ ํ๋กํ ์ค ๋์ ๋ชฉ๋ก์ ์ ์ฅํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์
๋๋ค. ์ฆ, ์ค์ ๋ก ๊ธฐ์กด ๋ฉ์์ง๋ฅผ ์ฟผ๋ฆฌํ ํ์๊ฐ ์์ง๋ง ์ ๋ฉ์์ง๋ฅผ ์ถ๊ฐํ๋ฉด ํจ์ฌ ํจ์จ์ ์ด์ง๋ง ํ๋กํ ํ์
์ผ๋ก ์์ํด์ ๊ฑฐ๊ธฐ์์ ๊ฐ๋ด
์๋ค.
ํ๋ ๋ง์คํฌ๊ฐ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ proto ๋ถํ ์ ๋งค์ฐ ๊ฐ๋จํ๊ณ Redis ๋ ์ง์คํธ๋ฆฌ ๊ตฌํ์์ ์์ ํ ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ์ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ns:devices:uid:foo:bar:recent_uplinks
ns:devices:uid:foo:bar:recent_downlinks
ns:devices:uid:foo:bar:mac_state:recent_uplinks
ns:devices:uid:foo:bar:mac_state:recent_downlinks
ns:devices:uid:foo:bar:pending_mac_state:recent_uplinks
ns:devices:uid:foo:bar:pending_mac_state:recent_downlinks
ns:devices:uid:foo:bar
- ๋๋จธ์ง ํ๋กํ ํ์
์ฌ์ฉ๋์ง ์๋ ํ๋๊ฐ ์ด๋ฏธ ๋ ์ง์คํธ๋ฆฌ์์ ์ฒ๋ฆฌ๋๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์๋์ผ๋ก ๋ฐ์ํฉ๋๋ค.
์ฌ๊ธฐ ์ํ๋ ๋ฌด์์ ๋๊น?
๋๋ ์ด๊ฒ์ด ๋ค์ ์ฃผ ๋ง๊น์ง ๋ณํฉ์ ์ํด ์ค๋น๋ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
๊ตฌํ์ ๋ช ์ฃผ ๋์ ์ํ๋๋ฉฐ ๋ฆฌํฉํ ๋ง ์์
์ ์ํํ ๋ค์ ๊ทธ ์ดํ๋ก ํ
์คํธ๋ฅผ ์กฐ์ ํฉ๋๋ค.
์ฅ์น๊ฐ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ๋ฐํ๋ ์ค๋ฅ๋ฅผ ๋ ๋ช ํํ๊ฒ ๋ง๋๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. ์๋ฅผ ๋ค์ด https://github.com/TheThingsNetwork/lorawan-stack/issues/2394 ๋ฅผ
๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์๋ ์์ง๋ง device_not_found
๋ ์ฅ์น๋ฅผ ์ฐพ์ ์ ์์์ ์๋ฏธํ์ง๋ง DevAddr์ ์ ํ ์ฐพ์ ์ ์๊ฑฐ๋ MIC๊ฐ ์ฐพ์ ํญ๋ชฉ๊ณผ ์ผ์นํ์ง ์์ ์ ์์ต๋๋ค. ๋๋ FCnt๊ฐ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ผ๋ก ํ์ฉ๋์ง ์๋ ๋์ ์ฌ์ค์ ๋ฉ๋๋ค.
์ข์ ์ ์์ด์ง๋ง ์๋์ ์ผ๋ก ๋ณต์กํ ๊ธฐ๋ฅ์ด ๋ง์ด ํฌํจ๋์ด ๊ฒํ ํ๋ ๊ฒ์ ์์ฒญ๋ PR์ด ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค์ ๋จ๊ณ๋ก ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๋ค๊ณ ์๊ฐํฉ๋๋ค.