์๋
์ ์ํธํํ
๋ฅด๋ถ๋ฅดํฌ์์๋ ์ฒซ ๋ฒ์งธ ํ์ด๋๋ผ ํ์, ๋ณ๋ ฌ ๋ฐ ๋ถ์ฐ ์์คํ
์ ์ฉ์
๋๋ค. ์์์ ๋ฐํ ๋ค์ต์คํธ๋ผ ์ ะธ ํ๋ง์ (๋ ์ฌ๋ฆฌ ๋จํฌํธ, ๋ชจ๋ฆฌ์ค ํ๋ฆฌํ ะธ ๋ง์ดํด ์ค์ฝง), ์ปดํ์ผ๋ฌ ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(C++, Go, Java, Kotlin) ์ฐฝ์์, ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ๋ฐ์(Cassandra, CosmosDB, Yandex Database), ์๊ณ ๋ฆฌ์ฆ ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ฐฝ์์ ๋ฐ ์ฐ๊ตฌ์(CRDT, Paxos, wait) -์์ ๋ฐ์ดํฐ ๊ตฌ์กฐ) . ์ผ๋ฐ์ ์ผ๋ก ์ด ์์ ์์๋ ์ด๋ฏธ ํด๊ฐ๋ฅผ ๋ณด๋ด๊ณ , IDE ์ฐฝ์ ์ต์ํํ๊ณ , YouTube์์ ์ฌ์ ๋ชฉ๋ก์ ์ด ์ ์์ต๋๋ค. ์ต๊ณ ์ ๋ณด๊ณ ์ Hydra 2019 - ์์
์ค์ผ์ค๋ฌ๊ฐ ์กฐ๊ธ ๊ธฐ๋ค๋ฆฌ๋๋ก ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ฌํ ํ์๋ ํ ๋ฒ๋ ์ผ์ด๋ ์ ์ด ์์ผ๋ฉฐ ์ด์ ๋ค์ ์ผ์ด๋ ๊ฒ์
๋๋ค. ๋ค์ ์์ด๋ก ๋ ๋ณด๊ณ ์์ ํจ๊ป, ๋ณ๋ ฌ ๋ฐ ๋ถ์ฐ ์ปดํจํ
์ ๋ํด ์ด์ผ๊ธฐํ๋ ๋ฐ ์ด๋ณด๋ค ๋ ์ข์ ์ธ์ด๋ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ฌ๋ฆ์๋ 10์ 11์ผ๊ณผ XNUMX์ผ, ์๋ฅผ ๋ค์ด ์ฐ์ฌ๋ค์ ์บ ๋ธ๋ฆฌ์ง ๋ํ, ๋ก์ฒด์คํฐ ๋ํ, ์ํธ ํํ
๋ฅด๋ถ๋ฅดํฌ ๋ํ์์ ์ฐ๊ตฌํ๊ณ ๊ฐ๋ฅด์น ์๊ฐ์ด ์์ง๋ง ์ผ๋
์ค ๋ค๋ฅธ ์๊ฐ์๋ ๊ทธ๋ค์ ์ํ ์๊ฐ์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ์ง๋ง ์ด๋ฒ์ Hydra๋ ๋ชจ์คํฌ๋ฐ์์ ๊ฐ์ต๋ฉ๋๋ค, ์ปจํผ๋ฐ์ค ์ฐธ๊ฐ์ ๋๋ถ๋ถ์ด ์๋
์ ๋ถ์ฐ ํฉ์ ๋ฐ ํธ๋์ญ์
๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๋ณด๊ณ ์๋ฅผ ๋ฃ๊ธฐ ์ํด ์์ต๋๋ค. ์๋ก์ด Hydra๋ ๋์ฑ ๋ณต์กํ ํ๋ก๊ทธ๋จ, ์๋
์ ์์
๋ค๊ณผ ํจ๊ป ์๋ก์ด ์คํผ์ปค, XNUMX๊ฐ ํ์ ์ฐธ๊ฐ์๋ค ์ฌ์ด์ ๋ถ์ฐ๋ ๋ณ๋ ฌ ํ๋์ฝ์ด์ ํฅ๋ถ์ ๋ํ ์ด๋ฏธ ์ต์ํ ๋๋์ ํน์ง์ผ๋ก ํฉ๋๋ค.
๋น์ํด ์ฅ๊ตฐ์ด ์๋ฅผ ํฅํ๊ฒ ํ์ฌ ์ฆ์ ํ
์ด๋ธ ์์ ์นด๋ ํ ๋ฒ์ ์ฌ๋ ค ๋ด
์๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด Hydra์ ํ๋ก๊ทธ๋จ์ด ๋ ์์ธํ๊ณ ๋ค์ํด์ง๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ง๋๋ฒ์๋ ์ํฑ์ผ๋ก ๊ธ์์ผ๋ ์ด์ ๋ ๋ ๋๊ณ ๊น๊ฒ ํํค์ณ ๋ณด๊ฒ ์ต๋๋ค. ์๋
๊ณผ ๋น๊ตํ์ฌ ์ฐจ์ด์ ์ด ์๋ Hydra 2020 ํ
๋ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Parallel systems:
* Algorithms & data structures
* Memory models
* Compilers, runtime
* Memory reclamation
* Testing & verification
* Hardware issues
* Non-volatile memory
* Transactional memory
* Scheduling algorithms & implementations
* Heterogeneous computing: CPU, GPU, FPGA, etc.
* Performance analysis, debugging, & optimization
Distributed systems:
* Distributed computing
* Distributed machine learning/deep learning
* State machine replication & consensus
* Fault tolerance & resilience
* Testing & verification
* Hardware issues
* Blockchain & Byzantine fault tolerance
* Distributed databases, NewSQL
* Distributed stream processing
* Scheduling algorithms & implementations
* Cluster management systems
* Security
* Performance analysis, debugging, & optimization
* Peer-to-peer, gossip protocols
* Internet of things
ํ ํ์ ํ๋ก๊ทธ๋จ์์ ์ด ๋ชจ๋ ๊ฒ์ ๋ํด ์ด๋ป๊ฒ ์ด์ผ๊ธฐํฉ๋๊น? ๋ค์์ ์ฌ์ฉํ์ฌ ๋น๋๋ ์ ๋ถ์ฐ ์ ์ฅ์์์ ์์
์ ์ ํ์ฑ์ ํ
์คํธํ๋ ๊ฒ๋ณด๋ค ๊ฒฐ์ฝ ๊ฐ๋จํ์ง ์์ต๋๋ค. ์ ญ์ผ, ํ์ง๋ง ์๋ํด ๋ณด๊ฒ ์ต๋๋ค.
์ด๋ฏธ ํ๋ก๊ทธ๋จ์ ์ฐธ์ฌํ๊ณ ์๋ ์ฌ๋์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ ์ค๋ฆฌ๋ค๋ (Cindy Sridharan) - ์ํ๋์์ค์ฝ ์ถ์ ๋ถ์ฐ ์์คํ
๊ฐ๋ฐ์, ๋จํธ์ง ์ ์ ๋ถ์ฐ ์์คํ
๊ด์ฐฐ์ฑ (๊ฐ์ ธ๊ฐ๋ค ๋ฌด๋ฃ ์ ์ ์ฌ๋ณธ) ์ธ๊ธฐ๊ฐ ๋ง์ ๋ธ๋ก๊ทธ, ๊ธฐ์ฌ๊ฐ ํ๋๋ง ์๋ ๊ฒฝ์ฐ "2019๋
์ต๊ณ ์ ๊ธฐ์ ํ ํฌ"๋ฉฐ์น ๋์์ ํด๊ฐ๋ฅผ ์ ์ฝํ ์ ์์ง๋ง ํ๋ณตํ๊ฒ ํด์ค ์ ์์ต๋๋ค. Hydra 2020์์ Cindy๊ฐ ์๋ ค๋๋ฆด ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๋ถ์ฐ ์์คํ
ํ
์คํธ, ์ํ๋ฅผ ์ ์ฅํ๋๋ผ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
๋ง์ดํด ์ค์ฝง (Michael Scott) - ์ฐ๊ตฌ์ ๋ก์ฒด์คํฐ ๋ํ, ๋ชจ๋ Java ๊ฐ๋ฐ์์๊ฒ ์ ์์๋ก ์๋ ค์ง ๋น์ฐจ๋จ ์๊ณ ๋ฆฌ์ฆ ๋ฐ ๋๊ธฐ์ ๋๊ธฐ์ด Java ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์. ๋ฌผ๋ก , Dijkstra ์์ ์์ํ โ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋ค์ค ํ๋ก์ธ์์์ ํ์ฅ ๊ฐ๋ฅํ ๋๊ธฐํ๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ"๊ทธ๋ฆฌ๊ณ ์์ ์ํค๋ฐฑ๊ณผ ํ์ด์ง. ์๋
์ Michael์ Hydra์ ๊ดํด (๋น์ ๋ง์ ๋ฐ๋ฅด๋ฉด) ์ต๊ณ ์ ๋ณด๊ณ ์๋ฅผ ๋์ต๋๋ค. ์ด์ค ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ด์ ๊ทธ๋ ๋ค์์ ๋ํด ์ด์ผ๊ธฐ ํ ๊ฒ์
๋๋ค ํ๋ก์ ํธ ํธ๋๋ฅด ะธ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ก ์์ ํ ์์
, ๋ณ๋ ฌ ํ๋ก์ธ์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ด๋ ํ์๋ (ํ์ด๋ ํ์๋) - ์ฐ๊ตฌ์ ์ผ๋ก ์บ ๋ธ๋ฆฌ์ง ๋ํ, ๋ถ์ฐ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ ์ ์ฐํ ํฉ์์ค, ๊ทธ๋ฆฌ๊ณ ์ ์ฐํ Paxos๋ฅผ ์ผ๋ฐํํ๋ ์์
๊ณผ ํจ์คํธ ํ์์ค. ์๋
์ Heidi๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๊ณ ์๋ํ๋์ง ๋งํ์ต๋๋ค. Paxos ์๊ณ ๋ฆฌ์ฆ ์ ํ๊ตฐ (์ต๊ณ ์ ๋ณด๊ณ ์ ์ค ํ๋) ์ด์ ๋๋ ์ฌ์ด์ ์์ ์ผ์ ์๋ฅผ ๊ฑธ์ด ๋ณด๊ฒ ์ต๋๋ค. Paxos ์ ํธ๊ฐ ๋ฐ Raft ์ง์ง์ โ ๊ทธ๋ฆฌ๊ณ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋์์ง์ ๋ํ ๊ทธ์ ์๊ฒฌ์ ๊ณต์ ํฉ๋๋ค.
๋งํด ํด๋ ํ๋ง (Martin Kleppmann)์ ์๋ง๋ ์ผ์๋ธ๋ฆฌ์ง ๋ํ์ ํจ์ฌ ๋ ์ ๋ช
ํ ์ฐ๊ตฌ์์ด์ ๋ถ์ฐ ์์คํ
์ ๋ํ ๋๋๋๋ก ๋ช
ํํ๊ณ ๋
ํนํ ์ฑ
์ ์ด ์ ์ง ๋น
๋ฐ์ดํฐ ์์คํ
๊ฐ๋ฐ์์ผ ๊ฒ์
๋๋ค.๋ฐ์ดํฐ ์ง์ฝ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์ค๊ณ" ์๋
์ ๋งํด ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ์ต๋๋ค CRDT ์ฐ๊ตฌ ๋ด์ฉ๊ณผ ์ง๊ธ ์๋ ค๋๋ฆด ๋ด์ฉ ๋์ค์ ๋ฐํํ๊ฒ ์ต๋๋ค.
๋ํคํ ์ฝ๋ฐ (Nikita Koval)์ Kotlin ํ์ ์ฝ๋ฃจํด ๊ฐ๋ฐ์์ด์ ITMO์ ๋ฉํฐ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ ๊ณผ์ ๊ต์ฌ์ด์ Hydra ์ปจํผ๋ฐ์ค์ ํ๋ก๊ทธ๋จ ์์ํ ํ์์
๋๋ค(์, ์ด ๊ธฐ์ฌ์์ ๋ค๋ฃจ๊ณ ์๋ ๋ฐ๋ก ๊ทธ ์ปจํผ๋ฐ์ค์
๋๋ค). ์๋
์ Nikita๋ ๋ค์์ ์ฌ์ฉํ์ฌ JVM ํ๋ซํผ์์ ๋ค์ค ์ค๋ ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํ
์คํธํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ์ต๋๋ค. ๋ฆฐ์ฒดํฌ, ๊ทธ๋ฆฌ๊ณ Hydra 2020์์ ๊ทธ๋ ๋งํ ๊ฒ์ด๋ค SegmentQueueSynchronizer ์ ๋ณด - ๋ค์์ ์ฌ์ฉํ์ฌ ํ์ธ๋จ ์์ด๋ฆฌ์ค ํ๋ ์์ํฌ ์ ์ฆ๋ช
์ ์ฝ ๋๊ธฐํ ํ๋ฆฌ๋ฏธํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ์ ์ํ ์ถ์ํ.
๋น๋๊ธฐ์ ๋ฐํ๋ฅผ ๋ฐ๋ฅด์ญ์์ค. ์ปจํผ๋ฐ์ค์๋ ์ ์ฒด์ ์ผ๋ก ์ฝ XNUMX๊ฐ์ ๋ณด๊ณ ์๊ฐ ์์ ์์ ์ด๋ฉฐ ๋๋จธ์ง์ ๋ํด์๋ ๊ณง ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ํ, ๋ฌผ๋ก ์ปจํผ๋ฐ์ค์๋ ์ผ๋ฐ์ ์ธ ํฉ์์ ๋๋ฌํ ๋๊น์ง ํ๋ ๋๋ ์ฌ๋ฌ ์ค๋ ๋์ ์ง๋ฌธ์ผ๋ก ๋ฐํ์๋ฅผ ํ
์คํธํด์ผ ํ๋ ํ ๋ก ์์ญ์ด ์์ ๊ฒ์
๋๋ค.
์ด์ด ์ข๋ค๋ฉด ๋งํด ํด๋ ํ๋ง(Martin Kleppmann)์ด ๋น์ ์ ์ฑ
์ ์ฌ์ธ์ ํด์ค ๊ฒ์
๋๋ค.
์, Hydra 2020 ์ปจํผ๋ฐ์ค ์ด์ , ์ฆ 6์ 9~XNUMX์ผ์ SPTDDC 2020 โ ๋ถ์ฐ ์ปดํจํ
์ ์ด๋ก ๊ณผ ์ค์ ์ ๊ดํ ์ธ ๋ฒ์งธ ์ฌ๋ฆ ํ๊ต์
๋๋ค. ์ปจํผ๋ฐ์ค์์ ๋๋ผ๊ธฐ ํ๋ ๊ฐ๋์ ์ ์ฌํ ํ
๋ ํ๊ต์ ๋ํ ์ด์ผ๊ธฐ๋ ๋ฐ๋ก ํฌ์คํ
ํ๊ฒ ์ต๋๋ค.
์ง๊ธ์ ๋ฌด์์
๋๊น? ๋จผ์ Habrรฉ ๋ฐ ์์
๋คํธ์ํฌ์์ ๋ด์ค๋ฅผ ํ๋ก์ฐํ์ธ์(ํ์ด์ค๋ถ, Vkontakte, ํธ์ํฐ).
๋์งธ, ์ด๋ฏธ ์ปจํผ๋ฐ์ค์ ์ฐธ์ํ๊ณ ์ถ์ ์ฐธ์ ์ ์๋ ์๊ตฌ๋ฅผ ๋๋๋ค๋ฉด ์น์ฌ์ดํธ๋ฅผ ํ์ํด ๋ณด์ธ์. ๊ตฌ๋งค ํฐ์ผ.
์
์งธ, ๋๊ธ๋ก Hydra 2020 ์ปจํผ๋ฐ์ค ํ๋ก๊ทธ๋จ ์์ํ์ ๋ํํ ์ ์๋ ๊ธฐํ๋ฅผ ๋์น์ง ๋ง์ธ์. PC ํ์๋ค์ ํฅํ ์ปจํผ๋ฐ์ค ์ฃผ์ ์ ๊ดํด ๊ธฐ๊บผ์ด ๊ทํ์ ๋ํ๋ฅผ ๋๋ ๊ฒ์
๋๋ค.
ํ์ด๋๋ผ์์ ๋ง๋์!
์ถ์ฒ : habr.com