KR100670798B1 - 데이터베이스 캐시 시스템 - Google Patents

데이터베이스 캐시 시스템 Download PDF

Info

Publication number
KR100670798B1
KR100670798B1 KR1020040108154A KR20040108154A KR100670798B1 KR 100670798 B1 KR100670798 B1 KR 100670798B1 KR 1020040108154 A KR1020040108154 A KR 1020040108154A KR 20040108154 A KR20040108154 A KR 20040108154A KR 100670798 B1 KR100670798 B1 KR 100670798B1
Authority
KR
South Korea
Prior art keywords
database
online game
game server
data
query
Prior art date
Application number
KR1020040108154A
Other languages
English (en)
Other versions
KR20060069063A (ko
Inventor
이헌주
임정열
정용우
임범현
심광현
최진성
양광호
김현빈
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020040108154A priority Critical patent/KR100670798B1/ko
Priority to KR1020050024302A priority patent/KR101155546B1/ko
Priority to US11/265,851 priority patent/US7636740B2/en
Publication of KR20060069063A publication Critical patent/KR20060069063A/ko
Application granted granted Critical
Publication of KR100670798B1 publication Critical patent/KR100670798B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

데이터베이스 캐시 시스템이 개시된다. 데이터베이스 캐시 시스템은 비블로킹 처리를 지원하고, 쿼리해석, 트랜잭션처리, 및 물리적 디스크 참조를 최소화하기 위해 온라인 게임서버와 데이터베이스 사이에 위치한다. 네트워크라이브러리는 온라인 온라인 게임 서버로부터 전달되는 접속요청을 IOCP를 이용하여 처리한다. 데이베이스접속부는 하나 이상 구비되며, 데이터베이스로부터 데이터를 독출하거나 데이터를 기록하기 위한 접속수단을 제공한다. 데이터베이스캐시는 데이터베이스접속부를 통해 데이터베이스로부터 독출한 데이터를 보유한다. 캐시버퍼는 적어도 하나 이상 구비되어 온라인 게임 서버로부터 수신된 데이터베이스 쿼리요청에 대응하는 IOCP 작업자 쓰레드마다 할당되며, 온라인 게임 서버로 제공될 데이터베이스캐시로부터 독출한 데이터를 저장한다. 본 발명에 따르면, 온라인 게임에서의 데이터베이스 관리를 데이터베이스 캐시 시스템에 수행함으로써 온라인 게임 시스템 개발 시간의 단축과, 게임 서비스 비용의 감소, 및 게임의 질적 향상을 실현할 수 있다.

Description

데이터베이스 캐시 시스템{Database cache system}
도 1은 데이터베이스 캐시 시스템의 위치와 필요성을 설명하기 위한 도면,
도 2는 본 발명에 따른 데이터베이스 캐시 시스템의 기본적인 구성을 도시한 블록도,
도 3은 본 발명에 따른 데이터베이스 캐시 시스템의 상세한 구성을 도시한 블록도,
도 4a 내지 도 4d는 각각 쿼리해석(Query Compile)을 최소화하기 위해 SELECT, UPDATE, INSERT, 및 DELETE 쿼리에 대한 규격화 개념을 설명하기 위한 도면,
도 5는 온라인 게임 서버의 데이터 로딩 특성의 파악에 필요한 데이터를 사전에 로딩하는 기법을 설명하기 위한 도면,
도 6은 본 발명에 따른 데이터베이스 캐시 시스템을 적용했을 때의 성능 시뮬레이션 결과를 도시한 도면, 그리고,
도 7은 본 발명에 따른 데이터베이스 캐시 시스템의 동작 정확도의 확인을 위한 시뮬레이션 환경 개념을 도시한 도면이다.
본 발명은 데이터베이스 캐시 시스템에 관한 것으로, 보다 상세하게는, 온라인 게임 서버에 의한 데이터베이스로의 접근을 매개하는 데이터베이스 캐시 시스템에 관한 것이다.
보통 수 천, 수 만 명의 사용자들이 게임에 참여하여 플레이를 하는 온라인게임의 경우 서비스 비용적인 측면에서 서버의 처리효율이 중요시되고, 서비스 질적인 면에서 응답지연(Lag)현상이 얼마나 덜 발생하는가를 중요시한다. 수많은 사용자들의 게임상 행동에 따라 처리해야 하는 쿼리는 초당 수 십 번에서 수 백 번에 이르도록 발생을 하지만, 실제 데이터베이스의 처리 능력은 이를 충분히 감당할 수 없다. 따라서, 처리요청이 밀리는 경우 유저의 반응에 대한 응답이 지연되는 이른바 Lag현상이 발생하고, 이는 서비스 질을 저하시키는 요인으로 작용한다. 또한, 위와 같은 Lag현상의 감소를 위한 데이터베이스 및 서버 분산은 결국 서비스 비용의 증가를 초래한다.
본 발명이 이루고자 하는 기술적 과제는, 높은 효율성 및 신뢰성이 요구되는 온라인 게임 개발에 있어서 서버의 데이터베이스 사용 측면의 효율성 극대화시킬 수 있는 데이터베이스 캐시 시스템을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터베이스 캐시 시스템은, 온라인 게임서버와 데이터베이스 사이에서 비블로킹 처리를 지원하고, 쿼 리해석, 트랜잭션처리, 및 물리적 디스크 참조를 최소화하기 위한 데이터베이스 캐시 시스템에 있어서, 상기 온라인 온라인 게임 서버로부터 전달되는 접속요청을 IOCP를 이용하여 처리하는 네트워크라이브러리; 상기 데이터베이스로부터 데이터를 독출하거나 데이터를 기록하기 위한 접속수단을 제공하는 적어도 하나 이상의 데이베이스접속부; 상기 데이터베이스접속부를 통해 상기 데이터베이스로부터 독출한 데이터를 보유하는 데이터베이스캐시; 및 상기 온라인 게임 서버로부터 수신된 데이터베이스 쿼리요청에 대응하는 IOCP 작업자 쓰레드마다 할당되며, 상기 온라인 게임 서버로 제공될 상기 데이터베이스캐시로부터 독출한 데이터가 저장되는 적어도 하나 이상의 캐시버퍼;를 구비한다.
이에 의해, 데이터베이스 관련 개발 비용 감소와 데이터베이스의 효율적인 사용이 가능하여 온라인 게임 서비스 비용감소와 응답지연현상 감소를 통한 게임의 질적 향상을 이룰수 있으며, 데이터베이스 개발/관리에서의 높은 생산성을 보장해준다.
최근 데이터베이스 미들웨어는 통신 분야/실시간 처리분야/인터넷 서비스 분야/금융 분야 등 사회전반에 걸쳐서 적용되어 사용되고 있으며, 더욱 다양한 분야에 최적화된 모듈과 일반화된 모듈에 대한 연구가 활발히 전개되고 있다. 데이터베이스 미들웨어에 대한 개발에 있어서 대규모 사용자의 요구에 최대한 빠르게 응답하는 것이 주요 목적이다. 데이터베이스, 유저접근모듈, 그리고 개발된 미들웨어가 동시에 적용된 시스템은 기존의 정보화 시스템의 한계를 한 단계 끌어올릴 수 있는 잠재력을 지니고 있다. 이와 같은 데이터베이스 미들웨어는 데이터베이스와 데이터 베이스 사용자 사이에 위치한 또 하나의 데이터베이스라 할 수 있다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 데이터베이스 캐시 시스템의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 데이터베이스 캐시 시스템의 위치와 필요성을 설명하기 위한 도면이다. 일반적으로 온라인 게임 서버(100)의 성능에 따라 서비스 비용과 게임의 질이 결정된다. 온라인 게임시 데이터베이스(110)의 사용에 있어서 초당 수 십 번에서 수 백 번에 이르는 요청을 하게 되는데, 데이터베이스(110)의 응답속도에 따라서 온라인 게임 서버(100)의 성능자체가 크게 달라지는 현상이 발생한다. 특히, 데이터베이스(110)는 블로킹 상태(Blocking state)로 요청을 처리하기 때문에 데이터베이스(110)에 대한 요청 후 결과가 반환되는 시점까지 온라인 게임 서버(100)의 쓰레드(Thread)가 대기하게 되는 비효율적인 상황이 발생한다. 또한, 데이터베이스(110)에서의 복잡한 쿼리해석(Query Compile), 트랜잭션(Transaction)처리, 및 물리적 디스크 참조(Physical Disk Access)는 응답시간을 지연시키는 비효율성을 초래한다. 이 때, 도 1에 도시된 바와 같이 온라인 게임 서버(100)와 데이터베이스(110) 사이에 비블로킹(Non-Blocking) 처리를 지원하고, 쿼리해석과 트랜잭션 처리, 그리고 물리적 디스크 참조를 최소화하는 데이터베이스 캐시 시스템(120)을 위치시킴으로써 위에 설명한 비효율성을 제거하면 온라인 게임 서버(100)의 성능을 크게 향상 시킬 수 있다.
도 2는 본 발명에 따른 데이터베이스 캐시 시스템의 기본적인 구성을 도시한 블록도이다. 온라인 게임 서버(100)와 데이터베이스(110) 사이에 존재하는 데이터 베이스 캐시 시스템(200)은 온라인 게임 서버(100)의 접속을 TCP/IP로 받아서 IOCP(Input Output Completion Port) 기술을 이용한 처리를 수행한다. 또한, 데이터베이스 캐시 시스템(200)은 가능한 모든 데이터베이스에 대한 접속 모듈을 내장하고 있고, 이를 이용해서 데이터베이스에 대한 접속을 유지하고 있다. 즉, 온라인 게임 서버(100)는 데이터베이스 캐시 시스템(200)을 통해서 데이터베이스(110)를 쉽게 사용하고, 또한 요청 처리과정 중에 데이터베이스(110)에 대한 접근 필요성이 최소화되어 전체적인 응답속도가 향상될 수 있다.
도 2를 참조하면, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 네트워크라이브러리(210), 복수의 캐시버퍼(220), 복수의 데이터베이스접속부(230), 및 데이터베이스접속부(240)를 구비한다.
네트워크라이브러리(IOCP Network Library)(210)는 데이터베이스 캐시 시스템(200)이 온라인 게임 서버(100)의 접속을 받아서 처리하는 모듈이다. 네트워크라이브러리(210)는 안정성과 효율성이 크게 강조되는 모듈이다.
캐시버퍼(Cache Buffer)(220)는 데이터베이스 쿼리요청에 대한 고속처리가 가능하도록 하는 모듈이다. 캐시버퍼(220)는 복수개가 구비되며, 메모리 할당 및 제거를 최소화하면서도 메모리 사용을 최소화하는 장점을 가지고 있다. 온라인 게임 서버(100)의 요청에 대한 처리는 IOCP Worker 쓰레드마다 할당되는 캐시버퍼(220)를 통해서 이루어진다. 캐시버퍼(220)는 계속적인 재활용이 가능한 모듈로서, 요청 처리시마다 메모리를 할당/제거하는 비효율적인 요소를 최소화한다.
데이터베이스접속부(Database Connector)(230)는 데이터베이스(MYSQL, MSSQL, Oracle)에 대한 접속 모듈로서 상이한 종류의 데이터베이스에 대응하는 접속부가 복수개 구비된다. 온라인 게임 서버(100)는 데이터베이스의 종류와 관계없이 동일한 방식으로 본 발명에 따른 데이터베이스 캐시 시스템(120)에 접속하여 사용하지만, 데이터베이스접속부(230)가 여러종류의 데이터베이스에 대한 처리를 지원해 줌으로써, 데이터베이스 캐시 시스템(120)의 적용범위, 개발 및 서비스 확장성의 증대가 가능하다.
데이터베이스캐시(Database Cache)(240)는 실제 데이터를 관리하는 모듈로서 데이터베이스 캐시 시스템(120)의 중심모듈이다. 본 발명에 따른 데이터베이스 캐시 시스템(120)은 캐시버퍼(220)를 통해서 가능한 모든 정보를 데이터베이스캐시(240)에서 가져오고 부족한 정보는 데이터베이스(110)에서 읽어 들이는 방식 및 데이터베이스(110)에서 초기에 모든 정보를 읽어 들이고 데이터 참조에 있어서는 데이터베이스(110)를 접근할 필요가 없도록 하는 두 가지 처리방식을 모두 지원한다.
도 3은 본 발명에 따른 데이터베이스 캐시 시스템의 상세한 구성을 도시한 블록도이다. 도 3에 도시된 데이터베이스 캐시 시스템의 구성요소 중에서 도 2에 도시된 데이터베이스 캐시 시스템의 구성요소와 동일한 기능 및 역할을 수행하는 구성요소는 동일한 참조번호에 의해 참조되며, 상세한 설명은 생략한다.
도 3을 참조하면, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 네트워크라이브러리(210), 게이트웨이라이브러리(310), 데이터베이스캐시라이브러리(320), 및 데이터베이스라이브러리(240)를 갖는다.
게이트웨이라이브러리(Gateway Library)(310)는 온라인 게임 서버(100)의 요 청을 받아서 데이터베이스캐시라이브러리(320)에 넘겨준다. 게이트웨이라이브러리(310)는 게이트웨이메인(312), TCP수신소켓(314), 및 TCP세션소켓(316)을 구비한다. 개발자는 게이트웨이라이브러리(310)의 기능 확장을 위하여 추가적인 개발을 할 수 있다.
데이터베이스캐시라이브러리(DB Cache Library)(320)는 본 발명에 따른 데이터베이스 캐시 시스템(120)의 핵심 역할을 하는 라이브러리이다. 데이터베이스캐시라이브러리(320)는 캐시버퍼(220)가 내장된 데이터베이스캐시클라이언트(322), 데이터베이스캐시클라이언트관리자(324), 데이터베이스캐시테이블관리자(326), 데이터베이스캐시테이블데이터(328), 데이터베이스캐시컬럼데이터(340), 및 데이터베이스캐시(240)를 갖는다. 데이터베이스캐시테이블관리자(326), 데이터베이스캐시테이블데이터(328), 및 데이터베이스캐시컬럼데이터(340)는 데이터베이스캐시(240)의 명령에 따라서 데이터를 관리하는 모듈이다. 데이터베이스캐시클라이언트(322)는 고속처리를 위한 캐시버퍼(220)를 내장하며, 데이터베이스(110) 및 데이터베이스캐시(230)로의 처리방향을 결정한다. 데이터베이스캐시클라이언트관리자(324)는 데이터베이스캐시클라이언트(322) 객체를 관리한다. 데이터베이스캐시테이블관리자(326)는 데이터베이스캐시테이블을 관리한다. 데이터베이스캐시테이블데이터(328)는 로그인테이블, 과금테이블, 캐릭터테이블, 아이템테이블, 탐색테이블, 길트테이블 등과 같이 게임의 진행, 사용자 인증, 과금 등과 관련된 테이블에 기록되는 데이터이다.
도 4a 내지 도 4d는 각각 쿼리해석(Query Compile)을 최소화하기 위해 SELECT, UPDATE, INSERT, 및 DELETE 쿼리에 대한 규격화 개념을 설명하기 위한 도면이다.
SELECT, UPDATE, INSERT, 및 DELETE 쿼리는 쿼리종류(Type), 쿼리테이블(TableName), 퀴리명령(Command), 및 쿼리검색(Search)의 요소로 분리될 수 있다. SELECT 와 UPDATE 쿼리는 위의 4가지 요소를 모두 포함한다. 한편, INSERT 쿼리는 쿼리검색이 생략되고, DELETE 쿼리는 쿼리명령이 생략된 형대로 해석할 수 있다. 온라인 게임 서버(100)는 위에서 구분한 4가지 요소로 각각의 쿼리를 미리 구분을 해서 데이터베이스 캐시 시스템(120)으로 쿼리요청을 하게 되므로, 쿼리해석(Query Compile)에 들어가는 비용을 최소화할 수 있다. 또한, 쿼리를 상술한 4가지 요소로 분류함으로써 데이터베이스(110)에서 직접 실행 가능한 SQL Query로의 생성도 용이하다.
도 5는 온라인 게임 서버의 데이터 로딩 특성의 파악에 필요한 데이터를 사전에 로딩하는 기법을 설명하기 위한 도면이다.
도 5를 참조하면, 사용자 로그인(User Login)시 이후 처리될 과금정보와 로그인정보 등을 미리 읽어 들여서 이후 요청에 미리 대비를 하는 지능적인 처리 방식이 사용된다. 또한, 사용자의 캐릭터선택(Character Select)시 이후 온라인 게임 서버(100)가 필요로 하는 캐릭터정보, 아이템정보, 퀘스트, 및 길드 정보 등을 미리 읽어들여 이후 요청에 대비한다. 이와 같이 사전에 데이터를 로딩하는 방식은 하나의 예시이며, 데이터베이스 캐시 시스템(120)을 통해서 각각 온라인 게임의 상황에 맞는 로딩 기법을 확장 개발할 수 있다는 점은 응답속도를 향상에 대한 효율 성과 보편성을 모두 제공한다고 할 수 있다.
도 6은 본 발명에 따른 데이터베이스 캐시 시스템을 적용했을 때의 성능 시뮬레이션 결과를 도시한 도면이다.
MSSQL을 직접 사용했을 때와 본 발명에 따른 데이터베이스 캐시 시스템(120)을 사용했을 때를 비교하여 테스트를 수행하였다. 도 6에 도시된 결과에 따르면, 전체 데이터를 모두 읽어 들여 사용했을 경우에 MSSQL을 직접 사용했을 때보다 본 발명에 따른 데이터베이스 캐시 시스템(120)을 사용했을 때 3배정도의 쿼리처리 성능과 응답시간 감소효과를 얻을 수 있다. 또한, 테스트시 데이터를 필요에 따라 메모리에 올려서 사용하는 기법을 적용하였으며, 이 때, 대략 38% 정도의 성능향상을 얻을 수 있었다. 따라서, 도 5에 도시된 데이터 로딩기법을 적용하면 이보다 더 높은 성능향상이 가능하다. 성능측정에 사용된 쿼리로는 임의의 쿼리요청을 만들어내는 모듈이 사용되었고, 이는 본 발명에 따른 데이터베이스 캐시 시스템(120)의 라이브러리에 포함된다.
도 7은 본 발명에 따른 데이터베이스 캐시 시스템의 동작 정확도의 확인을 위한 시뮬레이션 환경 개념을 도시한 도면이다.
도 7을 참조하면, 기존 데이터베이스(110)가 오작동 없이 정확히 동작한다는 가정을 했을 때, 결과적으로 직접 데이터베이스(110)에 접속해서 사용하는 경우와 본 발명에 따른 데이터베이스 캐시 시스템(120)을 통해서 사용하는 경우의 결과값이 계속해서 일치하는지 확인한다. 결과 값의 일치가 확인되면, 본 발명에 따른 데이터베이스 캐시 시스템(120) 또한 오작동 없이 정확히 동작한다고 결론을 내릴 수 있다.
본 발명에 따른 데이터베이스 캐시 시스템(120)은 기존의 데이터베이스를 필요에 따라 활용하여 데이터의 무결성 확보를 하고, 다양한 안정성 테스트를 통해서 안정성이 확인된 시스템이다. 또한, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 대부분의 요청처리를 물리적 메모리 상에서 처리함으로써 물리적 디스크 접근 요인을 제거하고, 캐시버퍼(220)를 통해서 메모리의 할당/제거 요인을 최소화하여 최대의 성능을 보여준다.
또한, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 데이터베이스에서 한번 읽어 들인 정보를 계속해서 재사용이 가능하도록 한다. 온라인 게임은 유저의 요청 또는 행동에 따라서 한번 읽어 들인 정보를 계속해서 다시 읽어 들여야 하는 비효율적인 처리가 발생한다. 하지만, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 반복적으로 정보를 읽어 들일 필요가 있을 경우에 내장된 데이터베이스캐시(240)가 정보를 다시 읽어 들이기만 해도 충분하므로, 비효율적인 처리를 효과적으로 방지할 수 있다.
또한, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 온라인 게임서버의 일반적인 데이터 로딩 패턴을 파악하여 이후에 필요한 데이터를 미리 데이터베이스 캐시에 읽어 놓을 수 있도록 하는 기능을 제공한다. 일예로, 본 발명에 따른 데이터베이스 캐시 시스템(120)은 사용자가 로그인 요청을 했을 때 이후 유저 인증에 사용될 관련 로그인정보, 과금정보 등을 일시에 데이터베이스캐시(240)에 읽어 들임으로써 이후의 처리를 더욱 빠르게 수행할 수 있다. 또한, 사용자가 특정 캐릭터 를 선택했을 때, 미리 선택된 캐릭터의 정보를 읽어 들여서 실제로 게임에 들어갔을 때 처리는 데이터베이스를 참조하지 않고, 본 발명에 따른 데이터베이스 캐시 시스템(120) 만을 통해서 이루어질 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
본 발명에 따른 데이터베이스 캐시 시스템에 따르면, 대규모 온라인 게임 개발에 적용할 경우 데이터베이스 관련 개발 비용 감소와 데이터베이스의 효율적인 사용이 가능하며, 따라서, 온라인 게임 서비스 비용감소와 응답지연현상 감소를 통 한 게임의 질적 향상 효과를 얻을 수 있다. 또한, 어떠한 종류의 데이터베이스(MYSQL, MSSQL, Oracle)라도 동일한 방식으로 접근할 수 있으므로, 데이터베이스 개발/관리에서의 높은 생산성(개발 비용 절감 및 기간 단축)을 보장해준다.

Claims (4)

  1. 온라인 게임서버와 데이터베이스 사이에서 비블로킹 처리를 지원하고, 쿼리해석, 트랜잭션처리, 및 물리적 디스크 참조를 최소화하기 위한 데이터베이스 캐시 시스템에 있어서,
    상기 온라인 게임 서버로부터 전달되는 접속요청을 IOCP를 이용하여 처리하는 네트워크라이브러리;
    상기 데이터베이스로부터 데이터를 독출하거나 데이터를 기록하기 위한 접속수단을 제공하는 적어도 하나 이상의 데이터베이스접속부;
    상기 온라인 게임 서버의 데이터 로딩 규칙에 따라 데이터의 필요시점 이전에 상기 데이터베이스로부터 데이터를 미리 독출하여 보유하는 데이터베이스캐시; 및
    상기 온라인 게임 서버로부터 수신된 데이터베이스 쿼리요청에 대응하는 IOCP 작업자 쓰레드마다 할당되며, 상기 데이터베이스캐시로부터 독출한 데이터를 저장하여 상기 온라인 게임서버로 제공하는 적어도 하나 이상의 캐시버퍼;를 포함하는 것을 특징으로 하는 데이터베이스 캐시 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 데이터 로딩 규칙은 상기 온라인 게임서버 사용자의 요청에 따른 상기 온라인 게임서버가 제공하는 게임별로 상이하게 설정되는 것을 특징으로 하는 데이터베이스 캐시 시스템.
  4. 제 1 항에 있어서,
    상기 데이터베이스 쿼리요청은 쿼리종류, 쿼리테이블, 퀴리명령 및 쿼리검색을 포함하는 항목으로 분리되어 수신되는 것을 특징으로 하는 데이터베이스 캐시 시스템.
KR1020040108154A 2004-12-17 2004-12-17 데이터베이스 캐시 시스템 KR100670798B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040108154A KR100670798B1 (ko) 2004-12-17 2004-12-17 데이터베이스 캐시 시스템
KR1020050024302A KR101155546B1 (ko) 2004-12-17 2005-03-23 디지털 멀티미디어 신호 수신기 및 채널 사전 검색 방법
US11/265,851 US7636740B2 (en) 2004-12-17 2005-11-03 Database cache system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040108154A KR100670798B1 (ko) 2004-12-17 2004-12-17 데이터베이스 캐시 시스템

Publications (2)

Publication Number Publication Date
KR20060069063A KR20060069063A (ko) 2006-06-21
KR100670798B1 true KR100670798B1 (ko) 2007-01-17

Family

ID=36641283

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020040108154A KR100670798B1 (ko) 2004-12-17 2004-12-17 데이터베이스 캐시 시스템
KR1020050024302A KR101155546B1 (ko) 2004-12-17 2005-03-23 디지털 멀티미디어 신호 수신기 및 채널 사전 검색 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020050024302A KR101155546B1 (ko) 2004-12-17 2005-03-23 디지털 멀티미디어 신호 수신기 및 채널 사전 검색 방법

Country Status (2)

Country Link
US (1) US7636740B2 (ko)
KR (2) KR100670798B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181187B2 (en) * 2006-12-01 2012-05-15 Portico Systems Gateways having localized in-memory databases and business logic execution
KR20080094380A (ko) * 2007-04-20 2008-10-23 엘지이노텍 주식회사 디지털 방송 채널탐색 장치 및 방법
KR100859162B1 (ko) * 2007-10-16 2008-09-19 펜타시큐리티시스템 주식회사 암호화된 칼럼을 포함하는 데이터베이스에서의 쿼리의 암호화 변조를 통한 사용자 쿼리 처리 장치 및 방법
KR101927090B1 (ko) * 2012-01-02 2018-12-10 주식회사 엔씨소프트 확장성을 고려한 게임서버 시스템
US20160125029A1 (en) 2014-10-31 2016-05-05 InsightSoftware.com International Intelligent caching for enterprise resource planning reporting
US10061852B1 (en) 2015-05-19 2018-08-28 Amazon Technologies, Inc. Transparent proxy tunnel caching for database access
KR101887741B1 (ko) * 2016-04-11 2018-09-11 전자부품연구원 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms
CN107911248B (zh) * 2017-11-27 2020-11-10 北京百度网讯科技有限公司 升级方法和装置
KR101945673B1 (ko) * 2018-06-22 2019-02-08 주식회사 엔씨소프트 확장성을 고려한 게임서버 시스템
CN110442442B (zh) * 2019-08-13 2022-07-26 中核控制系统工程有限公司 核电厂dcs平台工程师站软件维护网络通讯方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727203A (en) * 1995-03-31 1998-03-10 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
US6665704B1 (en) * 1999-06-18 2003-12-16 Sun Microsystems, Inc. Bounding delays and reducing threading overheads in caching

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8322007D0 (en) * 1983-08-16 1983-09-21 Wellcome Found Pharmaceutical delivery system
US4769027A (en) * 1984-08-15 1988-09-06 Burroughs Wellcome Co. Delivery system
EP0467488B1 (en) 1984-08-17 1995-10-11 The Wellcome Foundation Limited Composition for the controlled discharge of an active ingredient
GB9217295D0 (en) 1992-08-14 1992-09-30 Wellcome Found Controlled released tablets
KR950010486B1 (ko) 1992-12-14 1995-09-18 재단법인한국전자통신연구소 실시간 데이타베이스 관리 시스템(dbms)에서의 데이타 메모리 관리방법
PT621032E (pt) 1993-04-23 2001-01-31 Novartis Ag Dispositivo de distribuicao de libertacao controlada de farmaco
GB9315856D0 (en) 1993-07-30 1993-09-15 Wellcome Found Stabilized pharmaceutical
US5541231A (en) 1993-07-30 1996-07-30 Glaxo Wellcome Inc. Stabilized Pharmaceutical
US5358970A (en) 1993-08-12 1994-10-25 Burroughs Wellcome Co. Pharmaceutical composition containing bupropion hydrochloride and a stabilizer
US5799309A (en) * 1994-12-29 1998-08-25 International Business Machines Corporation Generating an optimized set of relational queries fetching data in an object-relational database
US6083532A (en) 1995-03-01 2000-07-04 Duramed Pharmaceuticals, Inc. Sustained release formulation containing three different types of polymers and tablet formed therefrom
US6117453A (en) 1995-04-14 2000-09-12 Pharma Pass Solid compositions containing polyethylene oxide and an active ingredient
AU8699298A (en) * 1997-08-11 1999-03-01 Alza Corporation Prolonged release active agent dosage form adapted for gastric retention
US6652882B1 (en) 1997-10-06 2003-11-25 Intellipharmaceutics Corp Controlled release formulation containing bupropion
US6058389A (en) * 1997-10-31 2000-05-02 Oracle Corporation Apparatus and method for message queuing in a database system
US5968553A (en) 1997-12-30 1999-10-19 American Home Products Corporation Pharmaceutical composition containing bupropion hydrochloride and an inorganic acid stabilizer
US6221917B1 (en) 1997-12-30 2001-04-24 American Home Products Corporation Pharmaceutical composition containing bupropion hydrochloride and a stabilizer
US6251430B1 (en) 1998-02-04 2001-06-26 Guohua Zhang Water insoluble polymer based sustained release formulation
CA2244097A1 (en) 1998-08-21 2000-02-21 Bernard Charles Sherman Pharmaceutical composition comprising bupropion hydrochloride and fumaric acid
US6033686A (en) 1998-10-30 2000-03-07 Pharma Pass Llc Controlled release tablet of bupropion hydrochloride
US6096341A (en) 1998-10-30 2000-08-01 Pharma Pass Llc Delayed release tablet of bupropion hydrochloride
US6238697B1 (en) 1998-12-21 2001-05-29 Pharmalogix, Inc. Methods and formulations for making bupropion hydrochloride tablets using direct compression
US6589553B2 (en) 2001-02-08 2003-07-08 Andrx Pharmaceuticals, Inc. Controlled release oral dosage form
US6210716B1 (en) 1999-02-26 2001-04-03 Andrx Pharmaceuticals, Inc. Controlled release bupropion formulation
US6468160B2 (en) * 1999-04-08 2002-10-22 Nintendo Of America, Inc. Security system for video game system with hard disk drive and internet access capability
KR20010009609A (ko) * 1999-07-12 2001-02-05 구자홍 디지털/아날로그 겸용 수신기의 채널운용장치 및 방법
US6306436B1 (en) 2000-04-28 2001-10-23 Teva Pharmaceuticals Usa, Inc. Stabilized, acid-free formulation for sustained release of bupropion hydrochloride
US6368628B1 (en) 2000-05-26 2002-04-09 Pharma Pass Llc Sustained release pharmaceutical composition free of food effect
US6350471B1 (en) 2000-05-31 2002-02-26 Pharma Pass Llc Tablet comprising a delayed release coating
US6333332B1 (en) 2000-08-25 2001-12-25 Impax Laboratories, Inc. Stabilized pharmaceutical compositions containing bupropion hydrochloride
US7051330B1 (en) * 2000-11-21 2006-05-23 Microsoft Corporation Generic application server and method of operation therefor
US6598119B2 (en) 2001-02-09 2003-07-22 At&T Corp. Database management system with a multiple-level cache arrangement
US6462237B1 (en) 2001-06-14 2002-10-08 Usv Limited Cyclodextrin stabilized pharmaceutical compositions of bupropion hydrochloride
KR20030008111A (ko) 2001-07-16 2003-01-24 한국전자통신연구원 메모리상주 분산데이터베이스의 데이터 검사방법 및 시스템
FR2828367B1 (fr) * 2001-08-01 2003-12-05 Thomson Licensing Sa Methode et dispositif d'installation de programmes de diffusion
KR100390590B1 (ko) 2001-09-21 2003-07-07 주식회사 알티베이스 메인메모리 데이터베이스 관리 시스템을 이용한데이터베이스 실시간 캐싱 및 일치 방법
US7392390B2 (en) * 2001-12-12 2008-06-24 Valve Corporation Method and system for binding kerberos-style authenticators to single clients
US7526549B2 (en) * 2003-07-24 2009-04-28 International Business Machines Corporation Cluster data port services for clustered computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727203A (en) * 1995-03-31 1998-03-10 Sun Microsystems, Inc. Methods and apparatus for managing a database in a distributed object operating environment using persistent and transient cache
US6665704B1 (en) * 1999-06-18 2003-12-16 Sun Microsystems, Inc. Bounding delays and reducing threading overheads in caching

Also Published As

Publication number Publication date
US7636740B2 (en) 2009-12-22
US20060148572A1 (en) 2006-07-06
KR20060069063A (ko) 2006-06-21
KR20060069218A (ko) 2006-06-21
KR101155546B1 (ko) 2012-06-19

Similar Documents

Publication Publication Date Title
US7636740B2 (en) Database cache system
US7363626B2 (en) Thread level application partitioning
US8438282B2 (en) Information processing system and load sharing method
US6505187B1 (en) Computing multiple order-based functions in a parallel processing database system
US9235622B2 (en) System and method for an efficient query sort of a data stream with duplicate key values
US20130227194A1 (en) Active non-volatile memory post-processing
Kumar et al. Data placement and replica selection for improving co-location in distributed environments
CN104572122A (zh) 一种软件应用数据的生成装置及方法
US20020116376A1 (en) Routine executing method in database system
US20130185283A1 (en) Query optimization in a parallel computer system with multiple networks
CN103959275A (zh) 动态进程/对象范围的存储器关联性调整器
Meyerson et al. Online multidimensional load balancing
CN108038215A (zh) 数据处理方法及系统
US8782641B2 (en) Tuning of work to meet performance goal
CN113761003A (zh) 用户画像数据处理方法和装置、电子设备和可读存储介质
US20090248186A1 (en) Methods and Systems for Matching Configurable Manufacturing Capacity Requirements and Availability
Avula et al. Performance evaluation of TPC-C benchmark on various cloud providers
JP2009037369A (ja) データベースサーバへのリソース割当て方法
US20090100000A1 (en) Acquisition and expansion of storage area network interoperation relationships
Johansson et al. Modeling network latency and parallel processing in distributed database design
CN109871394B (zh) 一种全量分布式高并发计算方法及装置
Sutherland et al. Cooperative Concurrency Control for Write-Intensive Key-Value Workloads
Xi et al. CARIC-DA: Core affinity with a range index for cache-conscious data access in a multicore environment
Shoshani et al. Coordinating simultaneous caching of file bundles from tertiary storage
US8037184B2 (en) Query governor with network monitoring in a parallel computer system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091228

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee