NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 •...

17
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 데이터인프라개발팀 김진필

Transcript of NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 •...

Page 1: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

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 데이터인프라개발팀

김진필

Page 2: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

목 차

• 게임 로그 현황

• NCSOFT 로그 조회 인프라

• 로그 저장 구조 LAR

• 로그 조회 인프라 LogR

• 성능 비교

• 맺음말

2

Page 3: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

3

Blade & Soul

160억+ Log Daily

???GB+ Data Daily

???TB+ Monthly

200+ different log type

Game logs are BigData

Page 4: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

4

민원 처리

위해 환경 분석

컨텐츠 분석

로그 조회 이유

Page 5: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

5

“엔터 치면 바로 결과가 나와야지”

대용량 게임 로그를

빠르게 조회 하는 방법은?

Page 6: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

로그 적재 및 조회 인프라

6

NCC1

Aion

Lineage

Blade &

Soul

데이터분석

로그조회

Shark2

Hive/

LogR

Aion

Log Loader

B&S

Log Loader

ANL1

Log Loader

데이터 제공 데이터 저장 데이터 수집

Page 7: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

로그 적재

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

Page 8: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

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)

Page 9: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

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

Page 10: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

빠른 조회 인프라

• Hive

• Batch Processing Oriented

• 느린 초기 응답 시간

• 다른 오픈 소스들은?

• HBASE

• Shark, Impala …

• 필요한 기능만 자체 개발

10

Page 11: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

Log Retrieval System

LogR

JAVA 자체 개발

단순 조회 및 Filtering

Master-Slave 분산 구조

11

Page 12: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

LogR Architecture

12

Page 13: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

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

Page 14: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

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

Page 15: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

LogR UI

“편리한 사용자 UI 제공”

15

로그 조회 UI LogR Master Admin UI

Page 16: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

맺음말

• 대용량 데이터를 빠르게 조회 하기 위해서는

• 데이터 적재부터 고려

• 용도에 적합한 인프라 도입

• 오픈 소스 vs 자체 개발

• 자체 개발시는 꼭 필요한 기능만 개발

• 서로 품질과 개발 역량을 높이는 선순환 관계

16

Page 17: NCSOFT 게임 로그 조회 인프라 소개 - ktnexr.com · 목 차 • 게임 로그 현황 • ncsoft 로그 조회 인프라 • 로그 저장 구조 lar • 로그 조회 인프라

17

Q&A

[email protected]

김진필