Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
최싞 분산 시스템이해결하고 있는 오래 된 이슈들      안준석      NHN Corp.
여러분은 어떤 서비스를 만들고 싶으싞가요?
서버만 추가하면 확장되고장애가 발생해도 서비스 되며프로그래밍하기도 좋은 그런..
블루오션
분산 홖경?분산 시스템?
알아 볼까요?!
분산, 암묵지, 합의개요
인사이트!
최싞 분산 기술!
사고모델!
Game과 DB, 분산과 동기화인사이트INSIGHT
게임 클라우드!
게임 클라우드;;;호랑이가 죽어가죽을 남기듯!스마트폰게임플랫폼으로 변싞
클라우드 서비스?  전산자원을 집약해서  사용자가 필요한 만큼사용할 수 있도록 제공하는 것
그래서 필요 했던 것은?   그래서 아이두게임이 추상화한        전산자원은?  전산 자원의 추상화!
채널 : 로비
게임방 : 룸
즉,     로비 룸 와     으로   추상화
그래서 추상화한 자원을 어떻게 관리하나요?
프로세스 : 게임 = 1: N테트리스               고스톱            고스톱 1번 방              2번 방       테트리스            1번 방               3번 방...
채널          고르기                Lobby                Lobby                Lobby                Server               Server ...
왜 이렇게 만들었나?      서버만 추가하면 확장되고일부 서버 고장으로 전체 서비스가 중지 되지 않게
확장성, 가용성 +@
+@ : 동기화                               하나의 서비스를 이룸!              Room      고스톱              Server    1번 방『고스톱 최고 점수』     ...
즉,누구에게 물어보든합의 된 같은 값을  줘야 한다!
+@ : 내고장성   글로벌Lock서버            Room     X                        Server      1   2   3          Room     SharedData     ...
즉, 분산 노드 갂데이터 동기화와내고장성 필요!
확장성, 가용성 +동기화 +내고장성
분산에 대한체감 온도 높이기!
너에게 내 일을 주마!분산DISTRIBUTION
분산 전략 엿보기
4 vs 4800유닛 vs 800유닛
저 많은 유닛들의 움직임이어떻게 동기화 되는 걸까요?   분산 된 Peer 들 간에 P2P 통신하는 상황에서!
(90, 80)           (100, 100)
서버 당 최대 동접7000명
수 많은 아바타들의 이벤트는  어떻게 동기화 될까요?    Server-Client 구조에서 실시간 동기화 전략은?
레어템 득!       장비      장탈착!
다른 생각다른 전략
이런 온라인 게임에서확장성, 가용성 + @  가능 할까요?
NoSQL로 알아보는최싞 분산과 동기화    이슈들!
NoSQL왜 쓰는 걸까요?
SchemalessHorizontal Scalability  High Availability
Schemaless?Key-Value 데이터를 저장한다.
GameLevel     {         levelNo : 1         gameNo : 2         version : 1.5         timeCreated : 2010-08-25         time...
GameLevel                                 Key{                                         {    levelNo : 1                   ...
Map< Key, Value >             Map< Key, Map< Key, Value >>Map< Key, Map< Key, Map< Key, Value >>>                …………………….
처음엔 스키마에구속 받지 않는다고 해서   ‘혹’했었으나… 핵심은 다른 곳에!!
Scalabilty?Availability?Consistency?
Horizontal Scalability  ‚실행시갂에 서버를 늘리거나 줄인다‛
NoSQL 클러스터 서비스中        A4                     D   C3                  Scalability            1      어떻게??        B   2
Solution :Consistent Hashing              Hash(Key)             맵핑 시켜준다!
A 4   4   1C3           D     2     1   2 3     B
A    4   4   1                    Hash( 1 )C   3       1   D        2   2    3        B
High Availability   ‚하나의 저장소 처럼 보이나같은 데이터가 여러곳에 복제되어 있다‛
A 4   4   1C3     2     1   2 3     B
Hash( 1 +2)               A               1         4    4          1                  2132    C   Hash( 1 +1)            ...
Scalabilty?Availability?Consistency?
분산 & 동기화
분산 홖경?분산 시스템?
아하!!
Two General’s모델MODEL
‚Common Knowledge‛     공유 지식
“자기가 알고 있다는 것을     다른 사람이 알고 있고또 그렇다는 사실을 서로가 알고 있다.”
최소한 1명은빨갂색 모자를 쓰고 있다!
둘다 흰 모자!       …..          …..내가 빨강 모자! 둘다 흰 모자!   앞 사람이 빨강이니   앞 사람이 빨강이니내가 빨강 모자!     난 흰 모자!      난 흰 모자!
…..    둘다 흰 모자!       …..      내가 빨강 모자!…..    둘다 흰 모자!   앞 사람이 빨강이니      내가 빨강 모자!     난 흰 모자!
…..   …..     …..…..   …..   난 빨강 모자!
그 앞에 사람은 그렇게 말했고앞에 사람이 이렇게 말했으니   나는 이럴 것이다!
“자기가 알고 있다는 것을     다른 사람이 알고 있고또 그렇다는 사실을 서로가 알고 있다.”
‚Two General’s Problem‛    두 장굮의 문제
여기를 통과하는 방법 밖에 없음
스파이
내일 정오에           배신:      OK!         잡혔다!공격합시다!          오늘공격!   내일 정오에                        공격합시다!
두 장굮은 공격에성공했을까요?!
내일 정오에            배신:       OK!           잡혔다! 공격합시다!           오늘공격!    내일 정오에                           공격합시다!   내가     ...
내일 정오에            배신:       OK!           잡혔다! 공격합시다!           오늘공격!    내일 정오에                           공격합시다!   내가     ...
네트웍기반분산 시스템을 만들며고민하게 되는 문제!
어떻게하면 될까요!!?
Consensus   합의어떤 한(Single) 값(Value)을 선택하는 것!합의 된 값은 모든 서버들이 알 수 있어야 한다.
즉,누구에게 물어보든합의 된 같은 값을  줘야 한다!
X-Phase Commit & Paxos합의CONSENSUS
Consensus2-Phase Commit
모두의 동의를 얻는다.  Propose  Prepared  Commit  Committed / Aborted
Phase #1[Prepare]
Phase #2[Commit]
문제상황       X           X
문제상황       X           X
진짜 문제상황          X
-0-;;;Coordinator!  Died…
어떤 해결책이 있을까요!!?
‚The Part-Time Parliament‛     파트타임 국회
Consensus  PAXOS
문제상황           X       X
Consensus  PAXOS
과반수만 살아있으면 된다!   2F+1 의 Node에서 F 만큼의 Fault 는 감당!
음?
즉,서버들의 절반 + 1 개만 살아 있으면 합의에   문제가 없다
과반수+1 동의를  얻을 수 있으면옳은 값을 얻을 수 있다?
21    1    1     2    2과반수는 모든 것을 안다!과반수가 알고 있는 것을 모아서 판단한다.
2-Phase Commit      + Ordering + Quorum       Propose     Prepared(Agree)       Commit       Committed / Aborted
과반수는 자신이 최근에 Agree     Propose       했던 값을 보내준다.                    이걸 판단하는 것.      Agree과반수가 알고 있는 것을 모아서 판단한다.      Comm...
문제상황        12   12                    12                 X                     X       12            1
문제상황        12   12                 12       12        12
진짜 문제상황          X
과반수만 살아있으면 된다!   2F+1 의 Node에서 F 만큼의 Fault 는 감당!
Consensus   합의어떤 한(Single) 값(Value)을 선택하는 것!합의 된 값은 모든 서버들이 알 수 있어야 한다.
어디에 사용할까?
분산, 암묵지, 마무리마무리
인사이트!
최싞 분산 기술!
사고모델!
분산, 합의, 암묵지Q&A
감사합니다.
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
B1 최신분산시스템이해결하고있는오래된이슈들
Prochain SlideShare
Chargement dans…5
×

B1 최신분산시스템이해결하고있는오래된이슈들

  • Identifiez-vous pour voir les commentaires

B1 최신분산시스템이해결하고있는오래된이슈들

  1. 1. 최싞 분산 시스템이해결하고 있는 오래 된 이슈들 안준석 NHN Corp.
  2. 2. 여러분은 어떤 서비스를 만들고 싶으싞가요?
  3. 3. 서버만 추가하면 확장되고장애가 발생해도 서비스 되며프로그래밍하기도 좋은 그런..
  4. 4. 블루오션
  5. 5. 분산 홖경?분산 시스템?
  6. 6. 알아 볼까요?!
  7. 7. 분산, 암묵지, 합의개요
  8. 8. 인사이트!
  9. 9. 최싞 분산 기술!
  10. 10. 사고모델!
  11. 11. Game과 DB, 분산과 동기화인사이트INSIGHT
  12. 12. 게임 클라우드!
  13. 13. 게임 클라우드;;;호랑이가 죽어가죽을 남기듯!스마트폰게임플랫폼으로 변싞
  14. 14. 클라우드 서비스? 전산자원을 집약해서 사용자가 필요한 만큼사용할 수 있도록 제공하는 것
  15. 15. 그래서 필요 했던 것은? 그래서 아이두게임이 추상화한 전산자원은? 전산 자원의 추상화!
  16. 16. 채널 : 로비
  17. 17. 게임방 : 룸
  18. 18. 즉, 로비 룸 와 으로 추상화
  19. 19. 그래서 추상화한 자원을 어떻게 관리하나요?
  20. 20. 프로세스 : 게임 = 1: N테트리스 고스톱 고스톱 1번 방 2번 방 테트리스 1번 방 3번 방 Room Server Room Server Process#1 Process#2 사천성 고스톱 사천성 2번 방 4번 방 사천성 1번 방 3번 방
  21. 21. 채널 고르기 Lobby Lobby Lobby Server Server Server LB LB LBChannel ListServers Room Room Room Server Servers Server Room Room Servers Server
  22. 22. 왜 이렇게 만들었나? 서버만 추가하면 확장되고일부 서버 고장으로 전체 서비스가 중지 되지 않게
  23. 23. 확장성, 가용성 +@
  24. 24. +@ : 동기화 하나의 서비스를 이룸! Room 고스톱 Server 1번 방『고스톱 최고 점수』 Room SharedData전역 공유데이터 고스톱 Servers 7번 방 동기화는? Room 고스톱 Servers 8번 방
  25. 25. 즉,누구에게 물어보든합의 된 같은 값을 줘야 한다!
  26. 26. +@ : 내고장성 글로벌Lock서버 Room X Server 1 2 3 Room SharedData Servers같은 Lock에 대한 획득 순서 직렬화 Room Servers
  27. 27. 즉, 분산 노드 갂데이터 동기화와내고장성 필요!
  28. 28. 확장성, 가용성 +동기화 +내고장성
  29. 29. 분산에 대한체감 온도 높이기!
  30. 30. 너에게 내 일을 주마!분산DISTRIBUTION
  31. 31. 분산 전략 엿보기
  32. 32. 4 vs 4800유닛 vs 800유닛
  33. 33. 저 많은 유닛들의 움직임이어떻게 동기화 되는 걸까요? 분산 된 Peer 들 간에 P2P 통신하는 상황에서!
  34. 34. (90, 80) (100, 100)
  35. 35. 서버 당 최대 동접7000명
  36. 36. 수 많은 아바타들의 이벤트는 어떻게 동기화 될까요? Server-Client 구조에서 실시간 동기화 전략은?
  37. 37. 레어템 득! 장비 장탈착!
  38. 38. 다른 생각다른 전략
  39. 39. 이런 온라인 게임에서확장성, 가용성 + @ 가능 할까요?
  40. 40. NoSQL로 알아보는최싞 분산과 동기화 이슈들!
  41. 41. NoSQL왜 쓰는 걸까요?
  42. 42. SchemalessHorizontal Scalability High Availability
  43. 43. Schemaless?Key-Value 데이터를 저장한다.
  44. 44. GameLevel { levelNo : 1 gameNo : 2 version : 1.5 timeCreated : 2010-08-25 timeLastModified : 2010-08-24 12:00VS authorID : 5 authorNick : 7 userData { ……………………. } filter { …………………… } }
  45. 45. GameLevel Key{ { levelNo : 1 Key : Value gameNo : 2 Key : Value version : 1.5 timeCreated : 2010-08-25 …. timeLastModified : 2010-08-24 12:00 authorID : 5 authorNick : 7 Key userData { { ……………………. ……………………. } } Key filter { { …………………… …………………… } } }}
  46. 46. Map< Key, Value > Map< Key, Map< Key, Value >>Map< Key, Map< Key, Map< Key, Value >>> …………………….
  47. 47. 처음엔 스키마에구속 받지 않는다고 해서 ‘혹’했었으나… 핵심은 다른 곳에!!
  48. 48. Scalabilty?Availability?Consistency?
  49. 49. Horizontal Scalability ‚실행시갂에 서버를 늘리거나 줄인다‛
  50. 50. NoSQL 클러스터 서비스中 A4 D C3 Scalability 1 어떻게?? B 2
  51. 51. Solution :Consistent Hashing Hash(Key) 맵핑 시켜준다!
  52. 52. A 4 4 1C3 D 2 1 2 3 B
  53. 53. A 4 4 1 Hash( 1 )C 3 1 D 2 2 3 B
  54. 54. High Availability ‚하나의 저장소 처럼 보이나같은 데이터가 여러곳에 복제되어 있다‛
  55. 55. A 4 4 1C3 2 1 2 3 B
  56. 56. Hash( 1 +2) A 1 4 4 1 2132 C Hash( 1 +1) 2 2 3 1 B Hash( 1 )
  57. 57. Scalabilty?Availability?Consistency?
  58. 58. 분산 & 동기화
  59. 59. 분산 홖경?분산 시스템?
  60. 60. 아하!!
  61. 61. Two General’s모델MODEL
  62. 62. ‚Common Knowledge‛ 공유 지식
  63. 63. “자기가 알고 있다는 것을 다른 사람이 알고 있고또 그렇다는 사실을 서로가 알고 있다.”
  64. 64. 최소한 1명은빨갂색 모자를 쓰고 있다!
  65. 65. 둘다 흰 모자! ….. …..내가 빨강 모자! 둘다 흰 모자! 앞 사람이 빨강이니 앞 사람이 빨강이니내가 빨강 모자! 난 흰 모자! 난 흰 모자!
  66. 66. ….. 둘다 흰 모자! ….. 내가 빨강 모자!….. 둘다 흰 모자! 앞 사람이 빨강이니 내가 빨강 모자! 난 흰 모자!
  67. 67. ….. ….. …..….. ….. 난 빨강 모자!
  68. 68. 그 앞에 사람은 그렇게 말했고앞에 사람이 이렇게 말했으니 나는 이럴 것이다!
  69. 69. “자기가 알고 있다는 것을 다른 사람이 알고 있고또 그렇다는 사실을 서로가 알고 있다.”
  70. 70. ‚Two General’s Problem‛ 두 장굮의 문제
  71. 71. 여기를 통과하는 방법 밖에 없음
  72. 72. 스파이
  73. 73. 내일 정오에 배신: OK! 잡혔다!공격합시다! 오늘공격! 내일 정오에 공격합시다!
  74. 74. 두 장굮은 공격에성공했을까요?!
  75. 75. 내일 정오에 배신: OK! 잡혔다! 공격합시다! 오늘공격! 내일 정오에 공격합시다! 내가 내가응답을 못받았다 응답을 못받았다고 생각해서 공 고 생각해서 공격 안하면 어떻 격 안하면 어떻 하지? 하지?
  76. 76. 내일 정오에 배신: OK! 잡혔다! 공격합시다! 오늘공격! 내일 정오에 공격합시다! 내가 내가응답을 못받았다 응답을 못받았다고 생각해서 공 고 생각해서 공격 안하면 어떻 격 안하면 어떻 하지? 하지?
  77. 77. 네트웍기반분산 시스템을 만들며고민하게 되는 문제!
  78. 78. 어떻게하면 될까요!!?
  79. 79. Consensus 합의어떤 한(Single) 값(Value)을 선택하는 것!합의 된 값은 모든 서버들이 알 수 있어야 한다.
  80. 80. 즉,누구에게 물어보든합의 된 같은 값을 줘야 한다!
  81. 81. X-Phase Commit & Paxos합의CONSENSUS
  82. 82. Consensus2-Phase Commit
  83. 83. 모두의 동의를 얻는다. Propose Prepared Commit Committed / Aborted
  84. 84. Phase #1[Prepare]
  85. 85. Phase #2[Commit]
  86. 86. 문제상황 X X
  87. 87. 문제상황 X X
  88. 88. 진짜 문제상황 X
  89. 89. -0-;;;Coordinator! Died…
  90. 90. 어떤 해결책이 있을까요!!?
  91. 91. ‚The Part-Time Parliament‛ 파트타임 국회
  92. 92. Consensus PAXOS
  93. 93. 문제상황 X X
  94. 94. Consensus PAXOS
  95. 95. 과반수만 살아있으면 된다! 2F+1 의 Node에서 F 만큼의 Fault 는 감당!
  96. 96. 음?
  97. 97. 즉,서버들의 절반 + 1 개만 살아 있으면 합의에 문제가 없다
  98. 98. 과반수+1 동의를 얻을 수 있으면옳은 값을 얻을 수 있다?
  99. 99. 21 1 1 2 2과반수는 모든 것을 안다!과반수가 알고 있는 것을 모아서 판단한다.
  100. 100. 2-Phase Commit + Ordering + Quorum Propose Prepared(Agree) Commit Committed / Aborted
  101. 101. 과반수는 자신이 최근에 Agree Propose 했던 값을 보내준다. 이걸 판단하는 것. Agree과반수가 알고 있는 것을 모아서 판단한다. Commit Accept
  102. 102. 문제상황 12 12 12 X X 12 1
  103. 103. 문제상황 12 12 12 12 12
  104. 104. 진짜 문제상황 X
  105. 105. 과반수만 살아있으면 된다! 2F+1 의 Node에서 F 만큼의 Fault 는 감당!
  106. 106. Consensus 합의어떤 한(Single) 값(Value)을 선택하는 것!합의 된 값은 모든 서버들이 알 수 있어야 한다.
  107. 107. 어디에 사용할까?
  108. 108. 분산, 암묵지, 마무리마무리
  109. 109. 인사이트!
  110. 110. 최싞 분산 기술!
  111. 111. 사고모델!
  112. 112. 분산, 합의, 암묵지Q&A
  113. 113. 감사합니다.

×