A Study of Object Pooling Scheme for Efficient Online Gaming Server

효율적인 온라인 게임 서버를 위한 객체풀링 기법에 관한 연구

  • 김혜영 (홍익대학교 게임학부 게임 소프트웨어) ;
  • 함대현 (홍익대학교 게임학부) ;
  • 김문성 (미시건대학교 컴퓨터공학부)
  • Published : 2009.12.20

Abstract

There is a request from the client, we almost apply dynamic memory allocating method using Accept() of looping method; thus, there could be process of connecting synchronously lots of client in most of On-line gaming server engine. However, this kind of method causes on-line gaming server which need to support and process the clients, longer loading and bottle necking. Therefore we propose the object pooling scheme to minimize the memory fragmentation and the load of the initialization to the client using an AcceptEx() and static allocating method for an efficient gaming server of the On-line in this paper. We design and implement the gaming server applying to our proposed scheme. Also, we show efficiency of our proposed scheme by performance analysis in this paper.

대부분의 온라인 게임서버 엔진에서의 Accept()사용한 Looping방식의 동적인 메모리 할당 방식의 사용은 다수의 클라이언트를 동시에 수용하고 진행해야하는 온라인 게임 상의 로그인 서버엔진에 많은 부하와 함께 병목현상을 유발하게 된다. 따라서 본 논문에서는 온라인상에서의 효율적인 게임서버를 위해 정적인 메모리 할당기법을 사용하여 메모리 단편화를 최소화하고, 클라이언트의 접속 시 세션연결 및 클라이언트 객체의 초기화를 위해 발생하는 부하를 최소화하기 위한 AcceptEx()를 사용한 풀링기법과 정적메모리를 생성하여 동적 할당처럼 포인터로 할당하는 메모리 풀링 기법을 합친 객체 풀링기법을 제안하고, 제안 기법을 적용한 게임엔진을 설계하여 구현한 후, 성능평가를 통해 제안한 기법의 효율성을 보였다.

Keywords

References

  1. 김선우, 윈도우 네트워크 프로그래밍, 한빛미디어, 2007
  2. 이상원 김혜영, 게임엔진에서의 효율적인 메시지 관리 기법, 한국 게임 학회 논문지, 제 8권 제2호, 2008년 5월
  3. Michael Duck and Richard Read, Data Communications and Computer Networks, Prentice Hall
  4. James F. Kurose and Keith W. Ross, Computer Networking, Addison Wesley
  5. 한동훈, 온라인 게임 서버 프로그래밍 벤치마크, pp.337-340, 정보문화사, 2008
  6. 한동훈, 온라인 게임 서버 프로그래밍, 정보문화사, 2007
  7. 엄남경, 문형진, 이상호, 게임서버간 부하의 균일성에 기반한 부하 분산기 설계및 구현, 한국통신학회논문지, Vol.32, No.3, 2007
  8. J.Chen, B.Knutsson, B.Wu, H.Lu, M.Delap and C.Amza, Locality Aware Dynamic Load Management from Massively