PowerPoint 프레젠테이션

Similar documents
Cloud Friendly System Architecture

초보자를 위한 분산 캐시 활용 전략

[Brochure] KOR_TunA

PowerPoint 프레젠테이션

Oracle9i Real Application Clusters

PCServerMgmt7

DBMS & SQL Server Installation Database Laboratory

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

ecorp-프로젝트제안서작성실무(양식3)

김기남_ATDC2016_160620_[키노트].key

차세대 시스템 개발과 스마트 캠퍼스 구축의 시대! 2014년 현재 대학 정보화 화두는 차세대, 스마트 캠퍼스, 개인정보보호 입니다. 대학 정보화 동향 1990년대 후반부터 2000년대 초반 붐처럼 일었던 학사행정 시스템 구축의 시기를 지나 2000년대 중 후반 부터는

[Brochure] KOR_LENA WAS_

항목

슬라이드 1

The Self-Managing Database : Automatic Health Monitoring and Alerting

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

RED HAT JBoss Data Grid (JDG)? KANGWUK HEO Middleware Solu6on Architect Service Team, Red Hat Korea 1


슬라이드 1

Service-Oriented Architecture Copyright Tmax Soft 2005

이제는 쓸모없는 질문들 1. 스마트폰 열기가 과연 계속될까? 2. 언제 스마트폰이 일반 휴대폰을 앞지를까? (2010년 10%, 2012년 33% 예상) 3. 삼성의 스마트폰 OS 바다는 과연 성공할 수 있을까? 지금부터 기업들이 관심 가져야 할 질문들 1. 스마트폰은

공개 SW 기술지원센터

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

untitled

<4D F736F F D20C5EBC7D5C7D8BCAEBDC3BDBAC5DB5F D2BC0C720424D54B0E1B0FABAB8B0EDBCAD2E646F63>

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Something that can be seen, touched or otherwise sensed

Microsoft PowerPoint - Session2 - Tibero 6

Portal_9iAS.ppt [읽기 전용]

NoSQL

PowerPoint 프레젠테이션

Microsoft Word - DELL_PowerEdge_TM_ R710 서버 성능분석보고서.doc

TTA Journal No.157_서체변경.indd

VNX 성능 및 경쟁사 제품 포지셔닝

PowerPoint 프레젠테이션

놀이동산미아찾기시스템

소프트웨어개발방법론

Model Investor MANDO Portal Site People Customer BIS Supplier C R M PLM ERP MES HRIS S C M KMS Web -Based

PowerPoint 프레젠테이션

Chap7.PDF

Appendix B

리뉴얼 xtremI 최종 softcopy

금오공대 컴퓨터공학전공 강의자료

슬라이드 1

6.24-9년 6월

목 차

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Intra_DW_Ch4.PDF

i-movix 특징 l 안정성 l 뛰어난화질 l 차별화된편의성

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 6.pptx

62

Microsoft PowerPoint - eSlim SV [ ]

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

< FC1A6BEC8BFE4C3BBBCAD2E687770>

Microsoft PowerPoint - 발표_090513_IBM세미나_IPTV_디디오넷_완료.ppt

Windows 8에서 BioStar 1 설치하기

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

consulting


MS-SQL SERVER 대비 기능

Agenda 1 Network Virtualization Today 2 Management Plane Scale-Out 3 Control Plane Evolution 4 High-Performance Data Plane 5 NSX Vision : Driving NSX

I What is Syrup Store? 1. Syrup Store 2. Syrup Store Component 3.

untitled

Storage advances and Ne over fabric

6주차.key

Microsoft PowerPoint - JBossASTunning4BP.ppt

JVM 메모리구조

BSC Discussion 1

Microsoft PowerPoint - CNVZNGWAIYSE.pptx

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

solution map_....

スライド タイトルなし

Microsoft PowerPoint - 권장 사양

세션 3 (오이식).ppt

APOGEE Insight_KR_Base_3P11

歯이시홍).PDF

Module 1 Windows Server 2012 배포와관리

슬라이드 1

결과보고서

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례


REDIS 이해와 활용

제11장 프로세스와 쓰레드

Analyst Briefing

Microsoft PowerPoint - Master-ChiWeon_Yoon.ppt

대규모애플리케이션확장을완벽하게지원하는고성능인메모리데이터그리드솔루션 웹애플리케이션서버 (WAS) 를사용하는웹기반서비스에서애플리케이션성능과안정성의획기적향상이필요한모든분야에적용가능 모든종류의 WAS 플랫폼에적용가능하며, 개별하드웨어성능의한계를뛰어넘는확장성, 성능, 신뢰도향상

