DB Cache 설치 및 네트워크 설정

DB cache 를 위한 게임 데이터베이스 스키마

DB cache 를 위한 데이터베이스 스키마는 사용자가 원하는대로 구성될 수 있습니다.

단, 다음 규칙을 준수해야 합니다.

  • RootUUID, OwnerUUID, UUID 필드가 들어가야 합니다.

  • RootUUID, OwnerUUID, UUID를 Combination PK로 지정하여 사용하면 인덱싱을 이용한 검색에 악영향을 줍니다. 따라서 각각의 index를 만들어 사용하는 것이 성능 향상에 도움이 됩니다.

  • 상기 필드 중 RootUUID와 OwnerUUID는 Non-Unique Index 로 지정합니다. 그리고 UUID는 Primary Key로 지정합니다.

  • 상기 필드는 MySQL 에서 varchar(38)로, MSSQL 에서는 uniqueidentifier 형식이어야 합니다.

  • Root table와 Child table의 이름은 중복되지 않아야 합니다.

  • DB cache 클라이언트와 서버가 사용하는 stored procedure 들이 자동으로 게임 데이터베이스 스키마에 추가되는데, 이를 수정하거나 제거하지 마십시오.

3가지 필수 인덱스 추가 예제 스크립트

ALTER TABLE dbo.Gamer ADD CONSTRAINT
 
PK_Gamer PRIMARY KEY CLUSTERED
 
(
 
UUID
 
) WITH( IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 
 
 
CREATE INDEX IX_Gamer_OwnerUUID ON dbo.Gamer
 
(
 
OwnerUUID
 
) WITH( IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 
 
 
CREATE INDEX IX_Gamer_RootUUID ON dbo.Gamer
 
(
 
RootUUID
 
) WITH( IGNORE_DUP_KEY = OFF) ON [PRIMARY]

DB cache 서버 준비

데이터베이스 스키마를 생성 후 DB cache server 인스턴스를 생성해야 하며, Proud.CDbCacheServer2 타입으로 인스턴스는 각 게임 서버들 사이에서 단 1개만 있으면 충분합니다.

인스턴스설명

Proud.CDbCacheServer2.New

인스턴스 생성

Proud.CDbCacheServer2.Start

실행

  • DB 인스턴스에 접속하는 connection string 은 ADO connection string 형식이며, 샘플에서 참고하실 수 있습니다.

  • DB cache server의 인증 key 는 DB cache 서버에서 접속을 식별하기 위한 DB cache client 에서 보내는 데이터입니다.

  • Proud.CDbCacheServer2.Start 를 호출할 때 Proud.CDbCacheServer2StartParameter.m_tableNames에 사용자에 의해 정의된 테이블 이름들이 들어가야 합니다.

  • Proud.CDbCacheServer2.Start 가 실행되는 동안 sp_Get<테이블이름>Datasp_Remove<테이블이름>Data 그리고 sp_Add<테이블이름>Data가 자동으로 생성됩니다.

DB Cache 클라이언트 준비

각 게임 서버(인증 서버, 게임 zone 서버, 로비 서버 등)은 Proud.CDbCacheClient2.New를 실행하여 client 인스턴스를 생성해야 하며, 타입은 Proud.CDbCacheClient2 입니다.

생성 후 Proud.CDbCacheClient2.Connect를 통해 DB cache server에 접속을 시도해야 합니다. 접속 시도는 비동기로 이루어지며 접속이 성공하거나 실패하면 Proud.IDbCacheClientDelegate2.OnJoinDbCacheServerComplete가 콜백됩니다. DB cache client는 내부적으로 Proud.CLanClient를 사용하는데 스레드 풀링 방식이므로 따로 FrameMove 가 없습니다.

DB cache server와의 연결 해제를 위해서는 Proud.CDbCacheClient2 객체를 파괴하거나 Proud.CDbCacheClient2.Disconnect를 호출합니다. 이때 DB cache 클라이언트는 Proud.IDbCacheClientDelegate2.OnLeaveDbCacheServer가 콜백됩니다.

Last updated