Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
NCSOFT CORPORATION
12, Daewangpangyo-ro 644beon-gil, Bundang-gu, Seongnam-si, Gyeonggi-do, Korea
Copyright ⓒ NCSOFT Corporation. All Rights Reserved
WWW.NCSOFT.COM
NCSOFT 게임 로그 조회 인프라 소개
2013.11.06 데이터인프라개발팀
김진필
목 차
• 게임 로그 현황
• NCSOFT 로그 조회 인프라
• 로그 저장 구조 LAR
• 로그 조회 인프라 LogR
• 성능 비교
• 맺음말
2
3
Blade & Soul
160억+ Log Daily
???GB+ Data Daily
???TB+ Monthly
200+ different log type
Game logs are BigData
4
민원 처리
위해 환경 분석
컨텐츠 분석
로그 조회 이유
5
“엔터 치면 바로 결과가 나와야지”
대용량 게임 로그를
빠르게 조회 하는 방법은?
로그 적재 및 조회 인프라
6
NCC1
Aion
Lineage
Blade &
Soul
데이터분석
로그조회
Shark2
Hive/
LogR
Aion
Log Loader
B&S
Log Loader
ANL1
Log Loader
데이터 제공 데이터 저장 데이터 수집
로그 적재
7
Log
Block
Log
Block
Log
Block
Log
Block
Log
Block
Log
Block
…
…
Server1, LogID 1003
Server1, LogID 1004
Log Archive
Log Archie
Log Stream 2013-11-06
16:00~
구간 Time Sort
…
Gzip 압축
Gzip 압축
Log 저장 Log 분류 Log 정렬
Server No, LogID 별 분류
HDFS
Game
Server
LAR(Log Archive)
• 자체 개발 Log Store Format
• ServerNO, LogID, Date로 Partition 하여 저장
• LAR Block = Header(meta) + Body(Data)
• LAR Block Append
8
HDFS Block
LAR Block2 LAR Block #N
Server-1/LogID-1003/20131106.LAR
LAR Block1 LAR Block #N+1
LAR File
Header Body(Data)
LAR Block Index
• LogDict
• LAR block 의 Index DB
• 조회시 필요한 LAR Block 만 I/O
9
Server 1, LogID 1003 2013-11-06-13:01
Server NO.
LogID Time Range
LAR filename
Offset Length
Sever1/ LogID1003/20131106.LAR
LAR Block1 LAR Block2 LAR Block3 LAR Block4
LogDict
Seek
Read
빠른 조회 인프라
• Hive
• Batch Processing Oriented
• 느린 초기 응답 시간
• 다른 오픈 소스들은?
• HBASE
• Shark, Impala …
• 필요한 기능만 자체 개발
10
Log Retrieval System
LogR
JAVA 자체 개발
단순 조회 및 Filtering
Master-Slave 분산 구조
11
LogR Architecture
12
5 성능 향상 포인트
1. LogDict라는 LAR Block Index 를 통해 I/O를 최소화
2. Data locality와 node 병렬 처리를 고려한 Task Schedule
3. Slave에서 I/O, Decompress, Filtering의 동시 처리
4. Slave의 결과를 memory 기반 전송
5. 부분 Merge된 결과를 빠르게 사용자에게 출력
13
Hive VS LogR
• Select * from bns_gamelog
where time >= ‘2013-09-17 00:00:00’ and time <= ‘2013-09-17 23:59:59’
and logid IN (‘1003’, ‘1004’, ‘1010’, …,)
and pserverno in (1, 2, 3, 4, ... ) and actor_id = 128369862
• Read Data Size 약 5Gb (압축)
14
HIVE 86sec
LogR 12sec
LogR UI
“편리한 사용자 UI 제공”
15
로그 조회 UI LogR Master Admin UI
맺음말
• 대용량 데이터를 빠르게 조회 하기 위해서는
• 데이터 적재부터 고려
• 용도에 적합한 인프라 도입
• 오픈 소스 vs 자체 개발
• 자체 개발시는 꼭 필요한 기능만 개발
• 서로 품질과 개발 역량을 높이는 선순환 관계
16