Contents Test Lab 홖경... 3 Windows 2008 R2 서버를도메인멤버서버로추가... 4 기존 Windows 2003 AD 홖경에서 Windows 2008 R2 AD 홖경으로업그레이드를위한사젂작업 7 기존 Windows 2003 AD의스키마확장...

bn2019_2

SMB_ICMP_UDP(huichang).PDF

The Pocket Guide to TCP/IP Sockets: C Version

DB진흥원 BIG DATA 전문가로 가는 길 발표자료.pptx

슬라이드 1

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

JAVA PROGRAMMING 실습 08.다형성

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

Transcription:

RPG게임서버의원월드설계를위한아키텍처접근탐색 기술부박선용

2 INDEX INDEX 1 2 3 Architecture? Game Server 새로운설계접근

3 1 Architecture?

4 Architecture? 아키텍처? 프로그램이나컴퓨팅시스템의소프트웨어아키텍쳐는소프트웨어구성요소와외부에드러나는특성, 그리고구성요소들의관계를표현하는시스템의구조나구조체를말한다. 소프트웨어아키텍처이론과실재 (2008) What it does(the design of its functionality) 와 What it is(the design of its form) 을결정하는것 요구를분석 다종의후보아키텍처 ( 패턴 ) 를도출 후보확정 논리, 책임, 범위 다양한관점 (View) 고객, 운영자, 성능, 확장성, 가용성, 보안

5 Architecture? 설계자란? 좋은능력의설계자란? 유사업종에서경험이많음자료조사능력이매우뛰어남비슷한업종의전문가와폭넓은연계컨퍼런스및학회참여 설계시유용한방법 유사시스템의적용경험 자료조사및스터디 아는사람에게묻기 현실 고참개발자 전문직군화부재 과연좋은설계란무엇인가? 설계유형 유사시스템설계 새로운형태의시스템설계 효율적인접근방법은무엇인가?

6 Architecture 1. Architecture? 영향을주었던개념들 1. 소프트웨어공학 - 개발프로세싱의필요성 2. 소프트웨어아키텍쳐링 (CMU 등 ) - 비즈니스요구, 소프트웨어구조, 품질속성, 참조패턴, 참조아키텍처, 설계전술, 평가 3. UML 4. 시스템이론블랙박스 / 화이트박스자극과반응이론 Control Theory, 모델링 & 시뮬레이션 Chaos 이론 5. 성능분석론 - Metric, 3 가지접근방법론 ( 측정, 수리분석, 시뮬레이션 ), 큐잉이론, Petri-Net 6. DA(Data Architecture) 7. 디자인패턴 8. Agile 개발론처음부터완벽한설계란없다. 정확하게정의할수록정확하게틀린다. Spiking, 점진적진화, 커뮤니케이션 9. 다양한도메인경험일반화와특수화미국 R&D 그룹과대화오픈소스, 디자인철학?

7 Architecture 1. Architecture? 개념범위 요소 범주 설명 성능관점 품질속성 정통적인아키텍처링에서중요한요소 설계후보를선정하거나시스템을분할통합할때매우유용함 단일책임의원칙 설계원칙 정통적인소프트웨어아키텍처링뿐아니라다양한영역에서원칙으로존재 설계후보를만들거나설계를리뷰할때매우유용함 Spiking Agile 방법론의주요방법 빠른후보자의적합성탐색 조건과결과를해석할수있는능력이있어야함 아키텍처평가항목 설계리뷰의주요방법 후보자선정을위한정량적인접근 Apple to Apple 비교가될수있도록구성되어야의미가있음 오픈소스 후보패턴의주요대상 중요후보패턴 ( 아키텍처 ) 유용성의범주를파악하는것이관건 용어 후보아키텍처 시스템의행동과품질특성을만족시키는가능성을가진아키텍처 Ex) 2tier/3tier 아키텍처요소의 3 대특성 1. 명확한책임들 (A clearly defined set of responsibilities) 2. 명확한범위들 (A clearly defined boundary) 3. 명확한인터페이스

8 Architecture 1. Architecture? 아키텍쳐에영향을주는것 품질속성 ( 성능, 확장성, 가용성, 변경용이성..) 기능요구사항

Architecture 소프트웨어아키텍처방법론 Map 구조뷰 스파이킹 성능분석 시스템모듈 디자인패턴 컴포넌트클래스 리팩토링 구현알고리즘 프레임워크 TDD SDD 품질속성 알고리즘개발도구, 방법론 (Agile), QA, 자동화리뷰, 데일리미팅, TO-DO리스트

10 Architecture 1. Architecture? 무엇이더혁신적이었나? 인터넷 vs 세탁기 OOP vs 모듈프로그래밍

11 Architecture 1. Architecture? 완벽한설계란더추가할게없을때가아니라, 더뺄것이없을때이루어진다 - 생텍쥐페리 ( 프랑스작가겸항공기설계자 )

12 2 RPG Game Server

13 Game Server 월드분할서버의전형적구조 World Server 빌링 / 샵서버 월드 1( 존 1, 존 2, 존 3 ) Main DB 서버 월드서버 인증서버 월드 2( 존 1, 존 2, 존 3 ) Chat Server 파티서버 관리서버

14 Game Server 월드가분할되는이유 데이터저장장소문제원월드내수많은유저정보를실시간으로저장할수있는저장장소문제 부하분산 서버용량의한계 프로그래밍모델방식의문제 월드의크기 발생하는문제 월드분할에따른게임유저간데이터분리 존구성에따른이동간몇가지문제발생소지 ( 딜레이, 중요정보분실 ) 공통서비스를위한별개의서버존재 수평확장의어려움, 관리의복잡성 재활용어려움

15 2. Game Server Game Server 성능개선을위한방법들 버퍼 ( 큐 ) 객체각각의클라이언트들에대한 Operation 을버퍼 ( 큐 ) 에저장유저오퍼레이션을매번저장하지않고, 일정시간간격 (5~10 분 ) 을두고 DB 저장 게이머정보메모리로딩한서버내동시접속게이머들의정보를서버메모리에모두올려놓고, 게임로직실행시참고 ex) 이동거리계산, 아이템취득과사용, 전투, 타격데미지등 Cache 서버이용일정서버군을묶어서유저정보, 오퍼레이션등을 memcached/redis 등에저장 성능수치를여기다좀넣을것

16 2. Game Server Game Server 네오위즈게임서버예 각게임별서버구조다양 A 형 - Stateful 분산객체구조 - Master 군 -Slaves 노드존재 - 서버메모리에유저정보등을분산저장 Fail-over 가능 - 복잡한구조 변경용이성등에한계가짐 B 형 (R 서버 ) - 한월드당 7 대의게임서버 ( 총 80 여대 ) DB Proxy MS-SQL DB - 게임서버별로부분적으로데이터캐싱 - DB TPS : 800 TPS M 사 J 서버의예 전형적인 SOA(Service Oriented Architecture) 로접근 Scale-out이가능한게임서버구축으로원월드서비스지향 C# 환경에서의통신기능이내장된서비스컴포넌트로분리 30대물리서버로동시접속자 5만명처리

17 2. Game Server M 사 J 서버의예 Game Server-M 사 J 서버의예 J 서버설계특징 역할을서비스로분담, 가능한작은기능단위를서비스로구현 Fine Grained Services ' 통합네트워크 ' 레이어서비스간통신을중계 SOA 의 Data BUS 통합네트워크라이브러리서비스구현, 서비스간통신지원서비스의물리적인위치를게임로직이몰라도됨오퍼레이션 : 서비스가제공하는기능단위. 비응답경우를없애기위해항상성공또는실패 서비스로케이션제공서비스의실제위치를다루는서비스 SOA SD(Service Directory) one thread + event queue 하나의 TCP 연결을통해여러오퍼레이션을처리 테스트시성능문제한서버가한개의서비스를처리하기어려움통합네트워크개선성능향상 ( 메시지직렬화성능개선 ) + 서비스분산메커니즘구현

18 2. Game Server M 사 J 서버의예 Game Server-M 사 J 서버의예 J 서버현존하는문제 DB 가병목 ( 단일로그 DB 등에서문제발생 ) 오퍼레이션으로실행되는로직보다는오퍼레이션통신자체로인한부하 엔터티릭현상 Lag 현상전파 : 한서비스가느려지면그에의존관계있는서비스가모두느려짐 과도한옵저버가존재하는경우내부통신급격발생 프론트엔드가너무부하큼 ( 오퍼레이터요청, 결과처리, DB, IO 발생 ) 대부분싱글스레드 ( 스레드안전성에대해신경쓰지않아도됨 ), 일부멀티스레딩 견해 SOA 아키텍처에서 Fine Grained 로인한과도한서비스간통신코스트발생 저장공간의확장한계성 게임서버내에서 SOA 형태의아키텍처를적용한것은커다란도전으로높이평가

