크로노스 파일서버file.pmang.kr/images/noc/img/pdf/noc_tr2_se7_lee.pdf · 2012. 8. 21. ·...
TRANSCRIPT
크로노스 파일서버 DB화 게임온 스튜디오 이성민
크로노스 서비스 상황
첫번째 두번째
세번째
세명의 서버 프로그래머
네번째 메인 입사 3개월
이미 퇴사
3개월 후 퇴사
파일서버?
회원 수 약 200만 명
캐릭터 데이터 약 350만 개
지속적 유저 감소
회원 수 약 300만 명
캐릭터 데이터 약 500만 개
동접 약 800% ▲
월정액
휴면 복귀 유저
잦은 서버 다운
데이터 복구
부분유료
계정 / 캐릭터 아이템 / 길드
약 1,000만 개 파일
파일 백업 / 서버 교체 최소 12시간 소요
탐색기 오픈 시 OS 다운 현상
DATA관리
통계 추출 툴 개발 / 수정
툴 실행 시간 약 6 ~ 7 시간
게임머니 보유량 특정 아이템 수량 레벨 분포도
통계추출
서로 다른 캐릭터 파일 고유번호 동일한 아이템? 각 캐릭터 인벤토리 270개 모든 캐릭터 전체 인벤토리 500만 X 270 = 13억 5천
고유번호 12345 롱스워드
크로 노스
만세
비정상 DATA
#define MAX_SKILL 60 // 40 typedef struct { short str, dex, con, intel; short hp, mp; short skillId[MAX_SKILL]; char slevel[MAX_SKILL]; int money; } CharacterData;
로그인시 데이터 변환
2002 캐릭터
2005 캐릭터
컨텐츠 확장
WHY?
파일 > DB? 속도?
개발 편의성? 개발?
DB를 몰라서? 지식?
글쎄요…
저도 못 들어서…
아이유도 모른다!!
2007년 어느날 … 중국 서비스 계약기간이 끝나고, 새로운 퍼블리셔가 나타남 파일 데이터가 아닌 DB 시스템 적용을 요청 2개월 매우 짧은 기간 DB화 강한 의욕을 가진 친구 최초 DB화 시도 중국 OBT 서비스에 적용 !!! 결과는…?
게임 랙 발생 데이터 롤백 아이템 복사 서버 다운
채널당 동접 약 1,000명
채널당 동접 약 100명
파일시스템 DB시스템
나를 찾지 마세요
병원입원
잦은 야근
신체 부실
종종 밤샘
2010년 7월 대규모 업데이트
5년 후…
생명 연장 프로젝트
나 게임 서버
크로노스 개발팀
DB화
DB화 문제 사례
1차 DB화
랙 현상 • 데이터 처리 병목
특정 아이템
저장 문제
•성장 아이템
•펫 아이템
•일부 기능 포기
DATA 처리 • 싱글쓰레드 (X)
• 멀티쓰레드 (O)
캐릭터 DATA
기본 정보
아이템
스킬
친구 리스트
자유 이동부
도제 관계
한 개의 패킷 한 개의 파일로 저장
DB 저장 시 부하 발생
파일시스템
테이블 / 패킷 분리 실시간 / 자동 저장
분리
DB시스템
공유창고 : 계정 인벤토리 : 캐릭 펫 창고 : 펫
파일시스템
모든 아이템 한 개의 테이블
DB시스템
다른 캐릭 소유 아이템 획득
아이템 증발
실 서비스 적용
크로노스
한국
일본
글로벌
대만
2011 / 12 글로벌 2서버 DB화 툴 버그 에러 발생 시 break 사소한 코딩 실수
2011 / 12 글로벌 1서버 길드 멤버 꼬임 파일 데이터 중복 가입 사전 예측 못함
2012 / 02 한국 전체 아이템 복사 아레나 서버 특수 구조 글로벌 아레나 없음 사전 테스트 못함
퀘스트 저장 불가 char[] 저장 문제 개발 시 고려 못함
2012 / 03 일본 전체 길드 코드 중복 파일 / DB 저장 기준 차이 사전 파악 못함
진행 날짜 적용 서버 발생 문제 원인 시간
17시간
14시간
24시간
11시간
불가
파티 사냥 거래
서로 다른 서버 캐릭
2012년 05월 : 대만 전체 서버
2012년 05월 : 대만 전체 서버
09 시간
DB화 이후
DATA 백업
DATA 관리
시스템
정확한 통계추출
변환작업 불필요
개발
복사방지
통계기반 서비스
게임
일괄지급
일괄수정
운영
끊임 없는 도전! 진정한 프로그래머
마치며…
Q & A
THANK YOU
Special Thanks to 김종창 사장님, 이광표 상무님, 권용길 CTO님 도중은님, 이재로님, 한덕우님, DB화에 도움주신 모든 분들