KR100670798B1 - 데이터베이스 캐시 시스템 - Google Patents
데이터베이스 캐시 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24547—Optimisations to support specific applications; Extensibility of optimisers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/50—Features 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/55—Details of game data or player data management
- A63F2300/5526—Game data structure
- A63F2300/5533—Game 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
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Abstract
데이터베이스 캐시 시스템이 개시된다. 데이터베이스 캐시 시스템은 비블로킹 처리를 지원하고, 쿼리해석, 트랜잭션처리, 및 물리적 디스크 참조를 최소화하기 위해 온라인 게임서버와 데이터베이스 사이에 위치한다. 네트워크라이브러리는 온라인 온라인 게임 서버로부터 전달되는 접속요청을 IOCP를 이용하여 처리한다. 데이베이스접속부는 하나 이상 구비되며, 데이터베이스로부터 데이터를 독출하거나 데이터를 기록하기 위한 접속수단을 제공한다. 데이터베이스캐시는 데이터베이스접속부를 통해 데이터베이스로부터 독출한 데이터를 보유한다. 캐시버퍼는 적어도 하나 이상 구비되어 온라인 게임 서버로부터 수신된 데이터베이스 쿼리요청에 대응하는 IOCP 작업자 쓰레드마다 할당되며, 온라인 게임 서버로 제공될 데이터베이스캐시로부터 독출한 데이터를 저장한다. 본 발명에 따르면, 온라인 게임에서의 데이터베이스 관리를 데이터베이스 캐시 시스템에 수행함으로써 온라인 게임 시스템 개발 시간의 단축과, 게임 서비스 비용의 감소, 및 게임의 질적 향상을 실현할 수 있다.
Description
도 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)
- 온라인 게임서버와 데이터베이스 사이에서 비블로킹 처리를 지원하고, 쿼리해석, 트랜잭션처리, 및 물리적 디스크 참조를 최소화하기 위한 데이터베이스 캐시 시스템에 있어서,상기 온라인 게임 서버로부터 전달되는 접속요청을 IOCP를 이용하여 처리하는 네트워크라이브러리;상기 데이터베이스로부터 데이터를 독출하거나 데이터를 기록하기 위한 접속수단을 제공하는 적어도 하나 이상의 데이터베이스접속부;상기 온라인 게임 서버의 데이터 로딩 규칙에 따라 데이터의 필요시점 이전에 상기 데이터베이스로부터 데이터를 미리 독출하여 보유하는 데이터베이스캐시; 및상기 온라인 게임 서버로부터 수신된 데이터베이스 쿼리요청에 대응하는 IOCP 작업자 쓰레드마다 할당되며, 상기 데이터베이스캐시로부터 독출한 데이터를 저장하여 상기 온라인 게임서버로 제공하는 적어도 하나 이상의 캐시버퍼;를 포함하는 것을 특징으로 하는 데이터베이스 캐시 시스템.
- 삭제
- 제 1 항에 있어서,상기 데이터 로딩 규칙은 상기 온라인 게임서버 사용자의 요청에 따른 상기 온라인 게임서버가 제공하는 게임별로 상이하게 설정되는 것을 특징으로 하는 데이터베이스 캐시 시스템.
- 제 1 항에 있어서,상기 데이터베이스 쿼리요청은 쿼리종류, 쿼리테이블, 퀴리명령 및 쿼리검색을 포함하는 항목으로 분리되어 수신되는 것을 특징으로 하는 데이터베이스 캐시 시스템.
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)
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)
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)
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 |
-
2004
- 2004-12-17 KR KR1020040108154A patent/KR100670798B1/ko not_active IP Right Cessation
-
2005
- 2005-03-23 KR KR1020050024302A patent/KR101155546B1/ko active IP Right Grant
- 2005-11-03 US US11/265,851 patent/US7636740B2/en not_active Expired - Fee Related
Patent Citations (2)
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 |