19 3 새로운설계접근

20 3. 새로운설계접근 새로운설계접근 아키텍처목표 MMORPG 게임서버특징 Very low latency Huge parallel operations of Users Massive Users and interaction Very quick game logic processing 목표 100 만동접자원월드설계 설계컨셉낮은지연과방대한유저데이터동시처리설계품질중성능과확장성중심의설계전술선택 성능중심의설계전술채택

21 3. 새로운설계접근 새로운설계접근 기본설계관점을재점검 RDBMS 의문제과거파일디비에서부터 RDB 로전환현재대부분의게임개발자들이 MS-SQL 등에익숙 mmo 게임의경우 CUD : R 비율이 50 : 50 혹은그이상일수있음. 통상적인복제 DB 는의미없음. Concurrency 문제싱글쓰레드처리 : 이해하기쉽고, 사용하기편함. 과연이것이 Concurrency 해결책? 큐를이용한멀티쓰레드처리의구조적한계극복방법은없는가? 서버확장서버기능별분리가필수인가? OOP? SOA 는 OOP 개념과다른관점. 데이터와처리, 인터페이스라는절차적프로그래밍관점이담긴사상 분산처리? 분산컴포넌트? : 금융, 대규모서비스산업에서많이고려되었고, 성능상의부분은이미많이지적되어옴컴포넌트는과중한기능을스스로가지거나, 많은기능을컨테이너에의존해서처리하게되므로성능향상에한계존재빠르고안정적인구현과유지보수성, 확장성에장점존재 고도의성능이요구하는시스템에는부적절

22 3. 새로운설계접근 새로운설계접근 RDBMS 일반적인데이터베이스 Scale-out 방식 Master + Slave : Read 분산만이루어짐. Read 오퍼레이션이많은경우에적합 M-M Replication 복제나기타 3 rd Party 툴 (ex 텅스텐 ) 을이용한구성. CUD 확장의한계 클러스터링 Oracle, MySQL 등 No-SQL 다양한 NoSQL 솔루션 RPG 성게임의경우높은 Updates 비율 DB 클러스터링

23 3. 새로운설계접근 새로운설계접근 DB Cluster & NoSQL MySQL Cluster 수평확장이가능한일종의메모리데이터베이스물리적으로분리된메모리에데이터병렬적재를통한 99.999% Availability 8 서버로 4.3M reads per second, 1.9M updates per second 30 서버로 16M writes per second 7.2 버전에서 JOIN 성능향상, NoSQL API 지원 카산드라게임로그저장에적합복잡하지않은로그성데이터를저장하기에좋음저사양시스템에서도높은성능을내는현존하는가장좋은아키텍처중하나 write 오퍼레이션이 read operation 보다훨씬빠른구조 MongoDB 상대적으로 Dynamic 쿼리에장점. 쿼링속도가높음특정기능에서 MySQL 등의대용으로사용가능 CouchDB 데이터축적이주로일어나고변경은상대적으로작은경우유리 CRM, CMS Redis 예측가능한크기의데이터베이스사이즈안에서매우빠르게데이터가변하는경우 Realtime Communication, Stock Price, 포털주요정보, 유저정보, 세션서버

24 3. 새로운설계접근 새로운설계접근 Stateless & 비객체화 OOP, 분산컴포넌트 로직과처리데이터로분리 & 객체간통신배제 OOP 로직과데이터분리게임처리를위한서버로직을데이터와처리로직으로분리유저에대한처리객체를생성하지않음. 특정물리서버에유저가존재하지않도록 event 처리중심으로구성 분산컴포넌트 로직처리기, homogeneous 서버구성처리프로세스 ( 로직 ) 을모든서버에동일하게배치각각의처리로직은서로영향이없도록 isolation 화처리로직간상호통신없음 큐원형버퍼 Event queue - single-thread event circular buffer - multi-thread

3. 새로운설계접근 새로운설계접근 Concurrency Single Thread? Concurrency 단순히두개이상의 Task 가병렬적으로돌고있는것아님. 문제의소지 같은리소스에경쟁적으로접근한다는점. ex) 파일, 데이터베이스, 소켓, 특정메모리주소등멀티쓰레드에서성능문제및개발난이도가높아지는것은 Queue 와관련된문제 Mutual Exclusion, visibility of change Locking 의문제상호경쟁적으로접근요청이많을수록, Lock 은극단적으로비싸지게된다. Lock 대신 CAS(Compare And Switch) 사용가능. X86 operation ex) java.util.concurrent.atomic* 패키지 Lock 기능을이용한 Concurrency 프로그래밍은어려움, CAS 와 Memory barrier 이용할경우더욱까다로와지며, 정합성검증자체가불가능할수도있음. 큐처리로직사이에이벤트를큐에넣었다빼는비용이전체비용의대다수를점유통상제안된사이즈큐를선언. 무제한인경우메모리재난! cf. 자바의경우 GC 문제 Consumer 와 Producer 를처리속도가다르기때문에, 통상큐는가득차거나비거나하게됨. Lock 비용극단적으로높아짐. 통상경쟁관계나 cache coherence 가발생하므로매우높은비용을요구하게됨 결론은 Single Thread? 원형버퍼를이용한 Concurrency 문제해결.

3. 새로운설계접근 새로운설계접근 원형버퍼 다수의 Producer 와다수의 Consumer 를둘수있음 Producing 과 Consuming 사이에데이터가공, 저장, 분류등다양한 Task 수행가능 Multiple Task 관여하나 Lock Free 각자서로의현재 Position 위치를확인 Producer 사용자요구데이터 (id, 요구기능, 상대 id, Message..) Data Store 인풋데이터를 Sequential 하게 Disk 에저장가능서버 Disaster 의경우복구가능 데이터가공 ex) Un-marshaller Pre logic processor ( 데이터검사, 로직상세분배, 메시지라우팅, 결과라우팅 ) Consumer 게임로직처리기 처리서비스별로분배 ( 인벤토리, 메시지, 구매 )

3. 새로운설계접근새로운설계접근 원형버퍼성능 ABQ(Array Block Queue) java.util.concurrent.arrayblockingqueue 와비교 Unicast : 1P-1C Three step pipeline : 1P- 3C Sequencer : 3P-1C Multicast : 1P-3C Diamond : 1P-3C Throughput (ops) 3 step pipeline latency Disruptor 논문데이터인용

3. 새로운설계접근 새로운설계접근 원월드게임서버아키텍처 서버구성 : Stateless, Game Logic 처리기와 Pre- 로직처리기들로구성, 대부분의데이터를실시간저장 수평확장가능 목표성능수치 : 동접자 100 만, DB Throughput 5M OPS (operations per second), 99.9 % 에서 100ms 이하응답 1 대당기존동접자대비 5~10 배성능이목표 Communication Layer 게임관련로직인벤토리처리.. 거리계산.. 메시지처리 (ex 금칙어..) 게임관련로직인벤토리처리.. 거리계산.. 게임메인 DB MySQL Cluster : 12> Server 메시지처리 서버수평확장 게임로그 DB Casandra

3. 새로운설계접근새로운설계접근 아키텍처특징 데이터와로직의분리 게임로직처리의 Sequential Process 화 원형버퍼 + Multi-thread 서버간통신최소화 Stateless + Homogeneous 게임데이터실시간성저장 DB 클러스터링 NoSQL 각개별로직의최적화도반드시병행되어야함. 서버로직구현시각종최적화테크놀러지적용필요 ex) factored code & small method, 에러핸들링, 트랜젝션처리등 부분적으로 key-value 메모리서버적용으로 DB 부하분산가능 50 대 (32 게임서버 + 12 데이터베이스서버 + 6 대카산드라서버 ) 로 100 만이상동접자처리가능예상. (1 대당 3 만명 )

30 3. 새로운설계접근 새로운설계접근 참고아키텍쳐 LMAX Retail financial trading system built on the JVM platform Business Logic Processor can handle 6 million orders per second (3Ghz dual-socket quad-core Nehalem based Dell server with 32GB RAM) Without DB, in-memory processing Event sourcing mechanism for disaster IP multicasting Distributed master-slave (all slave can replace master anytime)

31 3. 새로운설계접근 새로운설계접근 향후과제 개념증명을위한 Spiking 테스트서버구축과성능테스트 물리적설계사용언어는? 여러라이브러리나 framework 중선택할것은? 직접구현범위는? Spiking 방안, 프로파일링방법및성능테스트방안? 최적화방안은? 게임서버프레임워크화가능성여부탐색 ex) Darkstar(Reddwarf)